多维数据库的建立方法及装置、电子设备及存储介质
文献发布时间:2024-04-18 20:00:50
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种多维数据库的建立方法、一种多维数据库的建立装置、一种电子设备和一种存储介质。
背景技术
现有技术中,在多维数据库中随着多维数据模型的数量不断增加以及多维数据模型的结构的复杂性提高,传统的节点级数据锁管理可能会导致内存占用过多的问题。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的第一个方面提出了一种多维数据库的建立方法。
本发明的第二个方面提出了一种多维数据库的建立装置。
本发明的第三个方面提出了一种电子设备。
本发明的第四个方面提出了一种存储介质。
有鉴于此,根据本发明的第一个方面,提出了一种多维数据库的建立方法,包括:在获取到多维数据模型后,根据多维数据模型的维度数量建立数据锁表格,其中,数据锁表格中包括多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配;将多维数据模型中的节点信息和与节点信息相匹配的数据锁进行关联;根据关联后的多维数据模型和数据锁表格建立多维数据库。
本发明提供的多维数据库的建立方法,具体包括:首先获取到多维数据模型,在该多维数据模型中包括多条多维数据,并且该多维数据模型可以为树状图结构。在获取到多维数据模型后,确定多维数据模型中的维度数量,动态地建立数据锁表格,即数据锁表格可以根据多维数据模型中的维度数量进行调整。其中,在数据锁表格中具有多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配,具体地,一个数据锁可以与一个节点信息一一匹配,也可以与多个节点信息相匹配,其中,多个数据锁和多个节点信息的匹配关系由数据锁表格的大小所决定地。进一步地,将多维数据模型中的每个节点信息均和与该节点信息相匹配的数据锁进行关联,使得进程或线程在访问该节点信息时,需要先在数据锁表格中确定与该节点信息相匹配的数据锁的状态,当该数据锁没有被占用时,进程或线程才能对该节点信息进行访问;当该数据锁被占用时,进程或线程不能对该节点信息进行访问。最后根据关联后的多维数据模型和数据锁表格建立多维数据库。本发明中通过将数据锁集中的设置在数据锁表格中,并且数据锁表格的大小可以根据多维数据模型的维度数量即多维数据模型的规模和复杂性进行调整,从而能够灵活地控制数据锁的数量,进而解决了相关技术中数据锁占用内存过多的问题。
根据本发明的上述多维数据库的建立方法,还可以具有以下技术特征:
在一些技术方案中,可选地,根据多维数据模型的维度数量建立数据锁表格的步骤,包括:根据多维数据模型的维度数量计算得到数据锁的个数;根据数据锁的个数建立数据锁表格。
在该技术方案中,根据多维数据模型的维度数量建立数据锁表格的步骤为:首先获取多维数据模型中的维度数量,然后利用预设公式根据维度数据进行计算,从而得到所需要的数据锁的个数,进而根据数据锁的个数建立数据锁表格。其中,预设公式可以为:
其中,slot表示的是数据锁的个数,min表示的是最小整数值,dimsize表示的是多维数据模型中的维度数量。
通过利用上述公式确定数据锁的个数,进而根据数据锁的个数建立数据锁表格,使得数据锁表格可以动态的进行调整,从而满足了在不同数量级下都能保证性能和避免数据锁冲突。进一步地,建立的数据锁表格可以为二维的数据锁数组。
在一些技术方案中,可选地,将多维数据模型的节点信息和与节点信息相匹配的数据锁进行关联的步骤,包括:对节点信息进行处理得到与节点信息相匹配的数据锁在数据锁表格中的位置信息;根据位置信息在数据锁表格中确定与节点信息相匹配的数据锁;将节点信息和数据锁进行关联。
在该技术方案中,将多维数据模型的节点信息和与节点信息相匹配的数据锁进行关联的步骤,包括:首先获取多维数据模型中的节点信息,然后对该节点信息进行处理,从而得到了与该节点信息相匹配的数据锁在数据锁表格中的位置信息,也就是说,通过对节点信息的处理可以确定数据锁在数据锁表格中的位置信息,进而根据该位置信息确定对应的数据锁,然后将该数据锁与该节点信息进行关联,从而使得进程或线程在访问该节点信息时,会先对访问数据锁表格中的对应的数据锁。进而使得不同的节点信息将被分配到不同的数据锁实例中,从而降低了数据锁的争用,减少了数据锁冲突的概率。
在一些技术方案中,可选地,对节点信息进行处理确定与节点信息相匹配的数据锁在数据锁表格中的位置信息的步骤,包括:对节点信息进行哈希运算,得到与节点信息相对的哈希值;对哈希值分别进行两次不同的位运算得到第一运算结果和第二运算结果;根据第一运算结果和第二运算结果确定与节点信息相匹配的数据锁在数据锁表格的位置信息。
在该技术方案中,对节点信息进行处理确定与节点信息相匹配的数据锁在数据锁表格中的位置信息的步骤,包括:首先对节点信息进行哈希运算,从而得到与该节点信息相对应的哈希值,进而对该哈希值分别进行两次不同的位运算,从而得到第一运算结果和第二运算结果,进一步地,根据第一运算结果和数据锁表格的行数量确定数据锁在数据锁表格中的行位置信息,具体地,将第一运算结果除以数据锁表格的行数量后取余,所得到的余数就是数据锁在数据锁表格中的行位置信息;根据第二运算结果和数据锁表格的列数量确定数据锁在数据锁表格中的行位置信息,具体地,将第二运算结果除以数据锁表格的列数量后取余,所得到的余数就是数据锁在数据锁表格中的列位置信息;进一步地,根据数据锁的列位置信息和数据锁的行位置信息确定数据锁在数据锁表格的位置信息。通过对节点信息进行一次哈希运算和两次位运算,并且对最终得到结果进行取余运算,从而可以更好地适应多维情况下的数据锁管理需求,减少了因维度间依赖而导致的数据锁冲突问题。
根据本发明的第二个方面,提出了一种多维数据库的建立装置,包括:第一建立模块,第一建立模块用于在获取到多维数据模型后,根据多维数据模型的维度数量建立数据锁表格,其中,数据锁表格中包括多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配;第一关联模块,第一关联模块用于将多维数据模型的节点信息和与节点信息相匹配的数据锁进行关联;第二建立模块,第二建立模块用于根据关联后的多维数据模型和数据锁表格建立多维数据库。
本发明提供的多维数据库的建立装置,主要包括:第一建立模块、第一关联模块以及第二建立模块。其中,在获取到多维数据模型后,具体地,在该多维数据模型中包括多条多维数据,并且该多维数据模型可以为树状图结构。第一建立模块可以通过确定多维数据模型中的维度数量,然后动态地建立数据锁表格,即数据锁表格可以根据多维数据模型中的维度数量进行调整。其中,在数据锁表格中具有多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配,具体地,一个数据锁可以与一个节点信息一一匹配,也可以与多个节点信息相匹配,其中,多个数据锁和多个节点信息的匹配关系由数据锁表格的大小所决定地。进一步地,第一关联模块将多维数据模型中的每个节点信息均和与该节点信息相匹配的数据锁进行关联,使得进程或线程在访问该节点信息时,需要先在数据锁表格中确定与该节点信息相匹配的数据锁的状态,当该数据锁没有被占用时,进程或线程才能对该节点信息进行访问;当该数据锁被占用时,进程或线程不能对该节点信息进行访问。最后第二建立模块根据关联后的多维数据模型和数据锁表格建立多维数据库。本发明中通过将数据锁集中的设置在数据锁表格中,并且数据锁表格的大小可以根据多维数据模型的维度数量即多维数据模型的规模和复杂性进行调整,从而能够灵活地控制数据锁的数量,进而解决了相关技术中数据锁占用内存过多的问题。
在一些技术方案中,可选地,第一建立模块包括:第一计算模块,第一计算模块用于根据多维数据模型的维度数量计算得到数据锁的个数;第三建立模块,第三建立模块用于根据数据锁的个数建立数据锁表格。
在该技术方案中,第一建立模块包括第一计算模块和第三建立模块。首先第一计算模块获取多维数据模型中的维度数量,并利用预设公式根据维度数据进行计算,从而得到所需要的数据锁的个数,进而第三建立模块根据数据锁的个数建立数据锁表格。其中,预设公式可以为:
其中,slot表示的是数据锁的个数,min表示的是最小整数值,dimsize表示的是多维数据模型中的维度数量。
通过利用上述公式确定数据锁的个数,进而根据数据锁的个数建立数据锁表格,使得数据锁表格可以动态的进行调整,从而满足了在不同数量级下都能保证性能和避免数据锁冲突。进一步地,建立的数据锁表格可以为二维的数据锁数组。
在一些技术方案中,可选地,第一关联模块包括:处理模块,处理模块用于对节点信息进行处理得到与节点信息相匹配的数据锁在数据锁表格中的位置信息;第一确定模块,第一确定模块用于根据位置信息在数据锁表格中确定与节点信息相匹配的数据锁;第二关联模块,第二关联模块用于将节点信息和数据锁进行关联。
在该技术方案中,第一关联模块包括处理模块、第一确定模块以及第二关联模块,其中,处理模块首先获取多维数据模型中的节点信息,然后对该节点信息进行处理,从而得到了与该节点信息相匹配的数据锁在数据锁表格中的位置信息,也就是说,通过对节点信息的处理可以确定数据锁在数据锁表格中的位置信息,进而第一确定模块根据该位置信息确定对应的数据锁,然后第二关联模块将该数据锁与该节点信息进行关联,从而使得进程或线程在访问该节点信息时,会先对访问数据锁表格中的对应的数据锁。进而使得不同的节点信息将被分配到不同的数据锁实例中,从而降低了数据锁的争用,减少了数据锁冲突的概率。
在一些技术方案中,可选地,处理模块包括:第二计算模块,第二计算模块用于对节点信息进行哈希运算,得到与节点信息相对的哈希值;第三计算模块,第三计算模块用于对哈希值分别进行两次不同的位运算得到第一运算结果和第二运算结果;第二确定模块,第二确定模块用于根据第一运算结果和第二运算结果确定与节点信息相匹配的数据锁在数据锁表格中的位置信息。
在该技术方案中,处理模块包括第二计算模块、第三计算模块以及第二确定模块。其中,第二计算模块首先对节点信息进行哈希运算,从而得到与该节点信息相对应的哈希值,进而第三计算模块对该哈希值分别进行两次不同的位运算,从而得到第一运算结果和第二运算结果,进一步地,第二确定模块根据第一运算结果和数据锁表格的行数量确定数据锁在数据锁表格中的行位置信息,具体地,将第一运算结果除以数据锁表格的行数量后取余,所得到的余数就是数据锁在数据锁表格中的行位置信息;根据第二运算结果和数据锁表格的列数量确定数据锁在数据锁表格中的行位置信息,具体地,将第二运算结果除以数据锁表格的列数量后取余,所得到的余数就是数据锁在数据锁表格中的列位置信息;进一步地,根据数据锁的列位置信息和数据锁的行位置信息确定数据锁在数据锁表格的位置信息。通过对节点信息进行一次哈希运算和两次位运算,并且对最终得到结果进行取余运算,从而可以更好地适应多维情况下的数据锁管理需求,减少了因维度间依赖而导致的数据锁冲突问题。
根据本发明的第三个方面,提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述任一项的多维数据库的建立方法的步骤。
本发明提供的电子设备,处理器执行计算机程序时实现上述多维数据库的建立方法的步骤,能够实现上述任一技术方案的技术效果,在此不再赘述。
根据本发明的第四个方面,提出了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项的多维数据库的建立方法的步骤。
本发明提供的存储介质,计算机程序被处理器执行时实现上述多维数据库的建立方法的步骤,能够实现上述任一技术方案的技术效果,在此不再赘述。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之一;
图2示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之二;
图3示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之三;
图4示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之四;
图5示出了本发明的一个实施例的数据锁示意图之一;
图6示出了本发明的一个实施例的数据锁示意图之二;
图7示出了本发明的一个实施例的多维数据库的建立装置的示意框图;
图8示出了本发明的一个实施例的第一建立模块的示意框图;
图9示出了本发明的一个实施例的第一关联模块的示意框图;
图10示出了本发明的一个实施例的处理模块的示意框图;
图11示出了本发明的一个实施例的电子设备的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
图1示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之一。其中,该方法包括:
步骤102:在获取到多维数据模型后,根据多维数据模型的维度数量建立数据锁表格,其中,数据锁表格中包括多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配;
步骤104:将多维数据模型中的节点信息和与节点信息相匹配的数据锁进行关联;
步骤106:根据关联后的多维数据模型和数据锁表格建立多维数据库。
本发明提供的多维数据库的建立方法,具体包括:首先获取到多维数据模型,在该多维数据模型中包括多条多维数据,并且该多维数据模型可以为树状图结构。在获取到多维数据模型后,确定多维数据模型中的维度数量,动态地建立数据锁表格,即数据锁表格可以根据多维数据模型中的维度数量进行调整。其中,在数据锁表格中具有多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配,具体地,一个数据锁可以与一个节点信息一一匹配,也可以与多个节点信息相匹配,其中,多个数据锁和多个节点信息的匹配关系由数据锁表格的大小所决定地。进一步地,将多维数据模型中的每个节点信息均和与该节点信息相匹配的数据锁进行关联,使得进程或线程在访问该节点信息时,需要先在数据锁表格中确定与该节点信息相匹配的数据锁的状态,当该数据锁没有被占用时,进程或线程才能对该节点信息进行访问;当该数据锁被占用时,进程或线程不能对该节点信息进行访问。最后根据关联后的多维数据模型和数据锁表格建立多维数据库。本发明中通过将数据锁集中的设置在数据锁表格中,并且数据锁表格的大小可以根据多维数据模型的维度数量即多维数据模型的规模和复杂性进行调整,从而能够灵活地控制数据锁的数量,进而解决了相关技术中数据锁占用内存过多的问题。
图2示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之二;其中,根据多维数据模型的维度数量建立数据锁表格的步骤,包括:
步骤202:根据多维数据模型的维度数量计算得到数据锁的个数;
步骤204:根据数据锁的个数建立数据锁表格。
在该实施例中,根据多维数据模型的维度数量建立数据锁表格的步骤为:首先获取多维数据模型中的维度数量,然后利用预设公式根据维度数据进行计算,从而得到所需要的数据锁的个数,进而根据数据锁的个数建立数据锁表格。其中,预设公式可以为:
其中,slot表示的是数据锁的个数,min表示的是最小整数值,dimsize表示的是多维数据模型中的维度数量。
通过利用上述公式确定数据锁的个数,进而根据数据锁的个数建立数据锁表格,使得数据锁表格可以动态的进行调整,从而满足了在不同数量级下都能保证性能和避免数据锁冲突。进一步地,建立地数据锁表格可以为二维的数据锁数组。
图3示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之三;其中,将多维数据模型的节点信息和与节点信息相匹配的数据锁进行关联的步骤,包括:
步骤302:对节点信息进行处理得到与节点信息相匹配的数据锁在数据锁表格中的位置信息;
步骤304:根据位置信息在数据锁表格中确定与节点信息相匹配的数据锁;
步骤306:将节点信息和数据锁进行关联。
在该实施例中,将多维数据模型的节点信息和与节点信息相匹配的数据锁进行关联的步骤,包括:首先获取多维数据模型中的节点信息,然后对该节点信息进行处理,从而得到了与该节点信息相匹配的数据锁在数据锁表格中的位置信息,也就是说,通过对节点信息的处理可以确定数据锁在数据锁表格中的位置信息,进而根据该位置信息确定对应的数据锁,然后将该数据锁与该节点信息进行关联,从而使得进程或线程在访问该节点信息时,会先对访问数据锁表格中的对应的数据锁。进而使得不同的节点信息将被分配到不同的数据锁实例中,从而降低了数据锁的争用,减少了数据锁冲突的概率。
图4示出了本发明的一个实施例的多维数据库的建立方法的流程示意图之四;其中,对节点信息进行处理确定与节点信息相匹配的数据锁在数据锁表格中的位置信息的步骤,包括:
步骤402:对节点信息进行哈希运算,得到与节点信息相对的哈希值;
步骤404:对哈希值分别进行两次不同的位运算得到第一运算结果和第二运算结果;
步骤406:根据第一运算结果和第二运算结果确定与节点信息相匹配的数据锁在数据锁表格的位置信息。
在该实施例中,对节点信息进行处理确定与节点信息相匹配的数据锁在数据锁表格中的位置信息的步骤,包括:首先对节点信息进行哈希运算,从而得到与该节点信息相对应的哈希值,进而对该哈希值分别进行两次不同的位运算,从而得到第一运算结果和第二运算结果,进一步地,根据第一运算结果和数据锁表格的行数量确定数据锁在数据锁表格中的行位置信息,具体地,将第一运算结果除以数据锁表格的行数量后取余,所得到的余数就是数据锁在数据锁表格中的行位置信息;根据第二运算结果和数据锁表格的列数量确定数据锁在数据锁表格中的行位置信息,具体地,将第二运算结果除以数据锁表格的列数量后取余,所得到的余数就是数据锁在数据锁表格中的列位置信息;进一步地,根据数据锁的列位置信息和数据锁的行位置信息确定数据锁在数据锁表格的位置信息。通过对节点信息进行一次哈希运算和两次位运算,并且对最终得到结果进行取余运算,从而可以更好地适应多维情况下的数据锁管理需求,减少了因维度间依赖而导致的数据锁冲突问题。
图5示出了本发明的一个实施例的数据锁示意图之一;如图5所示,图5为常规数据锁示意图,可以看出在常规多维数据库中多维数据模型中的每个节点都被赋予了一个独立的数据锁,当线程或进程需要访问某个节点时,它首先要获取该节点的数据锁。如果数据锁已被其他线程或进程占用,请求访问的线程将被阻塞,直到数据锁可用为止。通过节点级数据锁管理,确保同一时刻只有一个线程或进程能够访问某个节点,从而避免竞争条件和数据不一致问题。然而可以理解的是随着多维数据模型的增多,以及多维数据模型结构的复杂性,数据锁占用的内存较多。
图6示出了本发明的一个实施例的数据锁示意图之二;如图6所示,图6为根据本发明的数据锁示意图。由于常规数据锁占用的内存较多,因此为了解决上述问题,本发明中引入了一种基于数据锁表格的动态数据锁分配机制。首先根据多维模型维度数量计算出所需要的数据锁的个数,然后根据数据锁的个数建立数据锁表格,如图6所示,数据锁表格中可以有4个数据锁,分别为lock11、lock12、lock21以及lock22。进一步地,在建立数据锁表格后,将数据锁与多维数据模型中的节点进行关联,如将2021节点与lock11进行关联,具体方法可以为2021的节点信息,然后对节点信息进行哈希运算,得到一个哈希值,再分别对哈希值进行两次位运行,从而确定与2021节点对应的数据锁在数据锁表格中的第几行第几列,如2021节点所对应的数据锁是位于数据锁表格中的第一行第一列,即lock11。其中,由于数据锁的数量和节点的数量不同,因此,同一个数据锁可以对应多个节点,如2021节点可以对lock11,而2023节点也可以对lock11。进一步地,多维数据模型的节点信息和对应的数据锁进行关联,然后将关联后的多维数据模型和数据锁表格建立成多维数据库。
图7示出了本发明的一个实施例的多维数据库的建立装置的示意框图;其中,多维数据库的建立装置70包括:
第一建立模块702,用于在获取到多维数据模型后,根据多维数据模型的维度数量建立数据锁表格,其中,数据锁表格中包括多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配;
第一关联模块704,用于将多维数据模型的节点信息和与节点信息相匹配的数据锁进行关联;
第二建立模块706,用于根据关联后的多维数据模型和数据锁表格建立多维数据库。
本发明提供的多维数据库的建立装置70,主要包括:第一建立模块702、第一关联模块704以及第二建立模块706。其中,在获取到多维数据模型后,具体地,在该多维数据模型中包括多条多维数据,并且该多维数据模型可以为树状图结构。第一建立模块702可以通过确定多维数据模型中的维度数量,然后动态地建立数据锁表格,即数据锁表格可以根据多维数据模型中的维度数量进行调整。其中,在数据锁表格中具有多个数据锁,多个数据锁与多维数据模型中的多个节点信息相匹配,具体地,一个数据锁可以与一个节点信息一一匹配,也可以与多个节点信息相匹配,其中,多个数据锁和多个节点信息的匹配关系由数据锁表格的大小所决定地。进一步地,第一关联模块704将多维数据模型中的每个节点信息均和与该节点信息相匹配的数据锁进行关联,使得进程或线程在访问该节点信息时,需要先在数据锁表格中确定与该节点信息相匹配的数据锁的状态,当该数据锁没有被占用时,进程或线程才能对该节点信息进行访问;当该数据锁被占用时,进程或线程不能对该节点信息进行访问。最后第二建立模块706根据关联后的多维数据模型和数据锁表格建立多维数据库。本发明中通过将数据锁集中的设置在数据锁表格中,并且数据锁表格的大小可以根据多维数据模型的维度数量即多维数据模型的规模和复杂性进行调整,从而能够灵活地控制数据锁的数量,进而解决了相关技术中数据锁占用内存过多的问题。
图8示出了本发明的一个实施例的第一建立模块的示意框图;其中,第一建立模块702包括:
第一计算模块7022,用于根据多维数据模型的维度数量计算得到数据锁的个数;
第三建立模块7024,用于根据数据锁的个数建立数据锁表格。
在该实施例中,第一建立模块702包括第一计算模块7022和第三建立模块7024。首先第一计算模块7022获取多维数据模型中的维度数量,并利用预设公式根据维度数据进行计算,从而得到所需要的数据锁的个数,进而第三建立模块7024根据数据锁的个数建立数据锁表格。其中,预设公式可以为:
其中,slot表示的是数据锁的个数,min表示的是最小整数值,dimsize表示的是多维数据模型中的维度数量。
通过利用上述公式确定数据锁的个数,进而根据数据锁的个数建立数据锁表格,使得数据锁表格可以动态的进行调整,从而满足了在不同数量级下都能保证性能和避免数据锁冲突。进一步地,建立地数据锁表格可以为二维的数据锁数组。
图9示出了本发明的一个实施例的第一关联模块的示意框图;其中,第一关联模块704包括:
处理模块7042,用于对节点信息进行处理得到与节点信息相匹配的数据锁在数据锁表格中的位置信息;
第一确定模块7044,用于根据位置信息在数据锁表格中确定与节点信息相匹配的数据锁;
第二关联模块7046,用于将节点信息和数据锁进行关联。
在该实施例中,第一关联模块704包括处理模块7042、第一确定模块7044以及第二关联模块7046,其中,处理模块7042首先获取多维数据模型中的节点信息,然后对该节点信息进行处理,从而得到了与该节点信息相匹配的数据锁在数据锁表格中的位置信息,也就是说,通过对节点信息的处理可以确定数据锁在数据锁表格中的位置信息,进而第一确定模块7044根据该位置信息确定对应的数据锁,然后第二关联模块7046将该数据锁与该节点信息进行关联,从而使得进程或线程在访问该节点信息时,会先对访问数据锁表格中的对应的数据锁。进而使得不同的节点信息将被分配到不同的数据锁实例中,从而降低了数据锁的争用,减少了数据锁冲突的概率。
图10示出了本发明的一个实施例的处理模块的示意框图;其中,处理模块7042包括:
第二计算模块7048,用于对节点信息进行哈希运算,得到与节点信息相对的哈希值;
第三计算模块7050,用于对哈希值分别进行两次不同的位运算得到第一运算结果和第二运算结果;
第二确定模块7052,用于根据第一运算结果和第二运算结果确定与节点信息相匹配的数据锁在数据锁表格中的位置信息。
在该实施例中,处理模块7042包括第二计算模块7048、第三计算模块7050以及第二确定模块7052。其中,第二计算模块7048首先对节点信息进行哈希运算,从而得到与该节点信息相对应的哈希值,进而第三计算模块7050对该哈希值分别进行两次不同的位运算,从而得到第一运算结果和第二运算结果,进一步地,第二确定模块7052根据第一运算结果和数据锁表格的行数量确定数据锁在数据锁表格中的行位置信息,具体地,将第一运算结果除以数据锁表格的行数量后取余,所得到的余数就是数据锁在数据锁表格中的行位置信息;根据第二运算结果和数据锁表格的列数量确定数据锁在数据锁表格中的行位置信息,具体地,将第二运算结果除以数据锁表格的列数量后取余,所得到的余数就是数据锁在数据锁表格中的列位置信息;进一步地,根据数据锁的列位置信息和数据锁的行位置信息确定数据锁在数据锁表格的位置信息。通过对节点信息进行一次哈希运算和两次位运算,并且对最终得到结果进行取余运算,从而可以更好地适应多维情况下的数据锁管理需求,减少了因维度间依赖而导致的数据锁冲突问题。
图11示出了本发明的一个实施例的电子设备的示意框图;其中,电子设备110包括存储器1102、处理器1104及存储在存储器1102上并可在处理器1104上运行的计算机程序,处理器1104执行计算机程序时实现如上述任一项的多维数据库的建立方法的步骤。
本发明提供的电子设备110,处理器1104执行计算机程序时实现上述多维数据库的建立方法的步骤,能够实现上述任一实施例的技术效果,不再赘述。
本发明第四方面的实施例,提出了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项的多维数据库的建立方法的步骤。
本发明提供的存储介质,计算机程序被处理器执行时实现上述多维数据库的建立方法的步骤,能够实现上述任一实施例的技术效果,不再赘述。
在本说明书的描述中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性,除非另有明确的规定和限定;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种计算机硬盘防震保护装置
- 一种计算机硬盘防震保护装置
- 一种机械式计算机USB插槽保护装置
- 一种大型计算机机箱减震保护装置
- 一种便于维护的计算机网络安全保护装置
- 一种计算机网络安全保护装置