CN112347203B - 存储模型及其字段级锁的实现方法 - Google Patents

存储模型及其字段级锁的实现方法 Download PDF

Info

Publication number
CN112347203B
CN112347203B CN202011381172.XA CN202011381172A CN112347203B CN 112347203 B CN112347203 B CN 112347203B CN 202011381172 A CN202011381172 A CN 202011381172A CN 112347203 B CN112347203 B CN 112347203B
Authority
CN
China
Prior art keywords
key value
layer
lock
storage
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011381172.XA
Other languages
English (en)
Other versions
CN112347203A (zh
Inventor
宗伟
黄晓涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Mass Database Technology Co ltd
Original Assignee
Guangzhou Mass Database Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Mass Database Technology Co ltd filed Critical Guangzhou Mass Database Technology Co ltd
Priority to CN202011381172.XA priority Critical patent/CN112347203B/zh
Publication of CN112347203A publication Critical patent/CN112347203A/zh
Application granted granted Critical
Publication of CN112347203B publication Critical patent/CN112347203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供存储模型及其字段级锁的实现方法,该方法包括:在所述优化器层以及存储层中加入KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;在所述KV转换层以及存储层中加入字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作。本发明能适应列存储的形式,能够支持更高的操作并发度。

Description

存储模型及其字段级锁的实现方法
技术领域
本发明涉及数据库领域,尤其涉及一种存储模型及其字段级锁的实现方法。
背景技术
锁机制是数据库中支持并行特性和事务特性的基础。一般的关系型数据库***中支持两种粒度的锁,即表级锁和行级锁。通过不同粒度的锁,数据库可以实现对数据对象的不同粒度的并发控制。通常的关系型数据库***中这两种粒度的锁已经能够满足绝大多数需求,并且行存储的存储形式也与行级锁的逻辑相一致。
随着数据分析行业的发展,单一的行存储在效率上的局限性已经越来越明显,面向数据分析需求的列存储的形式逐渐成为行存储的一个有效的补充。而行级锁在列存储的***中面临着操作复杂,处理逻辑不一致的问题,因此完善列存储***中的锁机制就成为一个十分必要的技术问题。
发明内容
有鉴于此,本发明提供一种存储模型及其字段级锁的实现方法,能适应列存储的形式,能够支持更高的操作并发度。
一方面,本发明提供一种存储模型的字段级锁的实现方法,所述存储模型包括语法层、优化器层以及存储层,其特征在于,所述实现方法包括:
在所述优化器层以及存储层中加入KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;
在所述KV转换层以及存储层中加入字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作。
进一步地,所述KV转换层用于将表逻辑结构转换为KV的形式的步骤包括:
所述KV转换层用于将关系型数据库的行形转换为KV的形式。
进一步地,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作包括:
判断KV键值是否为独占属性;
在确定不为独占属性,则对所述KV键值加共享锁,再对加共享锁的所述KV键值进行数据操作,之后释放所述共享锁;
在确定为独占属性,则对所述KV键值加互斥锁,再对加互斥锁的所述KV键值进行数据操作,之后释放所述互斥锁。
进一步地,所述KV转换层采用SSTable数据结构对数据进行重新组织,所述SSTable数据结构包括依次横向设置的多个数据对,每一数据对包括一个标识以及所述标识对应的取值。
进一步地,所述存储模型为OpenGauss数据库。
再一方面,本发明还提供一种存储模型,所述存储模型包括语法层、优化器层以及存储层,其特征在于,所述存储模型还包括:
位于所述优化器层以及存储层之间的KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;
位于所述KV转换层以及存储层之间的字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作。
进一步地,所述KV转换层具体用于:将关系型数据库的行形转换为KV的形式。
进一步地,所述字段级锁技术管理层具体用于:判断KV键值是否为独占属性;在确定不为独占属性,则对所述KV键值加共享锁,再对加共享锁的所述KV键值进行数据操作,之后释放所述共享锁;在确定为独占属性,则对所述KV键值加互斥锁,再对加互斥锁的所述KV键值进行数据操作,之后释放所述互斥锁。
进一步地,所述KV转换层还用于采用SSTable数据结构对数据进行重新组织,所述SSTable数据结构包括依次横向设置的多个数据对,每一数据对包括一个标识以及所述标识对应的取值。
进一步地,所述存储模型为OpenGauss数据库。
本发明在OpenGauss平台下的字段级锁机制,该字段级锁以KV键值对存储引擎为基础,对列存储的形式更加友好,能够在操作复杂度和实现逻辑上更贴近列存储的形式,同时通过更为精细的锁粒度,能够支持更高的操作并发度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为根据本发明示例性第一实施例的存储模型的字段级锁的实现方法的流程图。
图2为根据本发明示例性第二实施例的存储模型的字段级锁的实现方法中的SSTable(sorted string table)的数据结构示意图。
图3为根据本发明示例性第三实施例的存储模型的字段级锁的实现方法中锁管理流程的流程图。
图4为根据本发明示例性第四实施例的存储模型的结构框图。
实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
如图1所示,本发明一种存储模型的字段级锁的实现方法,所述存储模型包括语法层、优化器层以及存储层,所述实现方法包括:
步骤101,在所述优化器层以及存储层中加入KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;
具体地,所述KV转换层用于将表逻辑结构转换为KV的形式的步骤包括:
所述KV转换层用于将关系型数据库的行形转换为KV的形式。
具体地,因为在KV转换层上要将原有关系型数据库的逻辑形式打散,重组为KV键值对的形式来进行后续的操作和处理,所述KV转换层采用SSTable数据结构对数据进行重新组织,所述SSTable数据结构包括依次横向设置的多个数据对,每一数据对包括一个标识以及所述标识对应的取值。SSTable数据结构详见图2所示。与SSTable结构相配合的数据组织机制使用LSM树(The Log-Structured Merge-Tree)来保证该有序表的快速读取。
步骤102,在所述KV转换层以及存储层中加入字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作。
锁管理层,则主要是对KV键值对进行加锁和释放锁的操作。该操作映射到数据表中即是对数据表中的字段进行锁操作,因此该锁管理器管理的为字段级的锁。锁管理流程如图3所示。其中无论是互斥锁还是共享锁都需要***维护一个锁列表,锁之间的互斥关系遵循一般的锁管理机制,当加锁失败时,当前进程中断等待其他进程释放锁。
通过对锁粒度的分析可知,对于大量数据操作而言,字段级的锁产生冲突和等待的概率要小于行级锁,所以使用更小的粒度来加锁能够支持更高的数据并发,同时因为冲突的概率更小,所以相应的操作的延迟也会更低。
具体地,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作包括:
判断KV键值是否为独占属性;
在确定不为独占属性,则对所述KV键值加共享锁,再对加共享锁的所述KV键值进行数据操作,之后释放所述共享锁;
在确定为独占属性,则对所述KV键值加互斥锁,再对加互斥锁的所述KV键值进行数据操作,之后释放所述互斥锁。
具体操作时,所述存储模型为OpenGauss数据库。
本实施例在OpenGauss平台下实现的更适应于列存储形势下的锁机制,从数据表的逻辑上来说,该锁机制属于字段级的锁,其粒度要比行级锁更加精确。该锁机制一方面更适应于列存储的形式,在操作逻辑上和复杂度上均优于传统的关系型数据库的锁机制,另一方面通过更加精确的锁粒度,能够适应更高的并发度,在当前数据并发度越来越高的趋势下,具有十分重要的意义。
图4为根据本发明示例性第四实施例的存储模型的结构框图。具体如图4所示,存储模型在OpenGauss架构中新增两层组件,即KV转换层和字段级锁技术管理层,其中KV转换层中将关系型数据库的行形式转换为KV的形式,并以此为基础对优化器生成的查询计划进行转换,使之更加适应KV存储形式。其中底层的执行算子的修改仅涉及扫描类算子,需要将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对二者操作的不同在优化阶段对执行路径进行调整,对于其他部分无需改动。具体地,存储模块包括语法层、优化器层以及存储层,其特征在于,所述存储模型还包括:
位于所述优化器层以及存储层之间的KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;
位于所述KV转换层以及存储层之间的字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作。
优选地,所述KV转换层具体用于:将关系型数据库的行形转换为KV的形式。
优选地,所述字段级锁技术管理层具体用于:判断KV键值是否为独占属性;在确定不为独占属性,则对所述KV键值加共享锁,再对加共享锁的所述KV键值进行数据操作,之后释放所述共享锁;在确定为独占属性,则对所述KV键值加互斥锁,再对加互斥锁的所述KV键值进行数据操作,之后释放所述互斥锁。
优选地,所述KV转换层还用于采用SSTable数据结构对数据进行重新组织,所述SSTable数据结构包括依次横向设置的多个数据对,每一数据对包括一个标识以及所述标识对应的取值。
具体地,所述存储模型为OpenGauss数据库。
本实施例通过在OpenGauss平台中引入了粒度更加精细的字段级锁管理技术,使得数据库能够支持更高的并发操作,尤其是针对同一数据记录的增删改操作,可以获得更小的操作延迟。该字段级锁技术扩展了OpenGauss数据库的数据处理能力,也为OpenGauss的分布式架构提供了一个技术基础。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (6)

1.一种存储模型的字段级锁的实现方法,所述存储模型包括语法层、优化器层以及存储层,其特征在于,所述实现方法包括:
在所述优化器层以及存储层中加入KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;
在所述KV转换层以及存储层中加入字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作;
所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作包括:
判断KV键值是否为独占属性;
在确定不为独占属性,则对所述KV键值加共享锁,再对加共享锁的所述KV键值进行数据操作,之后释放所述共享锁;
在确定为独占属性,则对所述KV键值加互斥锁,再对加互斥锁的所述KV键值进行数据操作,之后释放所述互斥锁;
所述存储模型为OpenGauss数据库。
2.根据权利要求1所述的存储模型的字段级锁的实现方法,其特征在于,所述KV转换层用于将表逻辑结构转换为KV的形式的步骤包括:
所述KV转换层用于将关系型数据库的行形转换为KV的形式。
3.根据权利要求1所述的存储模型的字段级锁的实现方法,其特征在于,所述KV转换层采用SSTable数据结构对数据进行重新组织,所述SSTable数据结构包括依次横向设置的多个数据对,每一数据对包括一个标识以及所述标识对应的取值。
4.一种存储模型,所述存储模型包括语法层、优化器层以及存储层,其特征在于,所述存储模型还包括:
位于所述优化器层以及存储层之间的KV转换层,所述KV转换层用于将表逻辑结构转换为KV的形式,并基于所述KV的形式对优化器层生成的查询计划进行转换,以及将扫描表获取元组的操作替换为扫描key值获取KV键值对的操作,并针对所述扫描表获取元组的操作与扫描key值获取KV键值对的操作的不同在优化阶段对执行路径进行调整;
位于所述KV转换层以及存储层之间的字段级锁技术管理层,所述字段级锁技术管理层用于对KV键值对进行加锁和释放锁的操作;
所述字段级锁技术管理层具体用于:判断KV键值是否为独占属性;在确定不为独占属性,则对所述KV键值加共享锁,再对加共享锁的所述KV键值进行数据操作,之后释放所述共享锁;在确定为独占属性,则对所述KV键值加互斥锁,再对加互斥锁的所述KV键值进行数据操作,之后释放所述互斥锁;
所述存储模型为OpenGauss数据库。
5.根据权利要求4所述的存储模型,其特征在于,所述KV转换层具体用于:将关系型数据库的行形转换为KV的形式。
6.根据权利要求4所述的存储模型,其特征在于,所述KV转换层还用于采用SSTable数据结构对数据进行重新组织,所述SSTable数据结构包括依次横向设置的多个数据对,每一数据对包括一个标识以及所述标识对应的取值。
CN202011381172.XA 2020-12-01 2020-12-01 存储模型及其字段级锁的实现方法 Active CN112347203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011381172.XA CN112347203B (zh) 2020-12-01 2020-12-01 存储模型及其字段级锁的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011381172.XA CN112347203B (zh) 2020-12-01 2020-12-01 存储模型及其字段级锁的实现方法

Publications (2)

Publication Number Publication Date
CN112347203A CN112347203A (zh) 2021-02-09
CN112347203B true CN112347203B (zh) 2023-06-06

Family

ID=74427162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011381172.XA Active CN112347203B (zh) 2020-12-01 2020-12-01 存储模型及其字段级锁的实现方法

Country Status (1)

Country Link
CN (1) CN112347203B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
US9367346B2 (en) * 2013-02-20 2016-06-14 Nec Corporation Accelerating distributed transactions on key-value stores through dynamic lock localization
CN106708427B (zh) * 2016-11-17 2019-05-10 华中科技大学 一种适用于键值对数据的存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108637B2 (en) * 2016-03-08 2018-10-23 International Business Machines Corporation Spatial-temporal storage system, method, and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
US9367346B2 (en) * 2013-02-20 2016-06-14 Nec Corporation Accelerating distributed transactions on key-value stores through dynamic lock localization
CN106708427B (zh) * 2016-11-17 2019-05-10 华中科技大学 一种适用于键值对数据的存储方法

Also Published As

Publication number Publication date
CN112347203A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
US6952692B1 (en) Execution of requests in a parallel database system
US6009425A (en) System and method for performing record deletions using index scans
CN106599043A (zh) 用于多级数据库的中间件和多级数据库***
JP7438603B2 (ja) トランザクション処理方法、装置、コンピュータデバイス及びコンピュータプログラム
CN101183387A (zh) 一种增量数据捕获方法和***
CN102890678A (zh) 一种基于格雷编码的分布式数据布局方法及查询方法
CN107977446A (zh) 一种基于数据分区的内存网格数据加载方法
El Alami et al. Migration of a relational databases to NoSQL: The way forward
US7610272B2 (en) Materialized samples for a business warehouse query
Jin et al. Making RDBMSs efficient on graph workloads through predefined joins
US11392576B2 (en) Distributed pessimistic lock based on HBase storage and the implementation method thereof
CN112347203B (zh) 存储模型及其字段级锁的实现方法
CN103605732A (zh) 基于Infobright的数据仓库和***及其构建方法
RU2515565C1 (ru) Способ обновления структурированных данных в системе управления реляционными базами данных
US7321898B1 (en) Locking mechanism for materialized views in a database system
US20230161744A1 (en) Method of processing data to be written to a database
Ng et al. The R-Link tree: A recoverable index structure for spatial data
CN110019467A (zh) 针对社保信息的大数据整合***
CN114490524A (zh) 一种基于主从副本数据解耦的高性能分布式键值存储方法
Putrama et al. An automated graph construction approach from relational databases to Neo4j
Krishna et al. Using Cuckoo Filters to Improve Performance in Object Store-based Very Large Databases
US12038909B2 (en) Systems and methods for scalable database technology
CN113377786B (zh) 在线创建索引的实现方法
Tapdiya et al. A comparative analysis of materialized views selection and concurrency control mechanisms in NoSQL databases
Banks et al. high-concurrency locking in R-Trees

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant