SunlightDB 无限扩展
来源:互联网 发布:筑业市政软件 编辑:程序博客网 时间:2024/06/06 01:06
随着数据量和吞吐量的增长,运维人员能够直接通过增加本地或公有云服务器,快速增加SunlightDB系统容量。SunlightDB是一种“分布式”数据库,可部署到多个“集群”服务器上,“集群”是由多个具有同等功能的SunlightDB服务器实例组成。
SunlightDB数据存储的单位是表和行,每个表都有严格的模式和强制主键,强制主键用于自动将表拆分为多个同等大小的分区,每个分区存储在集群中的多个服务器上。关于分区算法,主要有以下几种:
(1)模哈希算法
模哈希算法定位表中的每一行需要的时间量相同,无需考虑表中的总行数,并且我们只需输入行的ID和服务器总数。但是,该算法无法处理一个不断增长的数据集。如果我们不断地向表中添加更多的行,最终我们将增加服务器总数,来增加更多的容量,但是改变服务器总数也就改变了模运算的结果。
(2)一致性哈希算法
一致性散列仅能支持精确查询,就是说,如果我们已经知道行的ID,我们只能快速找到一行。如果我们要查找ID范围内所有行的位置,例如ID在10到50之间的所有行,我们将扫描整个表格。因此,一致性散列特别适用于不需要范围扫描的键/值数据库。另外,在更改服务器数量后,我们仍然需要复制大约1 / N(服务器总数)的数据。
(3)BigTable 算法方案
(1)模哈希算法
模哈希算法定位表中的每一行需要的时间量相同,无需考虑表中的总行数,并且我们只需输入行的ID和服务器总数。但是,该算法无法处理一个不断增长的数据集。如果我们不断地向表中添加更多的行,最终我们将增加服务器总数,来增加更多的容量,但是改变服务器总数也就改变了模运算的结果。
(2)一致性哈希算法
一致性散列仅能支持精确查询,就是说,如果我们已经知道行的ID,我们只能快速找到一行。如果我们要查找ID范围内所有行的位置,例如ID在10到50之间的所有行,我们将扫描整个表格。因此,一致性散列特别适用于不需要范围扫描的键/值数据库。另外,在更改服务器数量后,我们仍然需要复制大约1 / N(服务器总数)的数据。
(3)BigTable 算法方案
基本上BigTable是经典分裂算法的应用。初始情况下,每个表只含一个Tablet,随着表数据的增长,它会被自动分割成多个Tablet。同时,Master服务器会负责控制是否需要将Tablet转交给其他负载较轻的Tablet服务器,从而保证整个集群的负载均衡。BigTable方案的优点是它支持范围扫描,并且我们向集群添加服务器不会导致数据重新平衡。
SunlightDB分区,选择BigTable方案,并不是说这个方案或者说算法更好——算法无优劣,关键看场景。
0 0
- SunlightDB 无限扩展
- SunlightDB 安全策略(一)
- 无限扩展字段数据库设计
- 关联选择 可以无限扩展
- SunlightDB 超融合新一代数据库
- [创亿无限]可扩展地图
- 程序分类设计,单表无限扩展
- kafaka-无限横向扩展消息中间件
- SunlightDB 2017 新型区块链数据库
- SunlightDB区块链3.0技术架构简介
- 使用TreeView实现无限级扩展节点(原创)
- 一棵用JAVASCRIPT实现的可无限扩展的树
- 关于无限级缓存的类的扩展
- 一个可以无限扩展层次级的折叠菜单
- 纯CSS制作三级菜单,可扩展无限
- 【Android病毒分析报告】 - AppPortal “恶意行为云端无限扩展”
- 14-scale is not infinite(扩展不是无限的)
- thinkphp5的nestedsets无限极分类扩展包使用
- Qt之设置应用图标、中文显示和窗口大小设置
- 二叉树7:折纸练习题
- wav文件格式解析
- ANT 学习
- JavaScript之预编译
- SunlightDB 无限扩展
- Thymeleaf教程(二)应用
- Vue环境安装
- C++入门
- 二叉树8:寻找错误结点练习题
- 3D引擎的基础数学知识
- 解决qt Creator更改UI界面后,运行无效果(linux下亲测)
- Selenium报错Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms
- HDU-3578-双塔dp