随着企业中日益复杂与多变的需求,以及迅速扩展带来的海量数据的业务,IT部门需要将越来越多的信息提供给用户,同时在现今的全球经济背景环境下,IT部 门还需要在提供高效服务的同时,降低其设备与程序维护成本。SequoiaDB作为全球第一家企业级文档式非关系型数据库,则提供了诸如此类(高可扩展 性、高可用性、高性能、易维护、低成本)的全方位平台。下面从其特点、数据模型、系统架构等三个方面来了解SequoiaDB。
(一)SequoiaDB特点如下

1、当传统的关系型数据库无法做到水平扩张能力时,在SequoiaDB中会得到完美的解决,通过对数据进行垂直切片,并应用了新型的非关系型数据模型,SequoiaDB有效地降低了传统数据库分区中大量数据交换的瓶颈,进而得到线性水平扩张能力。

2、SequoiaDB能够将用户的每一份数据实时保存多份副本,有效地防止了因服务器、机房及人为等因素所造成的系统停机带来的损失,确保随时在线可用。

3、SequoiaDB为企业提供了用户友好并完善的管理、维护及监控界面,实现24×7的电话及现场技术支持,拥有完善的企业级支持。

4、SequoiaDB使用JSON数据模型,灵活有效地降低关系模型的复杂性,让数据库更加贴近应用程序,从而大大降低应用程序的开发和维护成本。

5、SequoiaDB在大规模分布式环境中提供了数据最终一致性的保障,满足用户对实时性与一致性的需求。

6、SequoiaDB通过分片机制进行读写分离,允许前端在线应用与后台数据分析完美并行互不干扰,并可结合Hadoop技术进行海量数据分析。

(二)SequoiaDB数据模型

SequoiaDB数据库没有使用传统的关系型数据模型,而是JSON数据模型。JSON数据结构的全称为Javascript Object
Notation,是一种轻量级的数据交换格式,非常易于人阅读和编写,同时也易于机器生成与解析,为纯文本格式,支持嵌套结构与数组。

JSON建构基于两种结构:

1、键值对集合。在键值对集合结构中,每一个数据元素拥有一个名称与一个数值,数值可以包含数字,字符串等常用结构,或嵌套JSON对象和数组。

2、数组。在数组中的每一个元素不包含元素名,其值可以为数字、字符串等常用结构,或者嵌套JOSN对象和数组。

其典型的嵌套式数据结构如下图所示:



“姓名”:“张三”,

“性别”:“男”,

“住址”:“广州市”,

“电话”:[

139020×××××,

180263×××××

],

“备注”:[

“客户代表”,

“销售代理”

]



(三)SequoiaDB系统架构

SequoiaDB使用分布式架构,下图为体系结构:




在客户端(或应用程序端),本地或(和)远程应用程序都与SequoiaDB客户机库链接。本一与远程客户机使用TCP/IP协议与协调节点进行通讯。

协调节点不保存任何用户数据,仅作为请求分发节点将用户请求分发至相应的数据节点。

编目节点保存系统的元数据信息,协调节点通过与编目节点通讯从而了解数据在数据节点中的实际分布。一个或多个编目节点可组成复制组集群。

数据节点保存用户的数据信息。一个或多个数据节点可以构成一个复制组。复制组中每个数据节点的数据保证最终一致性同步。数据复制组又叫做数据分片(Shard),不同的分片中保存的数据无重复。

每个分片中可以包含一个或多个数据节点。当存在多个数据节点时,节点间数据进行异步复制。分片中可以存在最多一个主节点与若干从节点。其中主节点可以进行读写操作,从节点进行只读操作。




从节点离线不影响主节点的正常工作。主节点离线后会在从节点中自动选择举出新的主节点处理写请求。




当节点恢复后,或新的节点加入分片后会理行自动同步,保障数据在同步完成时与主节点一致。




在单个数据节点中的体系结构如下:





在数据节点,活动由引擎可高度单元(EDU)控制。每一个节点对操作系统中的一个进程。每个EDU在节点中为一个线程。对于外部用请求其处理线程为代理线

程,对于集群内部请求则由同步代理线程处理分片内同步事件或分片代理线程处理分片间同步事件。所有对数据的写操作均会录入日志缓冲区,通过日志记录器将其
异步写入磁盘。用户数据会由代理线程直接写入文件系统缓冲池,然后由操作系统将其异步写入底层磁盘。

从以上三点可以初步了解SequoiaDB数据库,可为以后更深入学习及应用SequoiaDB数据库做为理论上的铺垫。

学习教程下载


SequoiaDB Demo VMware 学习教程


Linux 平台(社区版)   


Sequoiadb-1.3 for IBM Power Linux 64 Installer 202.60MB


Sequoiadb-1.3 for Linux x86_64 Installer 201.72MB

初步了解SequoiaDB数据库的更多相关文章

  1. SequoiaDB数据库集群部署

    一般在多机环境下部署数据库的集群模式是比较繁琐的,下面我来分享一个如何通过shell脚本的方式简单.方便地部署我们的集群. 首先,我们要给机器配置信任关系,这样我们就无需手动的输入密码来执行ssh和s ...

  2. SequoiaDB数据库的一般概念介绍

    SequoiaDB数据库的主要对象包括文档.集合.集合空间与索引等. 文档 SequoiaDB中的文档为JSON格式,一般又被称为记录.在数据库内部使用BSON,即二进制的方式存放JSON数据.一般情 ...

  3. 初步理解 MySQL数据库

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1. 索引是做什么的? 索引用于快速找出在某个列中有一特定值的行.不使用索引,MYSQL必须从第1条记录 ...

  4. 深入学习sequoiadb巨杉数据库及python连接方式

    随着公司日益复杂与多变的需求,以及迅速扩展带来的海量数据业务,我们需要在提供高效服务的同时,降低其设备与程序维护成本.算了,不吹了,说白了就是需要从巨杉数据库中抓取大量的数据,但是我现在不会,所以需要 ...

  5. 非关系型数据库SequoiaDB虚拟机下应用再探

    上一次浅谈了SequoiaDB在虚拟机上的安装及在web下图形界面的基本操控,现在来体验命令行操作及运行samples文件. 基本DDL操作 首先在视窗窗口同时按Ctrl+Alt+T,进入到命令行窗口 ...

  6. 非关系型数据库SequoiaDB虚拟机下应用初探

    SequoiaDB是广州巨杉软件有限公司开发的一款新型分布式非关系型数据库.可应用于linux操作系统下.在虚拟机下试用了一下(操作系统Ubuntu),感觉不错,操控简单易上手,在此分享一下心得. 下 ...

  7. 【巨杉数据库SequoiaDB】社区分享 | SequoiaDB + JanusGraph 实践

    本文来自社区用户投稿,感谢小伙伴的技术分享 项目背景 大家好!在春节这段时间里,由于一直在家,所以花时间捣鼓了一下代码,自己做了 SequoiaDB 和 JanusGraph 的兼容扩展工作. 自己觉 ...

  8. 【巨杉数据库SequoiaDB】巨杉Tech | 巨杉数据库的并发 malloc 实现

    本文由巨杉数据库北美实验室资深数据库架构师撰写,主要介绍巨杉数据库的并发malloc实现与架构设计.原文为英文撰写,我们提供了中文译本在英文之后. SequoiaDB Concurrent mallo ...

  9. 【巨杉数据库SequoiaDB】巨杉Tech | 四步走,快速诊断数据库集群状态

    1.背景 SequoiaDB 巨杉数据库是一款金融级分布式数据库,包括了分布式 NewSQL.分布式文件系统与对象存储.与高性能 NoSQL 三种存储模式,分别对应分布式在线交易.非结构化数据和内容管 ...

随机推荐

  1. UML 之 各种视图简介

    统一建模语言(Unified Modeling Language,UML)中各种视图并没有明显的概念区别. 在最上一层,视图被划分为三个视图域:结构,动态行为,模型管理. 结构主要描述了系统中的结构成 ...

  2. [Windows] Visual Studio 2010 快捷键大全

    Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL ...

  3. 02. SQL表达式的灵活使用

    什么是SQL表达式?在SQL语句中,表达式可以是函数,也可以是列和列之间的混合运算.很多时候,对于表达式的使用,可以比单独操作表上的列,带来更多方便. 一. 在HAVING中使用表达式 --drop ...

  4. ARM嵌入式整理

    填空 1指令含义 列出文件列表的ls命令 切换目录的cd命令 创建目录的mkdir命令 删除目录的rmdir命令 复制文件的cp命令 删除文件或目录的rm命令 让显示画面暂停的more命令 连接文件的 ...

  5. hust 1017 DLX

    #include<set> #include<cmath> #include<queue> #include<cstdio> #include<v ...

  6. hdu 3062 2-SAT问题

    思路:裸的2-SAT. #include<map> #include<set> #include<cmath> #include<queue> #inc ...

  7. [__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310

    出现这种问题一般是你把int类型的数值赋给了NSString. 比如: 你定义了一个NSString类型的属性sex,但是服务端返回的sex字段实际上是NSNumber类型, 你直接把NSNumber ...

  8. iOS 简单block的使用

    1.第一种方法 声明block: - (void)test:(int) param_1 completion:(void(^)(int)) completion; 实现block: -(void)te ...

  9. Cocos2d-JS加速度计与加速度事件

    在很多移动设备的游戏使用到了加速度计,Cocos2d-JS引擎提供了访问加速度计传感器的能力.本节我们首先介绍一下加速度计传感器,然后再介绍如何在Cocos2d-JS中访问加速度计.加速度计加速度计是 ...

  10. UI1_UITableViewSearchController

    // UI1_UITableViewSearchController // // Created by zhangxueming on 15/7/15. // Copyright (c) 2015年 ...