`
jiashiwen
  • 浏览: 2913 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

系统概述(System Overview)

阅读更多

系统概述(System Overview)

Aerospike是一个分布式可扩展的NoSql数据库,为一下三个主要目标而构建:

  • 创建一个满足当今网络平台应用的弹性,可扩展平台
  • 提供与传统数据库一样的鲁棒性和可靠性(例如,ACID)
  • 提供操作效率(最小人工参与)

最早发布于Proceedings of VLDB (Very Large Databases) in 2011,Aerospike架构包括三层:

  1. 集群可感知客户端层(Client Layer )包括实现Aerospike API的开源客户端函数库,追踪节点并感知数据在集群中的所在位置
  2. 自管理集群( Clustering)与数据分布层( Data Distribution Layer)监控集群通讯与自动故障转移,数据复制,跨数据中心同步,智能再平衡,数据迁移
  3. flash-optimized数据存储层(Data Storage)可靠存储数据于内存和闪存

客户端层

Aerospike“智能客户端”为速度而设计。它被实现为一个开源可链接库用于C、c#、Java、PHP和Python开发,开发者可用自由按需发布或修改。客户端包括以下内容

  • 实现Aerospike API,通过客户端-服务器协议与集群直连
  • 追踪节点感知数据存储位置,当节点启动或停止时立即感知集群配置变化。
  • 为提高效率实现TCP/IP连接池。检测非集群节点失败级别的事务失败并从新路由事务到数据副本
  • 透明地将请求直接发送到节点的数据并根据需要重试或重新请求,一个例子是在集群重新配置期间。

这种架构减少了事务延迟,分流集群工作并消除开发者工作量。它确保在节点启停是应用不必重启。总之,它消除了对于额外集群管理服务器或代理服务器的需要。

分布层

Aerospike “shared nothing”架构被设计目的是可以可靠存储TB及数据并支持自动容错、复制、跨数据中心同步。本层实现线性扩展及ACID guarantees。分布层也旨在消除手工操作,实现系统所有集群管理功能的自动化。它包括3个模块:

  • Cluster Management Module用于追踪集群节点。关键算法是确定哪些节点是集群的一部分的Paxos-like一致投票过程。Aerospike实现专门的心跳检测(主动与被动),用于监控节点间的连通性。

  • 当一个节点被添加或移除并且集群成员被确定,每个节点使用哈希算法讲主索引空间切分为数据切片并指派其拥有者。Data Migration Module(数据迁移模块)然后智能平衡跨集群中各节点的数据分布,并按照系统配置的复制因子确保每个数据块夸节点和夸数据中心复制。数据分割是纯粹算法,系统扩展无master,从而消除了在共享环境下的其他额外配置。

  • Transaction Processing Module(事务处理模块) 用于读写数据请求并保障一致性与隔离性,该模块负责
     
    1. Sync/Async Replication(同步/异步复制):为保证写一致性,在提交数据之前向所有副本传播更新并将结果返回客户端。
    2. Proxy (代理):集群重配置期间客户端可能出现短暂过期,透明代理请求到其他节点。
    3. Duplicate Resolution(副本解析):当集群从活动分区恢复时,解决不同数据副本之间的冲突。
       
      • 自动,以数据最晚的时间戳为标准
      • 用户驱动,为判定数据等级,所有数据副本返回应用。


 
Clustering

一旦启动集群,你可以在其他数据中心安装配置cross data-center replication其他集群,如果集群崩溃,远端集群可以承接负载。

数据存储层

Aerospike以无模式数据模型存储键值对。组织数据的容器称作命名空间(namespaces),相当于RDBMS系统中库(databases )的概念。在namespace中数据被细分为各个集合(set)(类似数据库中的表)和记录(records )(类似数据库中的行)。在set中每个record有一个唯一的索引key以及一个或多个bin(类似数据库中的列)与之相关联。

  • set和bin不需要预先定义,可以再运行时添加。
  • bin中的值是强类型,包括任何被支持的数据类型。bin本身不是类型,所以相同的bin名可以是不同类型的数据。

为了快速访问,索引( primary keys  secondary keys)存储于内存,数据可以存储于内存或SSD硬盘。每个namespace可以分别配置,这样小的namespace可以存储在内存而大的namespace可以存储在SSD上。

数据层特别为提高速度同时减少硬件成本而设计。它可以作为缓冲层所有操作在内存中进行或者利用优化过的flash存储,后者数据不会丢失。
  • 1亿个keys只占用6.4GB空间。虽然key没有大小限制,每个key的有效存储也只有64bytes
  • 原生,多线程,多核Flash I/O以及Aerospike日志结构文件系统利用低水平的SSD读写模式。此外,写盘执行块写操作以减少延迟。这种方式绕过标准文件系统优化传统磁盘。
  • Smart Defragmenter(建智能碎片整理)和 Intelligent Evictor(智能清理器)。这些进程协同工作确保内存中的数据不丢失并安全的写入磁盘
    • 碎片整理程序跟踪活动记录在每一块并回收那些低于最低使用率的块
    • 清理器移除过期的记录并在系统达到高水位线时回收内存。过期时间配置在每个namespace中,record存活期从最后一次修改的时间开始计算,应用可以越过默认的数据生命周期重新指定过期时间,可以设定数据永不过期。

操作Aerospike

在传统(非分布式)数据库系统中,安装完软件你需要设置schema、创建数据库和表。这与Aerospike数据库有很大不同。

在分布式数据库中,数据分布在集群中的各个服务器上。这意味着你不能在一台服务器上访问到所有数据。

使用Aerospike 数据库,将按如下步骤创建和管理数据库:

  • 通过配置初始化数据库设置。按Aerospike的术语,当安装系统时一个库被称作一个namespace,集群中的每个节点必须指明每个namespace如何创建及副本数量。数据库讲在你重启服务的时候被创建

  • 通过应用程序执行数据库操作。当应用程序第一次引用set和bin的时候数据库schema被创建,应用程序简单地将数据存储于指定的bin。在Aerospike数据库中,任务通常由DBA通过命令行程序执行。

  • 根据需要修改配置文件。要更新namespace的配置参数,你需要动态修改或使用新的配置文件重启服务。

为满足性能和冗余需求,Aerospike需要规划和配置具体的节点数量,具体细节请参考 Capacity Planning

可以通过management utilities  monitoring tools管理和监控急群众的节点。当添加节点或因升级维护需要宕机时集群会自动配置。当节点发生故障集群会再平衡负载,以便达到对最终用户影响最小的目的。

构建应用程序

一旦创建namespace,Aerospike提供了工具,允许您验证数据库存储数据正确性。在生产数据库,数据分布于集群当中。为了操作数据库你需要在应用程序中实例化智能客户端。智能终端是位置感知的,知道如何在集群中存储/检索数据而不影响性能。

Aerospike提供多种语言的API用于构建大数据应用程序。详情参考客户端手册

编译应用程序时,API函数库随智能终端被包含。为了在任何给定的时间确定数据位置,智能终端持续监控集群状态。智能客户端的位置感知技术确保在大多数情况下,可以再一跳之内检索到需要的数据。

当涉及到大数据应用时,例如基于web 的应用程序,情形如下:



 

智能客户端允许应用程序忽略数据分布细节。具体细节请参阅architecture guide

此文档中,我们将使用术语API及client interchangeably-集成Aerospike API的应用程序会同时集成智能终端。

 

译     者:北京IT爷们儿
  • 大小: 148.2 KB
  • 大小: 10.1 KB
分享到:
评论

相关推荐

    VIP System Overview

    3. 文档的目的和定位:V.I.P.System Overview作为V.I.P系统文档的一部分,目的是作为V.I.P.System Services, Volume 1和Volume 2的伴读手册,为用户提供关于V.I.P系统服务的更新描述。 4. 系统更改与修订:本手册和...

    USB4 System Overview.pdf

    USB4系统概述 USB4系统概述是介绍最新USB4技术的协议及规范的文件,旨在为开发人员和工程师提供深入的了解USB4技术的机会。下面是从该文件中提取的重要知识点: 1. USB Type-C®视图:USB Type-C是一种小型、可...

    USB Type-C System Overview

    USB Type-C 系统概述 USB Type-C 是一种新型的连接标准,它可以实现高速数据传输、显示和电源供应。下面是对 USB Type-C 系统的概述: USB Type-C 概述 USB Type-C 是一种高速连接标准,它可以实现高速数据传输、...

    IRMCx100 System Overview 系统总览(中英对照)

    ### IRMCx100 系列系统概述 #### 一、引言 IRMCx100 系列作为一款先进的电机驱动解决方案,专为使用 IRMCx100 家族数字控制集成电路 (IC) 和 IRAM 功率模块的电机驱动应用而设计。该系列提供了一个强大的开发平台...

    840Di System Overview

    标题与描述均提到了“840Di System Overview”,这显然是关于西门子SINUMERIK 840Di数控系统的概览介绍。SINUMERIK 840Di是西门子公司开发的一款高性能的数控系统,适用于各种复杂的加工任务,包括车削、铣削、磨削...

    System Overview-开源

    2. **图形化界面**:通过直观的图表和仪表,System Overview将复杂的系统数据转化为易于理解的可视化形式,使用户无需深入了解底层技术就能快速把握系统状况。 3. **自定义视图**:用户可以根据需要创建和保存不同...

    pastry p2p system overview

    ### Pastry P2P系统概述 #### 摘要与介绍 本文主要讨论Pastry P2P系统的存储管理和缓存机制。Pastry是一种基于自我组织的互联网覆盖网络的大规模、持久性的对等存储实用程序。它由一组协作的存储节点组成,这些...

    File System Behavior Overview

    标题中的“File System Behavior Overview”指的是对文件系统行为的全面概述,这通常涉及到操作系统如何管理和处理文件系统的操作,包括读写文件、创建删除文件、管理目录结构等方面。在这个主题下,我们将深入探讨...

    system-overview:macOS之类Linux系统概述

    **系统总览:macOS与类Linux系统概述** 在当今的计算机世界中,操作系统是连接硬件与用户软件的桥梁,而macOS和类Linux系统(包括各种基于Linux内核的发行版,如Ubuntu、Fedora、Debian等)是两大重要的桌面操作...

    DeltaVTM Digital Automation System overview.pdf

    DeltaVTM数字自动化系统概述,是关于DeltaV系统如何通过一套全面的数字解决方案来帮助工业自动化用户提升运营效率、精确控制、维护和优化生产过程的知识点介绍。该系统由Emerson公司开发,目的是为了帮助工业企业...

    overview-remote-operating-system-fingerprinting

    ### 远程操作系统指纹识别概述 #### 一、引言 远程操作系统指纹识别(Operating System Fingerprinting)是一项重要的网络安全技术,它可以帮助安全专家及黑客确定远程计算机所使用的操作系统类型及其版本信息。这...

    Overview Of The GSM System and Protocol Architecture

    ### GSM系统概述与协议架构详解 #### 一、GSM系统的背景与发展 全球移动通信系统(Global System for Mobile Telecommunications,简称GSM)是欧洲电信标准协会(CEPT)定义的一套标准化体系,旨在为泛欧地区的...

    Lecture Overview Linux Memory Management

    ### Linux内存管理概述 #### 一、Linux内存管理概览 Linux内核中的内存管理模块是相对复杂的,本文旨在提供一个简化的概述,帮助读者熟悉其中的关键概念与术语。 1. **分页(Paging)**:Linux采用了分页机制来...

    orbcomm system overview

    ### ORBCOMM系统概述知识点 #### 一、ORBCOMM系统简介 **ORBCOMM**是一家领先的全球物联网(IoT)解决方案提供商,专注于为各种垂直市场提供基于卫星和蜂窝网络的服务。该系统利用低地球轨道(LEO)卫星星座来提供全球...

    3 D laser sensing at FOI — overview and a system

    ### 三维激光传感技术在瑞典国防研究署的应用与系统概述 #### 一、引言 在当前技术快速发展的背景下,三维(3D)激光传感技术正在成为军事与民用领域的重要工具之一。它能够以厘米级的分辨率实现全方位视频速率...

    3GPP LTE: System Overview, Product Development, and Test Challenges

    ### 3GPP LTE: 系统概述、产品开发与测试挑战 #### 一、LTE概念 ##### 1.1 引言 长期演进(Long Term Evolution, LTE)是3GPP(Third Generation Partnership Project)制定的一项标准,旨在提供比其前代技术更高的...

    NI TestStand System and Architecture Overview

    **Architecture Overview(架构概述)** TestStand的架构主要包括以下几个部分: 1. **TestStand Sequence Editor**:这是创建、修改、执行和调试序列的开发环境,提供了丰富的功能和直观的界面。 2. **Custom User...

    电力系统分析:CHAPTER 1 The Power System an Overview.ppt

    【电力系统概述】 电力系统是现代社会的核心基础设施,它在全球范围内为各类用户提供稳定可靠的电力供应。电能因其高效、便捷的特点成为最广泛使用的能源之一。电力系统的发展历程始于19世纪末,随着技术的进步,从...

    DWM1001_System_Overview

    ### DWM1001系统概述与性能 #### 一、引言 ##### 1.1 概览 DWM1001是一款由Decawave公司开发的高度精确的定位系统,采用超宽带(UWB)技术实现精确的位置跟踪。本文档旨在提供DWM1001系统的整体架构和技术细节,并...

    三星CLX-3160FN中文维修手册03-System_Overview.pdf

    三星CLX-3160FN是一款多功能彩色激光打印机,其维修手册中的“System Overview”章节详细介绍了该设备的主要组件及其功能与工作原理。本章主要分为系统结构、各主要部件的描述以及它们的工作流程。 3.1 系统结构 ...

Global site tag (gtag.js) - Google Analytics