【技术实现步骤摘要】
一种基于数据值分类的差异化键值数据存储方法
本专利技术属于计算机存储系统
,具体涉及在键值存储系统(KVStores)中,将键值(Key-Value)数据进行分类并采用差异化的存储方法,实现高性能、低空间开销的键值存取方法。
技术介绍
据谷歌(Google)、脸书(Facebook)等公司的介绍,为了适应新型网络应用和服务中海量非结构化与半结构化数据的存储需求,基于键值(Key-Value)模型的存储系统近年来被广泛使用,包括谷歌的LevelDB、脸书的RocksDB、淘宝的Tair等均采用了键值存储模型。这些主流的键值存储系统都采用日志结构合并树(LSM-Tree)作为其核心存储结构,这种结构将键值数据在磁盘上组织成多层,通过层间压缩(Compaction)操作来保证数据在各层内的绝对有序。但是频繁的Compaction操作会导致严重的写放大(WriteAmplification)问题,为了解决该问题,目前存在两种主流技术研究方向:一是放松LSM-Tree中存储键值对(KVPair)的层内有序性要求,每次Compac ...
【技术保护点】
1.一种基于数据值分类的差异化键值数据存储方法,其特征在于包括以下步骤:/n第一步:键值数据的分类存储/n采用数据值的分类方法,将键值数据按数据值大小分成大、中、小三类,并以键值分离的存储结构将数据值分别存储在磁盘上的无序数据区、有序数据区以及索引区三个不同区域:/n所述无序数据区,由一系列无序文件组成,存储大数据值,数据值在文件内按写入顺序存储;/n所述有序数据区,由一系列有序文件组成,存储中数据值,数据值在文件内部按照键的字典序排列,不同有序文件之间可以存在范围重叠;/n所述索引区,结构为日志结构合并树,保存小键值对本身,以及大、中数据值在数据区中的位置;/n所述数据值 ...
【技术特征摘要】
1.一种基于数据值分类的差异化键值数据存储方法,其特征在于包括以下步骤:
第一步:键值数据的分类存储
采用数据值的分类方法,将键值数据按数据值大小分成大、中、小三类,并以键值分离的存储结构将数据值分别存储在磁盘上的无序数据区、有序数据区以及索引区三个不同区域:
所述无序数据区,由一系列无序文件组成,存储大数据值,数据值在文件内按写入顺序存储;
所述有序数据区,由一系列有序文件组成,存储中数据值,数据值在文件内部按照键的字典序排列,不同有序文件之间可以存在范围重叠;
所述索引区,结构为日志结构合并树,保存小键值对本身,以及大、中数据值在数据区中的位置;
所述数据值的分类方法为:以近似数据值的位置索引大小作为小键值对的最大数据值大小SmallThreshold,并根据存储介质的并发随机读取性能设置大键值对的最小数据值大小LargeThreshold,满足当数据值大于LargeThreshold时并发随机读取性能接近顺序读取;数据值文件的大小限制为MaxFileSize,其值应小于LSM-Tree中数据文件的大小;键值对在写入时遵循以下流程:
(1)判断键值数据类型,将中小键值对直接写入LSM-Tree的写缓存中,将大键值对追加写入最新无序文件,并在成功写入后将其位置索引<key,value位置>写入写缓存;每当无序文件大小达到MaxFileSize时生成下一个文件;
(2)当写缓存写满刷盘时,生成新的有序文件,按键的字典序写入中数据值,同时记录中数据值在文件中的位置<key,value位置>;每当有序文件达到MaxFileSize时生成下一个文件;
(3)将写缓存中的小键值对,和其他数据值的位置索引<key,value位置>一起写入LSM-Tree中;
第二步:有序文件的分层管理
将有序文件逻辑上分为三层,LSM-Tree最后两层的中数据值分别仅存储在第1层与第2层有序文件中,LSM-Tree其余各层的中数据值仅存储在第0层有序文件中;分层操作在LSM-Tree触发输出层为最后两层的Compaction时执行,将Compaction数据中输入层的中数据值合并排序重写到对应输出层的有序文件中;具体方法为:
(1)每当生成有序文件时记录其所在层数,从写缓存刷盘生成的有序文件为第0层;
(2)当LSM-Tree执行Compactio...
【专利技术属性】
技术研发人员:吴加禹,崔秋,唐刘,吴毅,
申请(专利权)人:北京平凯星辰科技发展有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。