数据库的共享内存缓冲池处理方法、存储介质与设备与流程

文档序号:31051781发布日期:2022-08-06 07:42阅读:129来源:国知局
数据库的共享内存缓冲池处理方法、存储介质与设备与流程

1.本发明涉及数据库技术,特别是涉及一种b树索引数据库的共享内存缓冲池处理方法、存储介质与设备。


背景技术:

2.b树索引是数据库中最常使用的一种索引,其可以支持在可排序数据上的处理等值和范围查询,并大大增加使用此索引的查询速度。b树索引通过排序数据并构建一棵b树来使得查找数据、顺序访问、插入数据、删除数据的动作都能在对数时间内完成。
3.b树概括来说是一个一般化的自平衡的n叉查找树。与自平衡二叉查找树不同,b树为系统大块数据的读写操作做了优化,b树减少定位记录时所经历的中间过程,从而加开存取速度。
4.在b树中,内部(非叶子)节点可以拥有可变数量的子节点,数量范围预先定义好。当数据被插入或从一个节点中移除,它的子节点数量发生变化,为了维持在预先设置的数量范围内,内部节点可能被合并或分离。因为子节点数量有一定的允许范围,所以b树不需要像其他自平衡查找树那样频繁的重新保持平衡。一个b树通过约束所有叶子节点在相同的深度保持平衡,整个树的深度会在数据被添加至树的过程中缓慢增长。
5.此外,原始的b树存在一些变体,如b+树和b*树,在广义上也可以认为属于b树一类的方案,也常被用作数据库索引使用。
6.b树构建索引的查找结构确实能大大加快数据库查找数据的速度。b树结构可以保证整个过程中读入的节点数足够少,并保证i/o(输入/输出)开销很小.然而,b树中所有的搜索操作均是由其根节点出发,逐层级前往存储键值的节点,这意味着对根节点的访问操作可能成为系统的瓶颈。
7.数据库对一个页面访问时,需要更新页面控制结构,主要是对引用计数器的更新,引用计数器记录了页面当前是否存在引用者以及最近是否存在引用者,用于进行缓冲区置换的判断。这部分开销通常是来说占比是较小的,但是随着并发量地提升,对页面控制结构的并发更新带来的开销也急剧上升,并成为不可忽视的一部分。因此对于b树索引,根节点或者底层节点页面的控制结构更新也会带来较大的开销。然而对这些页面控制结构不进行更新,则会带来其他干扰,例如影响内存缓冲区置换。


技术实现要素:

8.本发明的一个目的是要提供一种避免b树索引的页面控制结构并发更新带来的开销上升。
9.本发明一个进一步的目的是要使得提高数据库的整体性能。
10.特别地,本发明提供了一种b树索引数据库的共享内存缓冲池处理方法,该方法包括:
11.获取解除固定指令,解除固定指令用于指示固定缓冲池释放被指定的b树索引的
固定页面,固定缓冲池为预先在数据库的内存缓存空间内开辟的独立于普通缓冲池的缓冲池;
12.获取b树索引的访问状态;
13.等待对b树索引的访问全部结束;
14.将b树索引的固定缓冲池标记设置为解除状态,并将b树索引的固定页面从固定缓冲池移动至普通缓冲池。
15.可选地,等待对被指定的b树索引的访问全部结束的过程中还包括:
16.申请持有b树索引的排他关系锁;
17.利用排他关系锁暂停响应对被指定的b树索引新的访问。
18.可选地,在将b树索引的固定页面从固定缓冲池移动至普通缓冲池的步骤之后还包括:
19.解除排他关系锁,以恢复响应对被指定的b树索引的访问。
20.可选地,在恢复对被指定的b树索引的访问的步骤之后还包括:
21.恢复对固定页面的引用计数器的更新,使得固定页面参与普通缓冲池的缓冲置换。
22.可选地,在获取解除固定指令的步骤之后还包括:
23.在固定缓冲池查找固定页面,以确定固定页面是否存储于固定缓冲池中;
24.若是,则执行获取b树索引的访问状态的步骤。
25.可选地,在固定页面未存储于固定缓冲池中的情况下,保持固定页面在普通缓冲池中参与置换的状态。
26.可选地,在将b树索引的固定页面从固定缓冲池移动至普通缓冲池的步骤之后还包括:
27.刷新固定缓冲池的剩余空间大小,以供存储新的固定页面。
28.可选地,在获取解除固定指令的步骤之前还包括:
29.获取缓冲池设置指令;
30.根据缓冲池设置指令执行将被指定的b树索引的固定节点页面移入固定缓冲池的流程。
31.根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的b树索引数据库的共享内存缓冲池处理方法。
32.根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的b树索引数据库的共享内存缓冲池处理方法。
33.本发明的b树索引数据库的共享内存缓冲池处理方法,将被指定的b树索引中的待固定节点的节点页面(一般为根节点以及深度较小的子节点),固定在内存缓存空间内开辟的独立于普通缓冲池的固定缓冲池内。在b树索引需取消固定的情况下,等待取消固定前对b树索引的访问全部结束后,将b树索引的固定页面从固定缓冲池移动至普通缓冲池。从而可以使得这些页面的访问控制结构(引用计数器)在解除固定后,反映真实的访问数,使得解除固定的页面正常参与普通缓冲池的置换,不影响数据库的正常访问响应。
34.进一步地,本发明的b树索引数据库的共享内存缓冲池处理方法,b树索引的节点页面通过缓冲池设置指令进行设置,实现了灵活配置,在数据库用户正确进行设置的情况下,可以有效提升数据库的整体性能。
35.更进一步地,本发明的b树索引数据库的共享内存缓冲池处理方法,对b树索引的节点页面移入固定缓冲池的流程进行了优化,在节点页面移入固定缓冲池后,该节点页面不再参与普通页面置换,从而避免了b树索引的页面控制结构并发更新带来的开销上升,实现了高并发场景下数据库索引查询的性能大幅度的提升。
36.根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
37.后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
38.图1是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法的示意流程图;
39.图2根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法中数据库共享内存的示意图;
40.图3是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法进行节点页面固定的流程示意图;
41.图4是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法对固定缓冲池中页面访问的流程示意图;
42.图5是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法进行节点页面解除的流程示意图;
43.图6是根据本发明一个实施例的机器可读存储介质的示意图;以及
44.图7是根据本发明一个实施例的计算机设备的示意图。。
具体实施方式
45.图1是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法的示意流程图,图2根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法中数据库共享内存的示意图。数据库共享内存缓冲池的处理方法一般性地可包括:
46.步骤s102,获取解除固定指令;解除固定指令用于指示固定缓冲池释放被指定的b树索引的固定页面。固定缓冲池为预先在数据库的内存缓存空间内开辟的独立于普通缓冲池的缓冲池。在固定缓冲池内存储的页面不参与普通缓冲池的正常置换,无需对引用计数器进行更新。
47.解除固定指令可以使用sql(structured query language,结构化查询语言),并包含需要被指定的b树索引的信息,例如标识等。
48.上述步骤s102可以包括:对解除固定指令进行解析;根据解析结果中的b树索引信息确定被指定的b树索引。被指定的b树索引的根节点以及深度小于设定值的子节点(一般
为深度为2的分叉节点)作为固定节点,可允许使用固定缓冲池。
49.步骤s104,获取b树索引的访问状态;也即确定在解除固定之前,是否存在进程正在访问需要解除固定的b树索引。
50.步骤s106,等待对b树索引的访问全部结束。等待过程中可以申请持有b树索引的排他关系锁;利用排他关系锁暂停响应对被指定的b树索引新的访问。
51.步骤s108,将b树索引的固定缓冲池标记设置为解除状态,并将b树索引的固定页面从固定缓冲池移动至普通缓冲池。
52.在步骤s108之后,还可以解除排他关系锁,以恢复响应对被指定的b树索引的访问。此后恢复对固定页面的引用计数器的更新,使得固定页面参与普通缓冲池的缓冲置换。通过上述步骤,这些固定页面的访问控制结构(引用计数器)在解除固定后,反映真实的访问数,使得解除固定的页面正常参与普通缓冲池的置换,不影响数据库的正常访问响应。
53.考虑到被指定的b树索引可能存在尚未将其节点页面移入固定缓冲池的情况,在获取解除固定指令的步骤之后还可以包括:在固定缓冲池查找固定页面,以确定固定页面是否存储于固定缓冲池中;若是,则执行获取b树索引的访问状态的步骤。在固定页面未存储于固定缓冲池中的情况下,直接保持固定页面在普通缓冲池中参与置换的状态即可。
54.在将b树索引的固定页面从固定缓冲池移动至普通缓冲池的步骤之后还可以刷新固定缓冲池的剩余空间大小,以供存储新的固定页面。
55.在本实施例的数据库中,共享内存的缓冲空间预先开辟有普通缓冲池以及固定缓冲池。普通缓冲池使用传统的缓冲置换算法,进行页面的普通置换,例如采用lru(least recently used,最近最少使用)、lfu(least frequently used,最不经常使用)、opt(optimal replacement,最佳页面替换)等置换算法。固定缓冲池用于供数据库用户指定的页面进行缓冲。固定缓冲池与普通缓冲池互相独立,在节点页面移入固定缓冲池后,该节点页面不再参与普通页面置换,从而避免了b树索引的页面控制结构并发更新带来的开销上升,实现了高并发场景下数据库索引查询的性能大幅度的提升。
56.固定缓冲池的大小可以通过配置文件配置,且与普通缓冲池独立存在。在将固定节点的节点页面移入固定缓冲池之前,先将其缓存至数据库的共享内存的缓存空间。也即利用普通缓存池完成缓存,提供缓存服务。
57.本实施例的固定缓冲池用于b树索引的待固定节点的页面进行存储,这些页面高频访问且大小可控,避免固定缓冲池过大消耗。另外也可以避免过大的固定缓冲池不合预期地占用过多的系统内存,有利于数据库的运行。待固定节点可以为树深度较小的那些节点,例如根节点和深度为2的分叉节点。这部分节点固定在缓冲池中,而不是将所有页面固定。由于b树中每个节点的子节点数存在严格上限,这部分节点的总大小是完全可控的,不会带来固定缓冲池耗尽的风险。
58.数据库可以通过一个哈希表建立从磁盘页面号到缓冲池具体位置的映射,缓冲池具体位置则包含了所在缓冲池以及相对于缓冲池基地址的偏移,则通过缓冲池基地址与上述偏移量就可以确定页面在缓冲池具体位置。
59.缓冲池内页面头上可以设置记录该页面的相关状态的存储位,记录的信息可以包括页面是否存在于固定缓冲池中、引用计数器、是否可以被置换和清理等。
60.布置数据库的磁盘上可以存储数据文件21、日志文件22、配置文件23,数据库的共
享内存10中可以开辟有普通缓冲池11、固定缓冲池12、其他共享内存。如本领域技术人员所习知的,磁盘的读取速度明显慢于内存的读取速度。本实施例的数据库,在共享内存10内开辟出普通缓冲池11、固定缓冲池12。普通缓冲池11可以用于页面的正常缓存,固定缓冲池12可以按照数据库用户的设置使被指定的b树索引的待固定节点的节点页面被固定缓存。
61.在获取解除固定指令的步骤之前还可以包括固定上述b树索引的固定节点页面的流程。上述将上述b树索引的固定节点页面固定于固定缓冲池的步骤可以为获取缓冲池设置指令;根据缓冲池设置指令执行将被指定的b树索引的固定节点页面移入固定缓冲池的流程。
62.缓冲池设置指令也可以使用sql(structured query language,结构化查询语言),并包含需要被指定的b树索引的信息,例如标识等。
63.根据缓冲池设置指令执行将被指定的b树索引的固定节点页面移入固定缓冲池的流程可以包括:获取缓冲池设置指令;根据缓冲池设置指令确定被指定的b树索引以及被指定的b树索引的待固定节点;将b树索引的固定缓冲池标记设置为固定状态;在接收到对被指定的b树索引的访问后,执行将待固定节点的节点页面移入固定缓冲池的流程,其中固定缓冲池为预先在数据库的内存缓存空间内开辟的独立于普通缓冲池的缓冲池。
64.其中根据缓冲池设置指令确定被指定的b树索引以及被指定的b树索引的待固定节点可以对缓冲池设置指令进行解析;根据解析结果中的b树索引信息确定被指定的b树索引;将被指定的b树索引的根节点以及深度小于设定值的子节点作为待固定节点。也即在获得缓冲池设置指令后并解析确定出被指定的b树索引;该b树索引的根节点以及深度小于设定值的子节点(一般为深度为2的分叉节点)作为待固定节点。
65.b树索引的固定缓冲池标记修改为固定状态,也即将固定缓冲池标记置位,使其标识出该b树索引已被指定为需要固定的索引。从而通过固定缓冲池标记确定该b树索引是否被指定。固定缓冲池标记可以为设置为一个标记位,其被设置为1时,指代该b树索引被指定;其被设置为0时,指代该b树索引被指定。
66.将待固定节点的节点页面移入固定缓冲池的流程可以包括:将节点页面缓存至普通缓冲池;获取固定缓冲池的剩余空间大小;判断剩余空间是否足以存储节点页面;若是,则将节点页面移入固定缓冲池。
67.在剩余空间不足以存储节点页面的情况下还可以将节点页面存储于普通缓冲池,并维持对节点页面的引用计数器进行更新。也即节点页面未被存入固定缓冲池的情况下,可以利用普通缓冲池缓存节点页面,并使节点页面参与普通缓冲池的缓冲置换。
68.在上述步骤s108将其他b树索引的固定页面从固定缓冲池移动至普通缓冲池之后,刷新固定缓冲池的剩余空间大小,可以存储新的固定页面。也就是说在将节点页面存储于普通缓冲池的步骤之后还可以在固定缓冲池出现解除固定事件后,重新执行判断剩余空间是否足以存储节点页面的步骤,并在剩余空间足以存储节点页面后,将节点页面移入固定缓冲池。
69.在将节点页面移入固定缓冲池的步骤之后,还可以进一步包括:将节点页面的固定标记设置为固定状态;停止对节点页面的引用计数器进行更新。由于固定缓冲池内的节点页面的引用计数器无需更新,从而可以避免了b树索引的页面控制结构并发更新带来的开销上升。
70.在执行将待固定节点的节点页面移入固定缓冲池的流程的步骤之后处理被指定的b树索引的访问的过程可以包括:获取对被指定的b树索引的访问,确定访问目标页面;判断访问目标页面的固定标记是否为固定状态;若是,忽略对访问目标页面的引用计数器的处理,并从固定缓冲池读取访问目标页面;若否,更新访问目标页面的引用计数器,并从普通缓冲池读取访问目标页面。
71.使用上述实施例的方法时,可以允许数据库用户将一个b树索引指定为使用固定缓冲池,且将固定范围限定为b树索引的高频节点页面,例如包括根节点(深度为1)以及深度为2的分叉节点。固定范围内的所有页面,以及后续扩展的符合该范围的页面被移入固定缓冲池中,除非固定缓冲池的容量已经无法满足存储要求。因存储容量不足未能移入固定缓冲池的页面仍然被暂时存储在普通缓冲池中。对于已经固定的页面,停止更新其引用计数器,同时忽略置换操作。
72.对固定缓冲池中已固定页面的解除流程可以为:获取解除固定指令;根据解除固定指令待解除固定的b树索引;执行对待解除固定的b树索引移出固定缓冲池的流程,以释放固定缓冲池的空间。
73.本实施例的方法中,对节点页面的控制结构(也即引用计数器)处理尤为关键,解除固定的流程需要保证节点页面的引用计数器回归正常状态。对即将固定的页面,每个在固定该页面之前就已经访问该页面的进程,须记录读入时刻该页面的状态是否已固定,如果已固定,该访问进程必须正常地更新引用计数器,否则会产生引用计数泄露。其次,对于即将解除固定的页面,在解除固定之前就已经访问该页面的进程必须确保在解除固定前已经正确结束。对此可以采用粗粒度锁(排他关系锁)保证这一点,即解除固定的会话将通过排他模式的关系锁来等待当前所有访问进程结束访问,才会开始执行解除固定流程。这样在页面解除固定之后,该页面的引用计数器也将等于该时刻下真实的访问数,从而可以正常参与置换。
74.图3是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法进行节点页面固定的流程示意图,对一个b树索引的节点页面进行固定的流程可以包括:
75.步骤s302,获取数据库用户输入的缓冲池设置指令,该缓冲池设置指令用于指定数据库的一个b树索引使用固定缓冲池;
76.步骤s304,数据库解析缓冲池设置指令,确定需要指定的b树索引;
77.步骤s306,确定被指定b树索引的根节点以及设定深度(一般深度为2)的节点;
78.步骤s308,打开指定的b树索引,将其固定缓冲池标记置为固定状态;
79.步骤s310,获取对数据库的访问,确定该访问是否为上述b树索引被指定后的首次访问;
80.步骤s312,将该b树索引的待固定节点页面读取到共享内存的普通缓冲池中;通过执行步骤s314至步骤s318,尝试将待固定节点页面固定到固定缓冲池中;
81.步骤s314,判断固定缓冲池的剩余空间大小是否足以存储节点页面,若不足,则将待固定节点页面保存于普通缓冲池;
82.步骤s316,若存在剩余空间,则将上述节点页面移入固定缓冲池;
83.步骤s318,固定标记设置为固定状态,停止对节点页面的引用计数器进行更新。
84.通过上述步骤,数据库用户可以针对数据库b树索引的大小较小且访问频率较高
的页面,为其赋予较高的内存缓冲区粘性,避免了b树索引的页面控制结构并发更新带来的开销上升,实现了高并发场景下数据库索引查询的性能大幅度的提升。
85.图4是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法对固定缓冲池中页面访问的流程示意图,该访问流程可以包括:
86.步骤s402,获取对被指定的b树索引的访问,确定访问目标页面;
87.步骤s404,判断访问目标页面的固定标记是否为固定状态;
88.步骤s406,在访问目标页面的固定标记为固定状态的情况下,忽略对访问目标页面的引用计数器的处理;
89.步骤s408,从固定缓冲池读取访问目标页面,执行访问响应操作;
90.步骤s410,在访问目标页面的固定标记为未固定状态的情况下,从普通缓冲池读取访问目标页面,执行访问响应操作;更新访问目标页面的引用计数器,进行次数累加;
91.步骤s412,在对访问目标页面的访问结束后,若访问目标页面固定标记仍为未固定状态,则更新访问目标页面的引用计数器,进行次数减一。
92.图5是根据本发明一个实施例的b树索引数据库的共享内存缓冲池处理方法进行节点页面解除的流程示意图。对一个固定缓冲池内存储的b树索引的节点页面解除固定的流程可以包括:
93.步骤s502,获取解除固定指令,解除固定指令用于指示固定缓冲池释放被指定的b树索引的固定页面;
94.步骤s504,数据库解析解除固定指令,确定需要取消固定的b树索引;
95.步骤s506,在固定缓冲池查找固定页面,以确定固定页面是否已存储于固定缓冲池中,例如通过节点页面的固定标记来确定固定页面是否已存储于固定缓冲池中,若固定标记为固定状态,则固定页面已存储于固定缓冲池,若固定标记为非固定状态,则固定页面仍存储于普通缓冲池。
96.步骤s508,在确定固定页面是否已存储于固定缓冲池中的情况下,判断是否存在访问进程对b树索引进行访问;
97.步骤s510,若存在访问,则申请持有b树索引的排他关系锁;
98.步骤s510,利用排他关系锁暂停对被指定的b树索引新的访问,等待全部访问结束;
99.步骤s512,将b树索引的固定缓冲池标记设置为解除状态;
100.步骤s514,将b树索引的固定页面从固定缓冲池移动至普通缓冲池,并将固定标记设置为非固定状态;
101.步骤s516,解除排他关系锁,以恢复对被指定的b树索引的访问;
102.步骤s518,恢复对固定页面的引用计数器的更新,使得固定页面参与普通缓冲池的缓冲置换。
103.步骤s520,在固定页面未存储于固定缓冲池的情况下,直接将b树索引的固定缓冲池标记设置为解除状态后,结束解除固定流程。
104.本实施例还提供了一种机器可读存储介质和计算机设备。图6是根据本发明一个实施例的机器可读存储介质40的示意图,图7是根据本发明一个实施例的计算机设备50的示意图。
105.机器可读存储介质40其上存储有机器可执行程序41,机器可执行程序41被处理器执行时实现上述任一实施例的b树索引数据库的共享内存缓冲池处理方法。
106.计算机设备50可以包括存储器520、处理器510及存储在存储器520上并在处理器510上运行的机器可执行程序41,并且处理器510执行机器可执行程序41时实现上述任一实施例的b树索引数据库的共享内存缓冲池处理方法。
107.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
108.就本实施例的描述而言,机器可读存储介质40可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质40甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
109.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
110.计算机设备50可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备50可以是云计算节点。计算机设备50可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备50可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
111.计算机设备50可以包括适于执行存储的指令的处理器510、在操作期间为所述指令的操作提供临时存储空间的存储器520。处理器510可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器520可以包括随机存取存储器(ram)、只读存储器、闪存或任何其他合适的存储系统。
112.处理器510可以通过系统互连(例如pci、pci-express等)连接到适于将计算机设备50连接到一个或多个i/o设备(输入/输出设备)的i/o接口(输入/输出接口)。i/o设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。i/o设备可以是计算机设备50的内置组件,或者可以是外部连接到计算设备的设备。
113.处理器510也可以通过系统互连链接到适于将计算机设备50连接到显示设备的显示接口。显示设备可以包括作为计算机设备50的内置组件的显示屏。显示设备还可以包括
外部连接到计算机设备50的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,nic)可以适于通过系统互连将计算机设备50连接到网络。在一些实施例中,nic可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(wan))、局域网(lan)或因特网等等。远程设备可以通过网络连接到计算设备。
114.本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
115.本实施例的方案,采用固定缓冲池技术规避对引用计数器的更新,进而降低并发冲突检测开销;通过选择合适的使用固定缓冲池的页面的范围,降低了固定缓冲池对内存容量的冲击。解除固定缓冲池流程,使失去了引用计数器的页面能在解除该能力后回归正常,一方面通过引用者内部状态记录对进入固定状态时的访问进行处理;另一方面通过粗粒度锁(排他关系锁)对退出固定状态处理。
116.经过对本实施例的方案的测试,超高并发情况下,同一b树索引的访问和搜索的性能大幅度提升。由于数据库中通常大量使用b树索引,且大多数业务存在热点的索引查询,因此本实施例的方案对大多数实际业务或主流的基准测试(如tpcc)等均可实现明显的性能提升。
117.至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1