【技术实现步骤摘要】
使用高速缓存层用于在数据库中键值存储
[0001]本公开一般涉及数据存储。更具体地,但不是作为限制,本公开涉及用 于在数据库中键值存储的高速缓存层。
技术介绍
[0002]数据对象可以在诸如日志结构化合并数据库的数据库中被存储为键值对。 数据库可以包括存储器表和盘存储设备,其中键值对最初存储在存储器表中, 一旦存储器表满了,键值对就从存储器表中移动到盘存储设备中。键值对可 以未排序地或已排序地存储在存储器表中,但是键值对已排序地存储在盘存 储设备中。当接收到针对数据库中的键值对的请求时,在盘存储设备之前对 存储器表进行搜索。
技术实现思路
[0003]本公开的一些示例可以通过提供在数据库的存储器表前面具有高速缓存 层的系统来克服上述问题中的一个或多个。该系统可以在高速缓存层的未排 序的数据结构处接收与数据对象相关联的键值对。未排序的数据结构可以存 储第一数量的键值对。系统可以接收用于更新高速缓存层中的键值对的一个 或多个操作。例如,系统可以接收对键值对的三个更新。当高速缓存层变满 了并且接收到要存储在高速缓存 ...
【技术保护点】
【技术特征摘要】
1.一种系统,包括:处理器;以及存储器设备,包括可由所述处理器执行的指令,所述指令使得所述处理器:在高速缓存层的未排序的数据结构处接收与数据对象相关联的键值对,所述未排序的数据结构存储第一多个键值对;接收用于更新所述高速缓存层中的所述键值对的一个或多个操作;在所述高速缓存层满了并且接收到要存储在所述高速缓存层中的附加的键值对的情况下,基于高速缓存算法确定要将所述键值对迁移到已排序的存储器表;将所述键值对迁移到被配置为存储大于所述第一多个键值对的第二多个键值对的所述已排序的存储器表中;以及在将所述键值对存储到所述已排序的存储器表中之前,对所述键值对与所述第二多个键值对进行排序。2.根据权利要求1所述的系统,其中,所述存储器设备还包括可由所述处理器执行的指令,所述指令使得所述处理器:确定所述已排序的存储器表存储所述第二多个键值对;以及将来自所述已排序的存储器表的所述第二多个键值对和来自所述未排序的数据结构的所述第一多个键值对迁移到盘存储设备。3.根据权利要求2所述的系统,其中,所述存储器设备还包括可由所述处理器执行的指令,所述指令使得所述处理器通过以下方式将所述第二多个键值对和所述第一多个键值对迁移到所述盘存储设备:将来自所述未排序的数据结构的所述第一多个键值对进行排序,以生成键值对的第一已排序的列表;接收来自所述已排序的存储器表的所述第二多个键值对的键值对的第二已排序的列表;合并所述第一已排序的列表和所述第二已排序的列表,以生成包括所述第一多个键值对和第二多个键值对的键值对的第三已排序的列表;以及基于键值对的所述第三已排序的列表,将所述第一多个键值对和所述第二多个键值对存储在所述盘存储设备中。4.根据权利要求1所述的系统,其中,所述第二多个键值对中的每个键值对在被存储到所述已排序的存储器表中之前已经预先被存储在所述未排序的数据结构中。5.根据权利要求1所述的系统,其中,所述存储器设备还包括可由所述处理器执行的指令,所述指令使得所述处理器:确定与所述第一多个键值对相关联的高速缓存命中率低于阈值;以及禁用所述高速缓存层,使得后续键值对由所述已排序的存储器表接收而不被预先存储在所述高速缓存层中。6.根据权利要求1所述的系统,其中,所述存储器设备还包括可由所述处理器执行的指令,所述指令使得所述处理器:确定接收操作的所述第二多个键值对的数量超过阈值;以及改变所述未排序的数据结构的大小以存储所述第一多个键值对和接收操作的所述第
二多个键值对。7.根据权利要求1所述的系统,其中,所述未排序的数据结构的大小是静态的。8.一种方法,包括:将第一多个键值对存储在数据库的未排序的高速缓存层中,所述第一多个键值对等于所述未排序的高速缓存层被配置为存储的键值对的数量;在所述未排序的高速缓存层处接收附加的键值对;确定所述第一多个键值对中最近最少被添加到所述未排序的高速缓存层的键值对;将所述键值对迁移到所述数据库的已排序的存储器表,所述已排序的存储器表被配置为存储高于所述未排序的高速缓存层数量的第二多个键值对;以及在将所述键值对迁移到所述已排序的存储器表之后,将所述附加的键值对存储在所述未排序的高速缓存层中。9.根据权利要求8所述的方法,还包括:确定所述已排序的存储器表满了;以及将在所述已排序的存储器表中的所述第二多个键值对和在所述未排序的高速缓存层中的所述第一多个键值对迁移到盘存储设备。10.根据权利要求9所述的方法,其中,将所述第二多个键值对和所述第一多个键值对迁移到所述盘存储设备包括:对来自所述未排序的高速缓存层的所述第一多个键...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。