SequoiaDB数据库-new数据库
随着企业中日益复杂与多变的需求,以及迅速扩展带来的海量数据的业务,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数据库做为理论上的铺垫。
————————————————
版权声明:本文为CSDN博主「SequoiaDB2013」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sequoiadb/article/details/12106133
SequoiaDB数据库-new数据库的更多相关文章
- SQL查询数据库信息, 数据库表名, 数据库表信息
SQL查询数据库信息, 数据库表名, 数据库表信息 ---------------------------------------------- -- 以下例子, 在sql_server 中可以直接运 ...
- SQL SERVER统计服务器所有的数据库(数据库文件)、表(表行数)、字段(各字段)等详细信息
原文:SQL SERVER统计服务器所有的数据库(数据库文件).表(表行数).字段(各字段)等详细信息 USE STAT GO SET NOCOUNT ON IF EXISTS(SELECT 1 FR ...
- SQL SERVER 2000 数据恢复(分离数据库+附加数据库)
一.分离数据库 SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上.分离数据库将从SQL Server 删除数据库,所以当点击“分离数据 ...
- sql server mdf碎片级数据库修复,数据库碎片级提取
sql server mdf碎片级数据库修复,数据库碎片级提取 大家都知道MDF数据库文件一般都比较大,在磁盘中往往被存放到不连续的逻辑簇中,久而久之就形成了文件碎片,当文件被误删除或者格式化后, ...
- mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息
1.1. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息 有时候我们想要获取到数据库的基本信息,当前程序连接的那个数据库,数据库的版本信息,数据库中有哪些表,表中都有什么字段 ...
- 查询oracle数据库的数据库名、实例名、ORACLE_SID
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
- C#获取指定IP地址的数据库所有数据库实例名
/// <summary> /// 获取指定IP地址的数据库所有数据库实例名. /// </summary> /// <param name="ip" ...
- Confluence 6 MySQL 创建数据库和数据库用户
一旦你成功的安装和配置了 MySQL 数据库服务器,你需要为你的 Confluence 创建数据库和数据库用户: 在 MySQL 中以超级用户运行 'mysql' .默认的用户为 'root' 同时密 ...
- 【Python全栈-数据库】数据库基础
数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...
- (3.15)mysql基础深入——mysql默认数据库/系统数据库
(3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...
随机推荐
- ASP.Net Core使用Jenkins配合pm2自动化部署项目
一. 新建一个自由风格的软件项目 二. General配置(参数化构建) 1. 用来选择部署的服务器(我这里只添加了一个,如果需要添加多个,一行一个就可以了) 2. 选择不同的环境变量 三.源码管理 ...
- 什么是AOP面向切面编程?怎么简单理解?
本文原文地址:什么是AOP面向切面编程?怎么简单理解? 什么是AOP面向切面编程 面向切面编程(AOP)通过将横切关注点(cross-cutting concerns)分离出来,提供了一种增强代码模块 ...
- Lua代码——使用遗传进化算法(neat算法)玩超级玛丽游戏
前文: 模拟器运行环境及Lua代码--使用遗传进化算法(neat算法)玩超级玛丽游戏 lua语言实现的neat算法代码: -- MarI/O by SethBling -- Feel free to ...
- 命运的X
命运的X cjx 生成函数强. 思路 首先,设 \(f_i\) 为添加第 \(i\) 项后满足条件的概率,\(g_i\) 任意添加至第 \(i\) 项的概率. 我们要求的答案: \[ans=\sum_ ...
- 2023NOIP A层联测32 T4 红楼 ~ Eastern Dream
2023NOIP A层联测32 T4 红楼 ~ Eastern Dream 根号分治加分块. Ps:分块后面真的用的多. 思路 考虑根号分治,将 \(x\) 分为 \(x \leq \sqrt n\) ...
- Nuxt.js 应用中的 vite:compiled 事件钩子
title: Nuxt.js 应用中的 vite:compiled 事件钩子 date: 2024/11/19 updated: 2024/11/19 author: cmdragon excerpt ...
- apache2和nginx卸载总是不干净不完全导致无法重装,重装成功也无法启动
大着胆子把nginx卸载了用的命令是 sudo apt remove nginx 结果最后不知道怎么折腾的就算重新装也装不上了,然后就转头折腾apache2,也卸载了 sudo apt remov ...
- 反汇编动态调试器之x64dbg
转载:https://cloud.tencent.com/developer/article/2337843 x64dbg 是一款开源.免费.功能强大的动态反汇编调试器,它能够在Windows平台上进 ...
- ZCMU-1111
与背包和动态规划有关(我认为) 采用dp数组存放吃掉i千克食物要用掉的钱 dp最开始要尽量的大方便过程中判断和最后的输出判断 实时更新dp,保留最小的钱 以前不知道的 printf函数可以这样用 fi ...
- 攻防世界:web习题之xff_referer
攻防世界:web习题之xff_referer 题目内容 https://adworld.xctf.org.cn/challenges/list 这道题的网页会首先会显示: 当成功修改ip地址之后会提示 ...