System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种RocksDB业务隔离过载保护方法及系统技术方案_技高网

一种RocksDB业务隔离过载保护方法及系统技术方案

技术编号:41004308 阅读:5 留言:0更新日期:2024-04-18 21:41
本发明专利技术属于数据持久化存储技术领域,具体涉及一种RocksDB业务隔离过载保护方法、系统、设备及存储介质,本发明专利技术将不同列族进行隔离,某个列族短时间内大量写入不再影响全局,只会对该列族进行延缓写入或者停止写入,相当于系统的一种过载保护策略,通过停止异常业务的写入保障了其他业务的正常读写,从而避免了因为一个业务的波动引起整个底层存储系统的瘫痪;整体实现比较简单,对RocksDB的整体改动比较小,主要涉及到配置更新、延缓写和停写发生的时机、控制不同列族的写入速度等;通过配置就能调整不同业务的优先级,提供了更好的灵活性,从而能够从容应对此类流量激增的场景,避免因为一个业务的波动引起整个底层存储系统的瘫痪。

【技术实现步骤摘要】

本专利技术属于数据持久化存储,具体涉及一种rocksdb业务隔离过载保护方法及系统。


技术介绍

1、rocksdb将随机写变成了批量的顺序写,提升了写入速度,但是需要定时对数据进行flush落盘(生成sst数据文件)和compaction(将当前层的sst文件合并到下一层)来清理空间。如果flush和compaction的速度跟不上写入的速度(等待flush的memtable的数量过多或者是l0层还没来得及compaction的sst文件数量过多),rocksdb会自动降低写入速度(触发延缓写),严重时甚至会停写导致整个系统不可用。

2、即使rocksdb已经提供了列族(cf)作为一种业务隔离的功能,但是当某个列族短时间内写入大量数据触发了延缓写,那么引起的影响是全局的,会导致整个rocksdb的延缓写甚至是停写,所以即使已经使用了列族作为不同业务的隔离,还是会有可能因为一个业务的波动引起整个底层存储系统的瘫痪(停写),rocksdb对列族的设计还没彻底达到业务隔离的目的。


技术实现思路

1、本专利技术的目的在于提供一种rocksdb业务隔离过载保护方法及系统,可以避免因为一个业务的波动引起整个底层存储系统的瘫痪,以解决上述
技术介绍
中提出现有技术中的问题。

2、为实现上述目的,本专利技术采用了如下技术方案:一种rocksdb业务隔离过载保护方法,包括:在rocksdb启动前对不同列族按业务的优先级进行配置,获取配置信息;在rocksdb启动时读取所述配置信息,并根据所述配置信息建立一个全局的unordered_map进行存储,获取存储信息;判断所述列族其中一个列族在内存中的第一等待模式,根据所述第一等待模式选择相应的第一写入方式;判断所述列族其中一个列族在l0层中的第二等待模式,根据所述第二等待模式选择相应的第二写入方式。

3、优选地,所述配置包括:根据不同业务的优先级配置最大memtable个数以及最大l0层sst文件个数,并增大flushes和compaction的线程数。

4、优选地,所述配置还包括:对于没配置的列族共用默认的最大memtable个数和最大l0层sst文件个数。

5、优选地,所述在rocksdb启动时读取所述配置信息,包括:以列族为key,最大的memtable个数和最大的l0层sst文件个数构建一个结构体作为value。

6、优选地,所述判断所述列族其中一个列族在内存中的第一等待模式,根据所述第一等待模式选择相应的第一写入方式,包括:

7、当某一个列族在内存中等待flush的memtable数量大于等于配置的个数-1,则触发这个列族的延缓写入;

8、当其memtable数量达到配置的最大memtable个数,则触发这个列族的停写,在memtable进行flush后恢复这个列族的写入。

9、优选地,所述判断所述列族其中一个列族在l0层中的第二等待模式,根据所述第二等待模式选择相应的第二写入方式,包括:

10、当某一个列族在l0层中等待compaction的sst文件数量达到配置的个数-1,则触发这个列族的延缓写入;

11、当sst文件数量达到配置的最大l0层sst文件个数,则触发这个列族的停写,在sst文件进行compaction后进行下一层后恢复这个列族的写入。

12、优选地,所述延缓写入通过令牌桶限制列族的写入速度。

13、另一方面,本专利技术提出一种rocksdb业务隔离过载保护系统,包括:

14、配置模块,用于在rocksdb启动前对不同列族按业务的优先级进行配置,获取配置信息;

15、读取模块,用于在rocksdb启动时读取所述配置信息,并根据所述配置信息建立一个全局的unordered_map进行存储,获取存储信息;

16、判断模块一,用于判断所述列族其中一个列族在内存中的第一等待模式,根据所述第一等待模式选择相应的第一写入方式;

17、判断模块二,判断所述列族其中一个列族在l0层中的第二等待模式,根据所述第二等待模式选择相应的第二写入方式。

18、另一方面,本专利技术提出一种终端设备,所述终端设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的过载保护程序,其中所述过载保护程序被所述处理器执行时,实现如上所述的rocksdb业务隔离过载保护方法的步骤。

19、另一方面,本专利技术提出一种计算机可读存储介质,所述计算机可读存储介质上存储有过载保护程序,其中所述过载保护程序被处理器执行时,实现如上所述的rocksdb业务隔离过载保护方法的步骤。

20、本专利技术的技术效果和优点:本专利技术提出的一种rocksdb业务隔离过载保护方法及系统,与现有技术相比,具有以下优点:

21、本专利技术将不同列族进行隔离,某个列族短时间内大量写入不再影响全局,只会对该列族进行延缓写入或者停止写入,相当于系统的一种过载保护策略,通过停止异常业务的写入保障了其他业务的正常读写,从而避免了因为一个业务的波动引起整个底层存储系统的瘫痪;整体实现比较简单,对rocksdb的整体改动比较小,主要涉及到配置更新、延缓写和停写发生的时机、控制不同列族的写入速度等;通过配置就能调整不同业务的优先级,提供了更好的灵活性,从而能够从容应对此类流量激增的场景,避免因为一个业务的波动引起整个底层存储系统的瘫痪。

本文档来自技高网...

【技术保护点】

1.一种RocksDB业务隔离过载保护方法,其特征在于,包括:

2.根据权利要求1所述的一种RocksDB业务隔离过载保护方法,其特征在于,所述配置包括:根据不同业务的优先级配置最大Memtable个数以及最大L0层SST文件个数,并增大flushes和compaction的线程数。

3.根据权利要求2所述的一种RocksDB业务隔离过载保护方法,其特征在于,所述配置还包括:对于没配置的列族共用默认的最大Memtable个数和最大L0层SST文件个数。

4.根据权利要求3所述的一种RocksDB业务隔离过载保护方法,其特征在于,所述在RocksDB启动时读取所述配置信息,包括:以列族为key,最大的Memtable个数和最大的L0层SST文件个数构建一个结构体作为value。

5.根据权利要求4所述的一种RocksDB业务隔离过载保护方法,其特征在于,所述判断所述列族其中一个列族在内存中的第一等待模式,根据所述第一等待模式选择相应的第一写入方式,包括:

6.根据权利要求5所述的一种RocksDB业务隔离过载保护方法,其特征在于,所述判断所述列族其中一个列族在L0层中的第二等待模式,根据所述第二等待模式选择相应的第二写入方式,包括:

7.根据权利要求6所述的一种RocksDB业务隔离过载保护方法,其特征在于,所述延缓写入通过令牌桶限制列族的写入速度。

8.一种RocksDB业务隔离过载保护系统,其特征在于,包括:

9.一种终端设备,其特征在于,所述终端设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的过载保护程序,其中所述过载保护程序被所述处理器执行时,实现如权利要求1至7中任一项所述的RocksDB业务隔离过载保护方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有过载保护程序,其中所述过载保护程序被处理器执行时,实现如权利要求1至7中任一项所述的RocksDB业务隔离过载保护方法的步骤。

...

【技术特征摘要】

1.一种rocksdb业务隔离过载保护方法,其特征在于,包括:

2.根据权利要求1所述的一种rocksdb业务隔离过载保护方法,其特征在于,所述配置包括:根据不同业务的优先级配置最大memtable个数以及最大l0层sst文件个数,并增大flushes和compaction的线程数。

3.根据权利要求2所述的一种rocksdb业务隔离过载保护方法,其特征在于,所述配置还包括:对于没配置的列族共用默认的最大memtable个数和最大l0层sst文件个数。

4.根据权利要求3所述的一种rocksdb业务隔离过载保护方法,其特征在于,所述在rocksdb启动时读取所述配置信息,包括:以列族为key,最大的memtable个数和最大的l0层sst文件个数构建一个结构体作为value。

5.根据权利要求4所述的一种rocksdb业务隔离过载保护方法,其特征在于,所述判断所述列族其中一个列族在内存中的第一等待模式,根据所述第一等待模式选择相...

【专利技术属性】
技术研发人员:李泓江黄鹄
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1