【技术实现步骤摘要】
【国外来华专利技术】对具有未提交事务的数据库记录的多版本并发控制
技术介绍
存储在数据库系统中的记录可以基于不同的标识符对彼此进行区分。数据库系统可以支持多个租户,其中每一个都可以在数据库系统中存储记录。数据库系统可以在不同的位置存储不同版本的数据库记录,因为事务或记录的状态可以在不同的位置在不同的时间更新。典型的数据库系统可尝试控制存储在不同位置的记录的并发性,以便在从不同位置查询系统时,数据库系统的体验是相似的。然而,存储在一个位置的记录可能比存储在另一个位置的记录更当前,并且在对数据库系统作出查询时可能存在差异。附图的简要说明为了提供所公开的主题内容的进一步的理解而包括的附图被合并入本说明书,并构成本说明书的一部分。附图还阐明了所公开的主题内容的实现,并与详细描述一起用于解释了所公开的主题内容的实现原则。对于披露的主题内容及其实践的各种方式的基本理解而言,本文并未试图更详细地展示不必要的结构细节。图1示出了根据所公开主题内容的实现的、标记(stamping)事务以便事务计数器编号可以用作多版本并发控制(MVCC)的示例方法。图2示出了根据所公开主题内容的实现的、在事务不可见和/或无法标识时,将事务提交到记录的示例方法。图3示出了根据所公开主题内容的实现的、在事务可见和/或可标识时,将事务提交到记录的示例方法。图4A-图4B示出了根据所公开主题内容的实现的、在记录中查找事务的示例方法。图5示出了根据所公开主题内容的实现的、适用于事务计数器编号指派(即“标记”)的示例系统的功能框图。图6示出了根据所公开主题内容的实现的、适用于事务计数器编号指派(即“标记”)的示例安排的功能框图。 ...
【技术保护点】
1.一种管理多个租户的数字数据到软件实例的计算机实现的方法,每个租户包括一组用户,其与应用程序的软件实例共享具有特定权限集的公共访问,其中每个所述实例在服务器系统的彼此通信的多个实例节点中的至少一个实例节点上实现,并且其中所述管理包括管理所述数字数据的不同实例的多版本并发控制,所述数字数据可以作为记录存储在可通信地耦连至所述服务器系统的一个或更多个存储设备位置中,其中每个所述数字数据由键标识,所述键包括数据库的表中的一个或更多个行的标识,所述方法包括:在所述服务器系统处,接收有关事务计数器编号的查询;当在所述服务器系统处用所指派的事务计数器编号更新标识数据的事务头部时,所接收的查询使用标识数据的更新的事务头部作为多版本并发控制信息的实例;在所述服务器系统处,基于所接收的查询在所述数据库的表格中执行键查找;当所述键查找遇到未提交行时,在与所述服务器系统可通信地耦连的所述一个或更多个存储设备位置处,访问标识数据的相应的事务头部,以标识数据阵列元素,进而确定是否已提交事务编号,并确定其相应的事务计数器编号;以及在所述服务器系统处,在行版本记录上标记事务计数器编号。
【技术特征摘要】
【国外来华专利技术】2016.11.04 US 15/343,9691.一种管理多个租户的数字数据到软件实例的计算机实现的方法,每个租户包括一组用户,其与应用程序的软件实例共享具有特定权限集的公共访问,其中每个所述实例在服务器系统的彼此通信的多个实例节点中的至少一个实例节点上实现,并且其中所述管理包括管理所述数字数据的不同实例的多版本并发控制,所述数字数据可以作为记录存储在可通信地耦连至所述服务器系统的一个或更多个存储设备位置中,其中每个所述数字数据由键标识,所述键包括数据库的表中的一个或更多个行的标识,所述方法包括:在所述服务器系统处,接收有关事务计数器编号的查询;当在所述服务器系统处用所指派的事务计数器编号更新标识数据的事务头部时,所接收的查询使用标识数据的更新的事务头部作为多版本并发控制信息的实例;在所述服务器系统处,基于所接收的查询在所述数据库的表格中执行键查找;当所述键查找遇到未提交行时,在与所述服务器系统可通信地耦连的所述一个或更多个存储设备位置处,访问标识数据的相应的事务头部,以标识数据阵列元素,进而确定是否已提交事务编号,并确定其相应的事务计数器编号;以及在所述服务器系统处,在行版本记录上标记事务计数器编号。2.根据权利要求1所述的方法,其中所述访问相应的事务头部包括:使用所述行版本记录和行锁记录上的事务头部索引字段来标识所述数据阵列元素。3.根据权利要求1所述的方法,进一步包括:针对受具有所述事务标识符的事务影响的每一行,在受具有所述事务计数器编号的所述事务影响的每一行上加标记,并释放任何行锁。4.根据权利要求1所述的方法,进一步包括:当一个或更多个行查找记录未提交时,执行行查找,使得当未采用事务计数器编号加标记时,所述一个或更多个行查找记录是未提交的。5.根据权利要求4所述的方法,进一步包括:独立地处理所述一个或更多个未提交的行查找记录,同时所述一个或更多个未提交的记录对查询不是外部可识别的。6.一种管理多个租户的数字数据到软件实例的计算机实现的方法,每个租户包括一组用户,其与应用程序的软件实例共享具有特定权限集的公共访问,其中每个所述实例在服务器系统的彼此通信的多个实例节点中的至少一个实例节点上实现,其中所述管理包括管理所述数字数据的不同实例的多版本并发控制,所述数字数据可以存储在一个或更多个存储设备位置中,其中事务最初对于一个或更多个查询不是可识别的,所述方法包括:在所述服务器系统处,锁存用于与存储在所述服务器系统上的记录的每次更新相关联的事务标识符的桶,以控制对记录链的访问,其中所述桶包括所述事务标识符的散列,并且解决来自散列所述事务标识符的任何散列冲突;在所述服务器系统处,将标识数据的所述事务头部中的事务计数器编号设置为事务编号;在所述服务器系统处,解锁存所述桶并在所述服务器系统处更新所述事务计数器编号,以使所述事务在所述服务器系统处对于所述服务器系统接收的一个或更多个查询可识别;以及在所述服务器系统处,由事务管理器释放所述事务编号上的事务锁,以解除对所述事务编号的阻塞,从而使其在所述服务器系统处对于所述服务器系统接收的一个或更多个查询可识别。7.根据权利要求6所述的方法,进一步包括:散列所述事务标识符。8.根据权利要求6所述的方法,进一步包括:对所述事务标识符执行直接查找。9.根据权利要求6所述的方法,其中设置标识数据的所述事务头部中的所述事务计数器编号进一步包括:释放与所述事务相关联的所有行锁。10.一种管理多个租户的数字数据到软件实例的计算机实现的方法,每个租户包括一组用户,其与应用程序的软件实例共享具有特定权限集的公共访问,其中每个所述实例在服务器系统的彼此通信的多个实例节点中的至少一个实例节点上实现,其中所述管理包括管理所述数字数据的不同实例的多版本并发控制,所述数字数据可以作为记录存储在与所述服务器系统可通信地耦连的一个或更多个存储设备位置中,其中每一个所述数字数据由键标识,所述键包括数据库的表中的一个或更多个行的标识,并且其中事务对于一个或更多个查询是可识别的,所述方法包括:在所述服务器系统处,为与所述服务器系统上存储的记录的每次更新相关联的事务标识符锁存散列桶,以控制对记录链的访问;在所述服务器系统处,在标识与所述记录的事务相关联的数据的事务头部中设置当前键散列值和当前序列号,其中所述序列号标识所述记录中的行的序列中的位置,以及针对所述事务标识符解锁存散列桶;在所述服务器系统处,从行锁记录和所述行版本记录确定所述行版本记录和所述行锁记录中的至少一个中是否存在行标识符,其中事务编号与所述事务标识符相同,并且序列号与被所述服务器系统核查的当前序列号相同;以及在所述服务器系统处,当所述事务编号与所述事务标识符相同且所述序列号与所述当前序列号相同时,在所述当前行版本记录上标记所述事务计数器编号,以便提交所述当前行版本记录。11.根据权利要求10所述的方法,进一步包括:当所述行标识符具有不等于所述事务标识符的事务编号,或者当所述行标识符具有等于所述事务标识符的事务编号且所述序列号大于或等于所述当前序列号时,移动到所述记录中的下一行版本。12.根据权利要求10所述的方法,其中当所述所述行锁记录中的一个行锁记录没有由并发查找操作标记时,发生所述标记。13.根据权利要求10所述的方法,进一步包括:当所述事务编号与所述事务标识符相同,且所述序列号与所述行锁记录中的一个行锁记录的当前序列号相同时,从所述一个或更多个存储设备位置移除所述行锁记录中的所述一个行锁记录。14.根据权利要求10所述的方法,其中,当所述行版本记录中的一个行版本记录没有由并发查找操作标记时,发生所述标记。15.根据权利要求10所述的方法,进一步包括:确定是否存在之前的序列号。16.根据权利要求15所述的方法,进一步包括:将所述当前键散列值设置为之前的键散列值;将所述当前序列号设置为之前的序列号;以及解锁存键桶,其中所述锁存器控制对所述记录链的访问。17.根据权利要求15所述的方法,进一步包括:当所述之前的序列号达到终端值时,停止对所述记录链的所述核查。18.根据权利要求10所述的方法,进一步包括:散列事务标识符;以及解决来自散列所述事务标识符的任何散列冲突。19.根据权利要求10所述的方法,进一步包括:对所述事务标识符执行直接查找。20.一种管理多个租户的数字数据到软件实例的计算机实现的方法,每个租户包括一组用户,其与应用程序的软件实例共享具有特定权限集的公共访问,其中每个所述实例在服务器系统的彼此通信的多个实例节点中的至少一个实例节点上实现,其中所述管理包括管理所述数字数据的不同实例的多版本并发控制,所述数字数据可以作为记录存储在可通信地耦连至所述服务器系统的一个或更多个存储设备位置中,每个所述数字数据由键标识,所述键包括数据库的表中的一个或更多个行的标识,并且其中事务对于一个或更多个查询是可识别的,所述方法包括:在所述服务器系统处,散列所述键;在所述服务器系统处,为所述键锁存键散列桶,并解决来自所述散列的任何冲突;在所述服务器系统处,基于快照事务计数器编号、所述键自身的标识符编号和命令标识陈述搜索记录的键的行版本链,以确定最新的可识别的行版本记录,所述搜索包括:在所述服务器系统处,确定记录的行版本链是否未提交;在所述服务器系统处,当所述行未提交时,从标识信息的所述事务头部中读取事务计数器编号值,以及当所述事务计数器编号通过具有与所述事务计数器编号相同的行事务计数器编号而有效时,在所述服务器系统处,将所述事务计数器编号标记在所述当前行版本记录上,并将所述当前行版本记录标志为已提交。21.根据权利要求20所述的方法,进一步包括:确定所述行版本记录对于多版本并发控制(MVCC)是否是可识别的,以及当所述行版本记录对于所述MVCC是可识别的时,停止所述搜索。22.根据权利要求20所述的方法,进一步包括:确定所述行版本记录对于多版本并发控制(MVCC)是否是可识别的;以及当存在下一行版本记录时,前进到所述下一行版本记录或停止所述搜索。23.一种用于管理多个租户到软件实例的数字数据的服务器系统,每个租户包括一组用户,所述一组用户与应用程序的软件实例共享具有特定权限集的公共访问,其中每个所述实例在所述服务器系统的彼此通信的多个实例节点中的至少一个实例节点上实现,并且其中所述管理包括管理所述数...
【专利技术属性】
技术研发人员:S·S·查特吉,P·J·赫尔曼德,N·怀亚特,J·E·梅斯,P·B·沙,
申请(专利权)人:易享信息技术有限公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。