一种优化的ssd数据更新方法_2

文档序号:9396881阅读:来源:国知局
并过程和两组件的PLSM方法的合并过程步骤相同,参照图1,两组件的pLSM方法的合并过程如下:
[0029]I)从常驻内存C。中读入未合并的叶子节点数据,填入合并块中;
[0030]2)从常驻磁盘(^中读入未合并的叶子节点数据,填入合并块中;
[0031]3)对合并块中的数据进行归并排序,若遇到相等的关键字时,以常驻内存C。中的数据为最新数据,进行更新操作,例如,常驻内存C。中key为001的数据标识为删除,而C1中key为001对应的数据为12345,那么在合并块中进行归并排序时,由于以常驻内存C。中的数据为最新数据进行更新,所以删除key为001所对应的数据;
[0032]4)重复步骤I)、2)、3),当合并块满时,追加的写回磁盘,然后重新读取常驻内存C。和常驻磁盘C1中未合并的叶子节点数据;
[0033]5)当常驻内存C。和常驻磁盘C ^勺所有叶子节点都进行了合并操作后,表示一个合并过程结束,常驻内存C。中的更新操作数据被合并到磁盘中,如图2所示;
[0034]上述步骤为两组件的pLSM算法的合并过程,多组件间的合并过程和上述步骤相同;
[0035]通过上述合并步骤,对于SSD盘上数据的更新,先写入内存中结构,然后采用逐级合并的策略写回SSD,在写回过程中,不直接对SSD中的数据进行修改,而是通过合并过程来产生更新后的数据,并且追加写入新文件中,当合并完成后,删除旧文件,采用这种方法后,有效避免了 SSD的写入放大问题,提高了数据写回效率;
[0036]第三步,使用线段B树结构对SSD盘上的数据提供索引:
[0037]使用pLSM方法后,由于SSD盘中存储有多个数据文件,对于数据的查找操作,先在位于内存中的常驻内存C。结构中查找,如果没有找到,那么逐级在磁盘结构中查找,从常驻磁盘C1, C2—直到C k,直到找到为止。
[0038]在查找过程中,可能同一数据字段在多个结构中同时出现,而pLSM算法可以保证每次读取中都能取回最新且正确的数据。这是因为,PLSM树在读取时基于以下假设:最新的数据总是存在于级别较低的存储结构中,即如果Ck和Ck-1中同时存在相同的关键字,那么查找结果返回Ck-1中的数据,这一特点在数据的插入过程中也有所体现。在查找操作中,如果在中没有找到所需数据,就需要从磁盘中读取数据,增加了查找操作的时间开销。
[0039]当在SSD盘中的索引结构中查找时,和普通B树的查找过程类似,但是,关键字的比较转化为测试待查找数据是否在区间内,其示意图如附图所示。如果找到包含待查找数据的区间信息,则读取其在数据文件中的偏移量,通过文件偏移量访问数据文件,得到待查找key对应的value。因为访问SSD盘的速度慢于访问内存的速度,结合局部性访问原理,将一次访问中的整个区间数据缓存在内存中,组成一个缓冲区,当下次的同一区间内部的数据访问到来时,则直接在内存中进行操作,减少访问SSD次数,本发明中缓冲的组织采用双向链表组织,并且通过LRU算法来淘汰不常用的缓冲数据。
【主权项】
1.一种优化的SSD数据更新方法,其特征在于,包括以下步骤: 第一步,建立线段B树结构: 在内存数据库中,先利用字符串数据的共享前缀信息,将共享相同前缀的字符串组成一个字符串区间;然后将这个区间数据利用B树结构写入算法插入到线段B树中;最后,整个数据结构的逻辑视图为一颗B树,但是其存储的关键字字符串区间信息; 第二步,使用PLSM方法完成数据的更新操作,多组件间的pLSM方法的合并过程和两组件的pLSM方法的合并过程步骤相同,两组件的pLSM方法的合并过程如下: 1)从常驻内存C。中读入未合并的叶子节点数据,填入合并块中; 2)从常驻磁盘(^中读入未合并的叶子节点数据,填入合并块中; 3)对合并块中的数据进行归并排序,若遇到相等的关键字时,以常驻内存C。中的数据为最新数据,进行更新操作; 4)重复步骤I)、2)、3),当合并块满时,追加的写回磁盘,然后重新读取常驻内存C。和常驻磁盘C1中未合并的叶子节点数据; 5)当常驻内存C。和常驻磁盘C^勺所有叶子节点都进行了合并操作后,表示一个合并过程结束,常驻内存C。中的更新操作数据被合并到磁盘中; 通过上述合并步骤,对于SSD盘上数据的更新,先写入内存中结构,然后采用逐级合并的策略写回SSD,在写回过程中,不直接对SSD中的数据进行修改,而是通过合并过程来产生更新后的数据,并且追加写入新文件中,当合并完成后,删除旧文件; 第三步,使用线段B树结构对SSD盘上的数据提供索引: 使用PLSM方法后,由于SSD盘中存储有多个数据文件,对于数据的查找操作,先在位于内存中的常驻内存C。结构中查找,如果没有找到,那么逐级在磁盘结构中查找,从常驻磁盘C1, C2—直到Ck,直到找到为止; 在查找过程中,如果同一数据字段在多个结构中同时出现,PLSM方法保证每次读取中都能取回最新且正确的数据,在查找操作中,如果在中没有找到所需数据,就从磁盘中读取数据; 当在SSD盘中的索引结构中查找时,关键字的比较转化为测试待查找数据是否在区间内,如果找到包含待查找数据的区间信息,则读取其在数据文件中的偏移量,通过文件偏移量访问数据文件,得到待查找key对应的value,将一次访问中的整个区间数据缓存在内存中,组成一个缓冲区,当下次的同一区间内部的数据访问到来时,则直接在内存中进行操作,缓冲的组织采用双向链表组织,并且通过LRU方法来淘汰不常用的缓冲数据。
【专利摘要】一种优化的SSD数据更新方法,针对SSD上存储的字符类型的数据,结合使用线段树和B树两种数据结构,在保证查询效率的同时,减少索引结构所占空间,在对字符数据进行更新时,利用集合交并运算特点,将两个数据块中相同key的不同value进行更新,其他数据则原样写回,通过采用基于线段B树的LSM方法,将对于SSD上字符数据的随机更新转化为数据的顺序写入,有效避免了SSD的写入放大问题,加快了SSD的写入数据速度,提高了数据库操作效率。
【IPC分类】G06F17/30
【公开号】CN105117415
【申请号】CN201510458844
【发明人】段章峰, 伍卫国, 崔金华
【申请人】西安交通大学
【公开日】2015年12月2日
【申请日】2015年7月30日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1