绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
SWC-DB
2022-04-28 10:44:16

SWC-DB(“超宽列数据库”)是一个宽列DBMS。SWC-DB 没有表,也没有命名空间;列数众多,支持选择器而不是列名和标签,实际的键是分数的结构,二进制(字节)数据由单元格(记录的)键或值支持。

SWC-DB可以被描述为键值存储模型,支持许多分数构成键。与已知支持单列限定符的宽列数据库一样,SWC-DB 中的 Key-Fractions 允许对由联接分数组成的单个记录键使用 2^24 个限定符(-1 “row”)。分数限制的长度为 2^24,总键为 2^32 字节。

无论键值存储作为感知 SWC-DB(如宽列数据库)是否支持按间隔扫描和选择单元格,扫描的扩展支持包括扫描列中具有多个间隔的多个列。SWC-DB 中的主列和元列(范围定位器系统列)附加索引/存储到范围的键开始和键端,分数的小值和大值以对齐的方式解决范围定位器延迟和访问/扫描多维键,无需扫描 F(0)。SWC-DB与其他数据库不同,它支持多个键序列,列架构定义了键字节序列选项词法(0,1,10,9)或体积序列(0,1,9,10)或键中的分数计数(从少到多)。

SWC-DB 中的单元格值在列架构中定义,当前列类型选项为普通、串行和COUNTER_(I8,I16,I32,I64)。扫描值数据的可能性取决于列类型。

Cell 的键、Cell 的值、Column 的名称和 Column 的标签的所有条件都是通过扩展到域对象类型的比较器类型来完成的,例如部分/完全顺序 sup/子集以及词法上的体积扩展。

SWC-DB使用专有的SQL(结构查询语言),以满足使用其超宽键的要求。

SWC-DB 旨在处理千万亿个条目基础上的 Yottabytes+。

压缩

朴素(页面级) 天真(记录级别) 位打包/主要编码

可用的编码器(压缩器)是ZSTD,ZLIB,SNAPPY和PLAIN。在记录级基本配置上,这是通过使用所需的编码器更新 Cell 值来完成的。在 Cell-Store-Block 上应用的页面级基数上,它是通过定义架构的默认配置或通过列架构定义以及要使用的编码器来完成的。通信事务可在程序特定(应用程序级别)使用应用程序指定的配置属性和文件进行配置。可变长度整数用于大多数数值基元,无论是长期/持久存储还是中间运行时消耗。

并发控制

多版本并发控制 (MVCC) 确定性并发控制 时间戳排序

定义要在 SWC-DB 中保留/保留的大单元版本的选项是通过配置列的 Schema 属性“单元版本”来完成的,而单元的顺序和修订由单元的时间戳定义及其顺序 DESC/ASC 确定。时间戳默认为 AUTO,即 swcdbRanger 应用程序系统的时间和对 ASC 的顺序。此外,除了用户提供的时间戳之外,SWC-DB 单元还具有内部单元修订定义,可以确定应保留或删除的新数据。SWC-DB 中使用的时间戳精度为纳秒。而列架构的可配置“单元格 ttl”属性以毫秒为单位。单元的架构的 TTL 应用于单元的时间戳,在到达 TTL 时,该单元会自动被视为不存在,具体取决于动量和大版本,通过在压缩不足之前更改架构的单元 ttl,单元格可能存在。

数据模型

列系列 键/值

指标

跳过列表 日志结构合并树 区块范围指数

SWC-DB中的列范围(分片)是在块范围索引(BRIN)中索引的提交日志片段,CellStore和块的结构;用于更快块访问的范围块具有支持跳过列表缩小索引;

Current-CommitLog、Log-Fragment、CellStore-Block 和 Range-Block 的基础对象存储是具有跳过列表索引功能的 SWC-DB 可变单元容器。

SWC-DB Range-Blocks-Block(执行选择扫描的对象)单元格数据由SWC-DB Range-Block-Loader填充,该加载器读取/加载CellStore-Blocks,Log-Fragments和Current-CommitLog。按相应顺序加载的块将经历日志结构合并树的索引过程;根据配置的需要,CommitLog Compaction 会连续合并/压缩日志片段,并基于日志结构合并树的索引基础。swc.rgr.Range.CommitLog.Compact.cointervaling

加入

不支持

查询接口

自定义接口 断续器 命令行/命令行管理程序

SWC-DB 中的主界面是“libswcdb.so”C++客户端/API 库,该库也用于 SWC-DB 内部操作、实用程序应用程序和代理服务器应用程序。其中一个实用程序应用程序是命令行界面“SWC-DB(客户端)>”,它允许大多数命令和查询以SQL的形式执行。作为一个支持API实现层,SWC-DB实现了已知的Apache Thrift-Protocol,并提供“swcdbThriftBroker”应用程序来服务thrift-client请求,这些请求可以使用C++,Java,Python,C-Glib,Netstd,Rust进行开发,并扩展到Apache-Thrift支持的语言。

存储架构

面向磁盘

SWC-DB的文件系统是可配置的,并且目前支持Hadoop-JVM,Hadoop(Native C++),Ceph,Local,Custom(用户开发的库)和FsBroker。根据 SWC-DB 版本/构建类型,文件系统可以是一个实现,也可以是一个动态加载的库。SWC-DB 应用程序的 FsBroker-Filesystem 是文件系统类型,而 swcdbFsBroker(application) 具有底层 fs 类型配置。swcdbFsBroker 可以在远程实例上运行,运行 swcdbManager/s 或/和 swcdbRanger/s 的主机。自定义文件系统是用户开发的基于 SWC::FS::文件系统接口类的文件系统库的类型名称持有者(无限的 FS Impl. 可能性)。

SWC-DB 基本 FS 路径由配置属性确定和定义,并评估为与 连接。例如,在HDFS的根文件夹中具有FS基,它与.--swc.fs.TYPE.path.root--swc.fs.path.dataswc.fs.TYPE.path.root="/var/opt/swcdb/"swc.fs.path.data="your/cluster/name"swc.fs.hadoop_jvm.path.root=/swcdb/swc.fs.path.data="or/no/sub/folders"

SWC-DB 基本路径中的数据拓扑(文件/文件夹结构)基于列 ID 和 range-id,路径上由 CellStore 和 CommitLog 文件组成,而在任何时候,一台服务器负责列 id 和路径根目录上的 range-id。CellStores是以序列化形式存储Cell的文件,这些文件是在新压缩之后存储的,而提交日志是当前添加数据的许多片段,片段是在达到(架构可配置的日志推出比率)阈值达到或关闭时写入的。SWC-DB 使用结构 ID 文件夹名称,单个文件夹的条目数不会超过 2000 个。

系统架构

共享-无

分享好友

分享这个小栈给你的朋友们,一起进步吧。

SWC-DB
创建时间:2022-04-28 10:43:47
SWC-DB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • LCR_
    专家
戳我,来吐槽~