首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种写入batch group串行化逻辑的优化方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:上海沄熹科技有限公司

摘要:本发明涉及数据库领域,具体提供了一种写入batchgroup串行化逻辑的优化方法,每个batch使用独立的线程,基于滑动窗口机制来实现WAL的并发写入,多次并发访问小IO,维护一个WAL目录,每个batch对应生成一个单独的小log文件。与现有技术相比,本发明优化了RocksDB中WAL写入时batchgroup串行化逻辑导致的batch写入性能瓶颈问题,不再使用RocksDB内部组提交机制,而是基于滑动窗口机制支持实现batch并发写入WAL,可以通过设置窗口大小来控制并发程度,将一次大IO转换为并发访问小IO。充分利用了SSD的高读写速度和具有并发特性的性能优势,很大程度上提升了存储引擎的写性能。

主权项:1.一种写入batchgroup串行化逻辑的优化方法,其特征在于,每个batch使用独立的线程,基于滑动窗口机制来实现WAL的并发写入,多次并发访问小IO,维护一个WAL目录,每个batch对应生成一个单独的小log文件;具体步骤如下:S1、以WriteBatch对象为载体;S2、每个写线程生成一个WriteThread::Write的实例;S3、维护一个窗口,链表中的Writer对象可以被分为4类;1、开始写入事务日志,且已收到确认;2、开始写入事务日志,但未收到确认;3、尚未写入事务日志,但允许写入;4、尚未写入事务日志,且不允许写入;其中,类型(2)和类型(3)都位于窗口范围内;窗口大小代表允许并发写入WAL的最大线程数,窗口在接收到确认序号后,才会移动窗口的左边界;S4、链表中的每个Writer设置SequenceNumber的过程是串行的;每个Writer设置一个SequenceNumber,第一个进入队列的Writer的SequenceNumber等于当前VersionSet中的last_allocated_sequence_值,后续Writer的SequenceNumber则等于前一个Writer的SequenceNumber加上前一个Writer的batch中记录的数目;为链表中的每个Writer设置SequenceNumber的过程是串行的;S5、窗口内的写线程开始并发写入WAL时,生成log之后需要判断前面的batch是否已经全部写入完成;当还有前面序号的batch未完成写入但已经有后面序号的batch完成写入的情况下,不会返回确认序号,并且也不会对后续的写入进行确认;此时,当前的log文件也不会刷入磁盘,而是进行缓存,只有当前序号的batch全部写入完成后,才会与累积在缓存中的log文件一起进行刷盘操作,更新SequenceNumber,等于原本的SequenceNumber加上该batch的记录数目,然后将新的SequenceNumber返回;如果前面的batch已经全部写入完成,则当前batch生成的log文件直接刷入磁盘并且返回新的SequenceNumber,即原本的SequenceNumber加上该batch的记录数目;S6、完成WAL写入后开始写入MemTable;窗口接收到返回的SequenceNumber确认后,更新当前的last_allocated_sequence_为返回的SequenceNumber,并将窗口滑动至SequenceNumber的位置,得到确认后的Writer对象即为完成了WAL写入,开始写入MemTable;S7、完成MemTable写入后,需要更新VersionSet中last_sequence_的值;同last_allocated_sequence_一样,last_sequence_也需要保证其顺序性,因此在并发写入MemTable时,也需要维护一个滑动窗口,窗口大小代表了允许并发写入MemTable的最大线程数;同并发写入WAL时维护的滑动窗口机制相同,窗口只有在接收到确认序号后,才会更新last_sequence_的值并移动窗口的左边界,当还有前面序号的batch未完成写入但已经有后面序号的batch完成写入的情况下,不会返回确认序号,并且也不会对后续的写入进行确认;S8、Writer对象在完成MemTable写入之后退出。

全文数据:

权利要求:

百度查询: 上海沄熹科技有限公司 一种写入batch group串行化逻辑的优化方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。