The invention relates to the technical field of computer data storage, in particular to a method, a device and a system for writing data in an leveldb database. The invention relates to a method to write, including a data in leveldb database: configure multiple message queue corresponding to a plurality of leveldb database; data on a message queue which is written; the messages in the queue to write the number of leveldb data corresponding to the message queue database. Among them, before configuring multiple message queues to correspond to multiple databases, there are steps to create multiple directories, configure multiple leveldb databases, and correspond to multiple directories. Wherein, the data is written to one of the message queues, including steps to assign the data pairs among the plurality of message queues by a hashing algorithm, and determine the data to the message queue to be written. The invention solves the problem that the writing performance of the leveldb database is low under the condition of large pressure, and improves the writing performance of the leveldb database.
【技术实现步骤摘要】
leveldb数据库中数据对写入的方法、装置及系统
本专利技术涉及计算机数据存储
,尤其涉及一种leveldb数据库中数据对写入的方法、装置及系统。
技术介绍
leveldb数据库是google开源的一个key-value存储引擎库,本申请文件中所提到的数据对即key-value对,leveldb数据库在存储数据时,是根据记录的key值有序存储的,就是说相邻的key值在存储文件中是依次顺序存储的,而应用可以自定义key大小比较函数,leveldb数据库会按照用户定义的比较函数依序存储这些记录。在数据存储领域,leveldb数据库的应用场景很多,leveldb数据库的应用过程中会存在一些性能不高的问题:比如大批量的写入场景下,levedb数据库中level-0的files数量达到kL0_SlowdownWritesTrigger(默认8)时,产生写入延迟问题;达到kL0_StopWritesTrigger(默认12)时,产生写入阻塞问题,导致了leveldb数据库整体的写入性能较低。目前常用的解决方法是修改源码中kL0_SlowdownWritesTrigger和kL0_StopWritesTrigger的大小来调整写入延迟和写入阻塞的条件,但是,该方案并不能彻底解决该问题。因为在大批量写入的场景下,通过提高以上两个变量的值,只能暂时延长达到写入延迟与写入阻塞条件的时间,而并没有彻底解决这个问题。当时间达到后,依然会触发写入延迟与写入阻塞的条件,导致写入性能低下。这种方案只能延长到达触发条件的时间,而不能解决达到触发条件后写入性能低下的问题。专利技术内 ...
【技术保护点】
一种leveldb数据库中数据对写入的方法,其特征在于,包括:配置多个消息队列对应多个leveldb数据库;将数据对写入其中的一个消息队列;将消息队列中的数据对写入与该消息队列相对应的leveldb数据库。
【技术特征摘要】
1.一种leveldb数据库中数据对写入的方法,其特征在于,包括:配置多个消息队列对应多个leveldb数据库;将数据对写入其中的一个消息队列;将消息队列中的数据对写入与该消息队列相对应的leveldb数据库。2.根据权利要求1所述的leveldb数据库中数据对写入的方法,其特征在于,配置多个消息队列对应多个leveldb数据库之前,包括:创建多个目录,配置多个leveldb数据库对应多个目录。3.根据权利要求1所述的leveldb数据库中数据对写入的方法,其特征在于,将数据对写入其中的一个消息队列之前,包括:通过哈希算法将数据对在多个消息队列之间进行分配,确定数据对将要写入的消息队列。4.根据权利要求1所述的leveldb数据库中数据对写入的方法,其特征在于,将数据对写入其中的一个消息队列,包括:通过异步线程将数据对写入到消息队列。5.根据权利要求1所述的leveldb数据库中数据对写入的方法,其特征在于,将消息队列中的数据对写入与该消息队列相对应的leveldb数据库之前,还包括:在leveldb数据库中创建线程池,线程池包括有多个线程。6.根据权利要求5所述的leveldb数据库中数据对写入的方法,其特征在于,将消息队列中的数据对写入与该消息队列相对应的leveldb数据库,...
【专利技术属性】
技术研发人员:安祥文,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。