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+。
并发控制
定义要在 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的文件系统是可配置的,并且目前支持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.data
swc.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 个。