Aerospike-Architecture系列之系统概述
Aerospike-Architecture系列之系统概述(System Overview)Aerospike是一个分布式可扩展的NoSql数据库,为一下三个主要目标而构建:
最早发布于Proceedings of VLDB (Very Large Databases) in 2011,Aerospike架构包括三层:
客户端层Aerospike“智能客户端”为速度而设计。它被实现为一个开源可链接库用于C、c#、Java、PHP和Python开发,开发者可用自由按需发布或修改。客户端包括以下内容
这种架构减少了事务延迟,分流集群工作并消除开发者工作量。它确保在节点启停是应用不必重启。总之,它消除了对于额外集群管理服务器或代理服务器的需要。 分布层Aerospike “shared nothing”架构被设计目的是可以可靠存储TB及数据并支持自动容错、复制、跨数据中心同步。本层实现线性扩展及ACID guarantees。分布层也旨在消除手工操作,实现系统所有集群管理功能的自动化。它包括3个模块:
Clustering 一旦启动集群,你可以在其他数据中心安装配置cross data-center replication的其他集群,如果集群崩溃,远端集群可以承接负载。 数据存储层Aerospike以无模式数据模型存储键值对。组织数据的容器称作命名空间(namespaces),相当于RDBMS系统中库(
为了快速访问,索引(primary keys和secondary keys)存储于内存,数据可以存储于内存或SSD硬盘。每个namespace可以分别配置,这样小的namespace可以存储在内存而大的namespace可以存储在SSD上。 数据层特别为提高速度同时减少硬件成本而设计。它可以作为缓冲层所有操作在内存中进行或者利用优化过的flash存储,后者数据不会丢失。
操作Aerospike在传统(非分布式)数据库系统中,安装完软件你需要设置schema、创建数据库和表。这与Aerospike数据库有很大不同。 在分布式数据库中,数据分布在集群中的各个服务器上。这意味着你不能在一台服务器上访问到所有数据。 使用Aerospike数据库,将按如下步骤创建和管理数据库:
为满足性能和冗余需求,Aerospike需要规划和配置具体的节点数量,具体细节请参考Capacity Planning 可以通过management utilities和monitoring tools管理和监控急群众的节点。当添加节点或因升级维护需要宕机时集群会自动配置。当节点发生故障集群会再平衡负载,以便达到对最终用户影响最小的目的。 构建应用程序一旦创建namespace,Aerospike提供了工具,允许您验证数据库存储数据正确性。在生产数据库,数据分布于集群当中。为了操作数据库你需要在应用程序中实例化智能客户端。智能终端是位置感知的,知道如何在集群中存储/检索数据而不影响性能。 Aerospike提供多种语言的API用于构建大数据应用程序。详情参考客户端手册 编译应用程序时,API函数库随智能终端被包含。为了在任何给定的时间确定数据位置,智能终端持续监控集群状态。智能客户端的位置感知技术确保在大多数情况下,可以再一跳之内检索到需要的数据。 当涉及到大数据应用时,例如基于web 的应用程序,情形如下: 智能客户端允许应用程序忽略数据分布细节。具体细节请参阅architecture guide 此文档中,我们将使用术语API及client interchangeably-集成Aerospike API的应用程序会同时集成智能终端。 原文链接:<http://www.aerospike.com/docs/architecture/> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |