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

文档序号:9396881阅读:1105来源:国知局
一种优化的ssd数据更新方法
【技术领域】
[0001]本发明属于计算机技术领域,具体涉及一种优化的SSD数据更新方法。
【背景技术】
[0002]在NoSQL数据库设计时,需要将内存中的数据可持久化存储。使用SSD (固态硬盘)作为可持久化存储时,可以加快数据的读写处理能力,提升系统的整体性能。因此将数据写回到SSD中,组成内存-SSD的两级存储架构,来为应用提供容量更大,相比于传统机械磁盘存储,访问速度更快的数据库系统。为了快速对存储在SSD上的数据进行访问,需要对数据建立索引。然而传统的B树,B+树等索引结构会产生大量的随机I/O操作的请求。如果直接将大量的随机I/O请求数据不加处理的写入SSD会造成SSD性能的严重降低。因为当上层应用程序需要更新SSD上的数据时,SSD所固有的写入放大特性,增加了写入操作的延迟。
[0003]O’Nei等人在日志文件系统的思想上提出日志结构合并(Log Structure Merge)方法的思想,根据日志信息的不断追加写入特点,结合B树数据结构,牺牲部分读性能,用来大幅提高写性能,在读写之间取得更好性能的平衡。该LSM方法提供了一种延迟更新机制,将随机的小数据量的更新操作融合为大的顺序性的更新操作,提高存储的带宽利用率。LSM方法的上述特点使得它在内存-SSD的两级存储架构中写入多于读取的数据库系统中表现出良好的性能。
[0004]然而LSM方法直接作用于基于SSD的NoSQL数据库系统时会出现一些新的问题。LSM方法是基于关键字为整数类型设计的,在存储关键字为key-value的字符串类型的数据库中,如果对字符串类型的key值建立索引,再将索引结构写回SSD时,需要进行转换,因为SSD上不能直接存储指针类型的数据。另一方面,字符串类型的数据由于其格式,长度等的多样性,无法用提前分配好的空间来表示其数据,而且单独为每一个key值建立索引,将会使得LSM方法中SSD中的B树索引结构中的数据量增多,在这种情况下对数据进行访问,将会导致查找路径增长,数据访问延迟增加。针对这一系列的问题,本发明提出一种针对字符串类型数据的改进索引结构,能够加速SSD上字符串类型数据的访问速度。

【发明内容】

[0005]为了克服上述现有技术的缺点,本发明的目的在于提供一种优化的SSD数据更新方法,提高了数据访问效率。
[0006]为了达到上述目的,本发明采取的技术方案为:
[0007]—种优化的SSD数据更新方法,包括以下步骤:
[0008]第一步,建立线段B树结构:
[0009]在内存数据库中,先利用字符串数据的共享前缀信息,将共享相同前缀的字符串组成一个字符串区间;然后将这个区间数据利用B树结构写入算法插入到线段B树中;最后,整个数据结构的逻辑视图为一颗B树,但是其存储的关键字字符串区间信息;
[0010]第二步,使用PLSM方法完成数据的更新操作,多组件间的PLSM方法的合并过程和两组件的PLSM方法的合并过程步骤相同,两组件的pLSM方法的合并过程如下:
[0011]I)从常驻内存C。中读入未合并的叶子节点数据,填入合并块中;
[0012]2)从常驻磁盘(^中读入未合并的叶子节点数据,填入合并块中;
[0013]3)对合并块中的数据进行归并排序,若遇到相等的关键字时,以常驻内存C。中的数据为最新数据,进行更新操作;
[0014]4)重复步骤I)、2)、3),当合并块满时,追加的写回磁盘,然后重新读取常驻内存C。和常驻磁盘C1中未合并的叶子节点数据;
[0015]5)当常驻内存C。和常驻磁盘C ^勺所有叶子节点都进行了合并操作后,表示一个合并过程结束,常驻内存C。中的更新操作数据被合并到磁盘中;
[0016]通过上述合并步骤,对于SSD盘上数据的更新,先写入内存中结构,然后采用逐级合并的策略写回SSD,在写回过程中,不直接对SSD中的数据进行修改,而是通过合并过程来产生更新后的数据,并且追加写入新文件中,当合并完成后,删除旧文件;
[0017]第三步,使用线段B树结构对SSD盘上的数据提供索引:
[0018]使用pLSM方法后,由于SSD盘中存储有多个数据文件,对于数据的查找操作,先在位于内存中的常驻内存C。结构中查找,如果没有找到,那么逐级在磁盘结构中查找,从常驻磁盘C1, C2—直到C k,直到找到为止;
[0019]在查找过程中,如果同一数据字段在多个结构中同时出现,pLSM方法保证每次读取中都能取回最新且正确的数据,在查找操作中,如果在中没有找到所需数据,就从磁盘中读取数据;
[0020]当在SSD盘中的索引结构中查找时,关键字的比较转化为测试待查找数据是否在区间内,如果找到包含待查找数据的区间信息,则读取其在数据文件中的偏移量,通过文件偏移量访问数据文件,得到待查找key对应的value,将一次访问中的整个区间数据缓存在内存中,组成一个缓冲区,当下次的同一区间内部的数据访问到来时,则直接在内存中进行操作,缓冲的组织采用双向链表组织,并且通过LRU方法来淘汰不常用的缓冲数据。
[0021]本发明的有益效果是:
[0022]本发明实现了一种优化的LSM方法,pLSM方法,提供了针对SSD存储的字符串类型数据的更新策略。一方面,使用PLSM方法,将对SSD盘上文件的随机数据更新转化为顺序的文件追加写入,避免SSD的写入放大问题。另一方面,使用线段B树结构为SSD盘中的数据提供索引,避免了数据查找时的全部遍历,数据查找时间复杂度从O(N)降低到0(LogN),提高了数据访问效率。
【附图说明】
[0023]图1为两组件LSM结构示意图。
[0024]图2为LSM方法合并过程示意图。
【具体实施方式】
[0025]—种优化的SSD数据更新方法,包括以下步骤:
[0026]第一步,建立线段B树结构:
[0027]在内存数据库中,先利用字符串数据的共享前缀信息,将共享相同前缀的字符串组成一个字符串区间;然后将这个区间数据利用B树结构写入算法插入到线段B树中;最后,整个数据结构的逻辑视图为一颗B树,但是其存储的关键字字符串区间信息;
[0028]第二步,使用pLSM方法完成数据的更新操作,多组件间的pLSM方法的合
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1