CN115469810A - 一种数据获取方法、装置、设备及存储介质 - Google Patents
一种数据获取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115469810A CN115469810A CN202211156625.8A CN202211156625A CN115469810A CN 115469810 A CN115469810 A CN 115469810A CN 202211156625 A CN202211156625 A CN 202211156625A CN 115469810 A CN115469810 A CN 115469810A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- request
- child node
- physical address
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据获取方法、装置、设备及存储介质。该方法包括:当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;根据所述目标数据行的物理地址读取目标数据行的数据,通过本发明的技术方案,能够解决访问数据行的数据内容时,需要经过多层的逻辑地址和物理地址的读取,增加内存访问过程中间接地址计算开销,使得整个访问路径变得很复杂,从而导致内存访问延迟,系统整体性能下降的问题,降低了内存访问路径的复杂度。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据获取方法、装置、设备及存储介质。
背景技术
为了在多样化的数据库负载场景下,使系统具有更好的并行处理能力,目前大多数数据库系统采用多版本技术。通过为数据库的每条逻辑记录维护多个版本的物理数据行,使得在同一个逻辑记录上,读写操作可以在各自的快照版本数据下运行,而不相互阻塞。
对于如何组织和存放多个版本的物理数据行,现有的内存数据库系统大多使用基于堆结构的数据组织形式,一般将所有数据行都存放在同一块存储空间中,包括记录的新版本和旧版本。每当有数据更新请求时,系统在数据表中先请求一个新的数据行的存储空间,然后将最新版本的数据行复制一份到新数据行空间中,最后将变更内容写入到这个新数据行上。新版本到老版本是一种常用来维护每个记录的多个版本的方法,即,使用一个链表将版本数据行从新到老排列,通过遍历链表可以访问到需求的版本数据。
基于堆结构的数据组织形式存在如下缺陷:当要访问一个数据行的数据内容时,需要经过多层的逻辑地址和物理地址的读取,大大增加了内存访问过程中间接地址计算开销,使得整个访问路径变得很复杂,从而导致内存访问延迟,系统整体性能下降。
发明内容
本发明实施例提供一种数据获取方法、装置、设备及存储介质,能够解决访问数据行的数据内容时,需要经过多层的逻辑地址和物理地址的读取,增加内存访问过程中间接地址计算开销,使得整个访问路径变得很复杂,从而导致内存访问延迟,系统整体性能下降的问题,通过将数据行的数据存储在树结构的子节点中,降低了内存访问路径的复杂度。
根据本发明的一方面,提供了一种数据获取方法,包括:
当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;
根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;
根据所述目标数据行的物理地址读取目标数据行的数据。
根据本发明的另一方面,提供了一种数据获取装置,该数据获取装置包括:
第一获取模块,用于当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;
第二获取模块,用于根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;
读取模块,用于根据所述目标数据行的物理地址读取目标数据行的数据。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据获取方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据获取方法。
本发明实施例通过当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;根据所述目标数据行的物理地址读取目标数据行的数据,解决了访问数据行的数据内容时,需要经过多层的逻辑地址和物理地址的读取,增加内存访问过程中间接地址计算开销,使得整个访问路径变得很复杂,从而导致内存访问延迟,系统整体性能下降的问题,通过将数据行的数据存储在树结构的子节点中,降低了内存访问路径的复杂度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例中的一种数据获取方法的流程图;
图2是本发明实施例中的更新操作和查询操作的示意图;
图3是本发明实施例中的一种数据获取装置的结构示意图;
图4是本发明实施例中的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例提供的一种数据获取方法的流程图,本实施例可适用于数据获取的情况,该方法可以由本发明实施例中的数据获取装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S110,当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址。
其中,所述树结构包括父节点和子节点,所述父节点的结构和所述子节点的结构相同,所述父节点中存储的内容包括:数据标识和子节点的物理地址;所述子节点中存储的内容包括:节点属性信息、数据行的元数据以及每个数据行的记录数据。所述树结构基于目标表构建,需要说明的是,在基于目标表构建树结构后,还可以通过插入请求对树结构进行更新。具体的,构建树结构的方式可以为:基于目标表构建树结构,根据插入请求,将待插入数据行插入对应的子节点,并同时更新子节点的属性信息、子节点中数据行的元数据以及每个数据行的记录数据。在插入数据的过程中需要将元数据中的更新标志位修改为第一数值。
其中,所述第一请求可以为查询请求,也可以为删除请求,还可以为更新请求,本发明实施例对此不进行限制。具体的,若第一请求为查询请求,则第一请求携带第一数据标识和查询范围信息,若第一请求为更新请求,则第一请求携带第一数据标识和目标数据;若第一请求为删除请求,则第一请求携带第一数据标识。
可选的,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址,包括:
若所述第一数据标识小于或者等于所述父节点对应的数据标识,则根据所述第一数据标识查询所述父节点的左侧子节点对应的数据标识;
若所述父节点的左侧子节点对应的数据标识中存在与所述第一数据标识相同的数据标识,则获取与所述第一数据标识相同的数据标识对应的子节点的物理地址;
将与所述第一数据标识相同的数据标识对应的子节点的物理地址确定为所述第一请求对应的目标子节点的物理地址。
其中,所述父节点包括:数据标识、父节点的左侧子节点对应的数据标识、父节点的左侧子节点的物理地址、父节点的右侧子节点对应的数据标识以及父节点的右侧子节点的物理地址,其中,父节点的左侧子节点对应的数据标识小于或者等于所述父节点对应的数据标识,父节点的右侧子节点对应的数据标识大于所述父节点对应的数据标识。
例如可以是,若父节点的key值为4,第一请求携带的第一数据标识为key=7,父节点包括,父节点的左侧子节点A的key值为3,父节点的左侧子节点A对应物理地址X、父节点的左侧子节点B的key值为2,父节点的左侧子节点A对应物理地址y、父节点的右侧子节点C的key值为5,父节点的左侧子节点A对应物理地址z、父节点的左侧子节点D的key值为6,父节点的左侧子节点A对应物理地址r、父节点的左侧子节点E的key值为7,父节点的左侧子节点A对应物理地址u,由于7大于4,则查询父节点的右侧子节点,得到父节点的左侧子节点E的key值为7,父节点的左侧子节点A对应物理地址u,则确定第一请求对应的目标子节点为子节点E,目标子节点的物理地址为物理地址u。
S120,根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址。
需要说明的是,在多版本数据库系统中,数据表中一条逻辑记录对应存储多个物理数据行。
其中,所述子节点包括:节点属性信息、数据行的元数据以及每个数据行的记录数据,例如可以是,子节点包括:(1)子节点元数据header(子节点总空间大小和当前已使用的空间大小);(2)数据行元数据数组,存放每个数据行的meta和指向上一个版本的物理地址,其中,meta是一个64位的整型值,包含:1bit标识当前数据行是否在被更新,1bit标识当前数据行是否可见,14bit存放key值的长度,16bit存放数据行的偏移量,32bit存放创建该数据行的事务id;(3)每个数据行的整行数据内容。
本发明实施例提供的数据组织形式能够将数据表记录最新数据行数据内容存储在树叶子节点中,降低了内存访问路径复杂度。通过指针的方式对不同版本的数据行分类,将其分开存储,减少了中心化存储结构访问竞争。并且每个数据行对应一个元数据,为不同类别的数据行维护不同的元数据信息,减少了版本存储开销。
具体的,根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址的方式可以为:根据所述目标节点的物理地址读取所述目标子节点的元数据,根据所述第一数据标识查询所述目标子节点的元数据中与所述第一数据标识相同的数据标识对应的目标数据行;并获取目标数据行的物理地址。
在一个具体的例子中,若第一请求为查询请求:查找ID=7的员工的所有字段值。首先,根据查询请求的ID值遍历树结构的父节点,找到目标子节点的物理地址;然后,通过二分查找的方法遍历目标子节点中数据行的meta;接着,根据meta中的偏移量,计算数据行内容的物理位置,从而读取数据行内容中的ID,并将其与ID=7进行对比,直到找到ID=7的目标数据行,获取目标数据行的物理地址。
通过数据行数据内容存储的有序性,只须根据数据标识遍历索引,在子节点就可以直接读取数据行的全部数据内容,而不需要进行多层的间接地址访问。因此,本发明实施例提出的这种数据组织形式可以节约很多不必要的内存间接寻址成本,从而使其在检索时具有很好的性能优势。
S130,根据所述目标数据行的物理地址读取目标数据行的数据。
其中,所述目标数据行的数据为目标数据行的记录数据,例如可以是,若目标数据行为ID=7的数据行,则读取ID=7的员工的所有字段值。
可选的,所述第一请求为查询请求;
在根据所述目标数据行的物理地址读取目标数据行的数据之后,还包括:
将所述目标数据行的数据作为查询结果返回。
具体的,将所述目标数据行的数据作为查询结果返回,例如可以是,若目标数据行为ID=7的数据行,则读取ID=7的员工的所有字段值,并将ID=7的员工的所有字段值作为查询结果返回。
可选的,在当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址之前,还包括:
获取目标表;
根据所述目标表中的数据标识构建树结构,其中,所述树结构包括:父节点和子节点,子节点包括:节点属性信息、数据行的元数据以及每个数据行的记录数据,父节点包括:数据标识和子节点的物理地址。
其中,所述每个子节点的空间大小可以为固定值,例如可以是,每个子节点的空间大小为64KB。子节点被划分为三个区域:1)叶子节点元数据header;2)数据行元数据数组,存放每个数据行的meta和指向上一个版本的物理地址,其中meta是一个64位的整型值,包含:1bit标识当前数据行是否在被更新,1bit标识当前数据行是否可见,14bit存放key值的长度,16bit存放数据行的偏移量,32bit存放创建该数据行的事务id;3)每个数据行的整行数据内容。
在一个具体的例子中,一张员工数据表employee,其包含员工ID(长度是4),员工姓名(长度是20),薪水(长度是4)和住址(长度是32)等属性字段。数据表所有记录的最新版本数据行都存储在以员工ID构造的树结构中,树结构的父节点上存放的是ID值和地址指针,子节点上存放的是整行数据内容。
可选的,所述第一请求为更新请求,所述目标表包括:属性字段长度信息;
相应的,在根据所述目标数据行的物理地址读取目标数据行的数据之后,还包括:
创建临时空间;
将所述目标数据行的数据存储至所述临时空间;
针对所述目标数据行的数据添加写锁,将所述目标子节点的元数据中的上一个版本的指针修改为指向临时空间地址;
根据所述属性字段长度信息和所述更新请求携带的目标数据对目标数据行的数据进行更新;
释放针对所述目标数据行的数据的写锁。
其中,所述属性字段为目标表中的元素,属性字段长度信息为每个元素的长度,例如可以是,若目标表为员工数据表,其包含员工ID,员工姓名,薪水和住址等属性字段,其中,员工ID的长度是4,员工姓名的长度是20,薪水的长度是4,住址的长度是32。
其中,所述临时空间为一个临时的版本缓冲区。其中,所述元数据中指针初始执行为空。在对子节点中存储的数据进行更新后,将指针修改为执行存储更新前数据的临时空间地址。
其中,针对所述目标数据行的数据添加写锁的方式可以为:通过借助一个原子指令操作将元数据中的更新标识位改为第一数值。
其中,所述第一数值可以为预先设定的数值,所述第一数值和所述第二数值不同,例如可以是,所述第一数值可以为1。
其中,释放针对所述目标数据行的数据的写锁的方式可以为:通过借助一个原子指令操作将元数据中的更新标识位改为第二数值。
其中,所述第二数值为预先设定的数值,例如可以是,第二数值可以为0。
具体的,根据所述属性字段长度信息和所述更新请求携带的目标数据对目标数据行的数据进行更新的方式可以为:根据所述属性字段长度信息确定待更改数据的偏移量,根据待更改数据的偏移量将待更改数据更新为目标数据。例如可以是,更新请求为:将ID=5的员工的薪水更改为5200。目标表为一张员工数据表employee,其包含员工ID(长度是4),员工姓名(长度是20),薪水(长度是4)和住址(长度是32)等属性字段。根据属性字段长度信息确定待更改数据的偏移量为24,将原薪水字段值修改为5200。
在一个具体的例子中,若第一请求为更新请求,例如:将ID=5的员工的薪水更改为5200。
1)首先,同前面的查询请求流程,查找到数据行ID=5的数据内容;
2)其次,将整个记录数据内容迁移到一个临时的版本缓冲区中,并跟踪维护写操作期间并发读事务对其操作的元数据,以供后续事务提交时串行化验证使用;
3)接着,通过借助一个原子指令操作将数据行meta中的更新标识位改为1,对该数据行数据内容加写锁,之后其它并发写操作将读取到该元数据标识,并返回失败;
4)然后,根据属性字段长度,计算更改内容的偏移量为24,原地将薪水字段值更改为5200;
5)最后,当该更新事务成功提交后,再通过一次原子指令操作将数据行meta中的更新标识改为0,从而释放对该数据行的写锁,之后,该数据行成为了一个新版本,并对其它事务可见。在此之前,还需要完成对旧数据行的迁移操作,即,使用内存复制的方式将缓冲区中的数据行数据内容迁移到退役版本数据块中,并将数据行上一个版本(旧版本)的指针指向退役版本。
在整个过程中,更新操作并不影响其它并发事务对记录的最新版本数据行访问。当有并发读请求时,可以通过数据行的上一个版本指针,定向到缓冲区中放置的最新版本的缓存数据。另外,使用一个定时线程对缓存区进行清理,以加快对缓冲区中数据项的检索速度。因此,本发明实施例提出的数据组织形式,虽然会给系统带来一些迁移成本,但实际实验结果表明,在多样化的数据库负载场景下,能够提升整体性能。
可选的,还包括:
当接收到插入请求时,根据所述插入请求携带的待插入数据行的第二数据标识遍历树结构的父节点,得到所述插入请求对应的第一子节点的物理地址;
若所述第一子节点中不存在数据标识为第二数据标识的数据行,则构建数据项,其中,所述数据项用于存储第二数据标识对应的数据行的元数据;
将所述第二数据标识对应的数据行的元数据中的更新标识位修改为第一数值;
根据所述第一子节点的节点属性信息确定待插入数据行的偏移量;
根据所述待插入数据行的偏移量将所述待插入数据行对应的数据插入所述第一子节点,并根据所述待插入数据行的偏移量更新元数据;
将所述第二数据标识对应的数据行的元数据中的更新标识位修改为第二数值。
具体的,若所述第一子节点中不存在数据标识为第二数据标识的数据行,则构建数据项的方式可以为:遍历该子节点中的所有数据行,判断该子节点是否已经存在数据标识为第二数据标识的数据行,如果已经存在,则返回插入失败,原因是数据重复;若该子节点不经存在数据标识为第二数据标识的数据行,则从该子节点的元数据数组中获取一个新数据项。
在一个具体的例子中,当接收到插入请求时,例如:插入ID=7的员工信息。
首先,根据查询请求的ID值遍历树结构,找到待插入的子节点的物理地址;
然后,遍历该子节点中的所有数据行,判断该子节点是否已经存在ID=7的数据行,如果已经存在,则返回插入失败,原因是数据重复;
如果该子节点不存在ID=7的记录,则从该子节点的元数据数组中获取一个新数据项,用来存放ID=7的数据行的元数据,并初始化该元数据meta中的更新标识位修改为1,对该数据行加写锁,该数据行对其它事务暂时不可见;
接着,从该节点header中获取该节点总空间大小和当前已使用的空间大小,计算得到待插入数据行的偏移量;
接着,将ID=7的数据行内容复制到偏移量中,并数据行的偏移量值更新到元数据中;
最后,当该插入事务成功提交后,通过一个原子指令操作将元数据meta中的更新标识修改为0,从而释放对该数据行的写锁,之后,该数据行成为了最新版本,并对其它事务可见。
可选的,根据所述第一子节点的节点属性信息确定待插入数据行的偏移量,包括:
根据所述第一子节点的节点属性信息确定所述第一子节点对应的总空间大小和已使用空间大小;
根据所述第一子节点对应的总空间大小和已使用空间大小确定待插入数据行的偏移量。
其中,所述第一子节点的节点属性信息包括:第一子节点对应的总空间大小和已使用空间大小。
具体的,根据所述第一子节点对应的总空间大小和已使用空间大小确定待插入数据行的偏移量的方式可以为:根据所述第一子节点对应的总空间大小和已使用空间大小的差值确定待插入数据行的偏移量。
可选的,所述第一请求为删除请求;
在根据所述目标数据行的物理地址读取目标数据行的数据之后,还包括:
创建临时空间;
将所述目标数据行的数据存储至所述临时空间;
针对所述目标数据行的数据添加写锁,将所述目标子节点的元数据中的上一个版本的指针修改为指向临时空间地址;
将所述目标数据行的元数据中的可见标志位修改为第二数值;
释放针对所述目标数据行的数据的写锁。
其中,所述临时空间为一个临时的版本缓冲区。
其中,所述元数据中指针初始执行为空。在对子节点中存储的数据进行修改后,将指针修改为执行存储修改前数据的临时空间地址。
其中,针对所述目标数据行的数据添加写锁的方式可以为:通过借助一个原子指令操作将元数据中的更新标识位改为第一数值。
其中,所述第一数值可以为预先设定的数值,所述第一数值和所述第二数值不同,例如可以是,所述第一数值可以为1。
其中,所述第二数值为预先设定的数值,例如可以是,第二数值可以为0。
其中,释放针对所述目标数据行的数据的写锁的方式可以为:通过借助一个原子指令操作将元数据中的更新标识位改为第二数值。
在一个具体的例子中,若第一请求为删除请求,例如:删除ID=6的员工信息。
首先,同前面的查询请求流程,查找到数据行ID=6的数据内容;
其次,将整个数据行的数据内容迁移到一个临时的版本缓冲区中,并跟踪维护该删除操作期间并发读事务对其操作的元数据,以供后续事务提交时串行化验证使用;
接着,通过一个原子指令操作将元数据meta中的更新标识位改为1,对该数据行数据内容加写锁,之后其它并发写操作将读取到该元数据标识,并返回失败;将元数据指向上一个版本的指针修改为指向临时空间地址,之后对于在更新操作未成功提交之前的对该数据行的读操作请求,将返回临时空间中存放的数据内容,同时也将记录这些读操作的事务信息,以提供后续事务提交阶段的串行化验证使用;
最后,当该更新事务成功提交后,再通过一次原子指令操作将元数据meta修改为0,从而对该数据行进行逻辑删除;
当活跃版本树进行合并操作时,读取到该数据行的元数据meta为0,将该数据行占用的内存空间进行清理(即物理删除);当系统内存空间回收线程检测到版本缓冲区中的该数据行的事务已经过期,则会将该数据行占用的内存空间进行清理(即物理删除)。
本发明实施例使用一个性能优化的Bztree树结构来组织和存储数据表的所有记录的最新版本数据行。树的每个叶子节点都是一个固定大小的数据块,数据块内部按照槽位slot的格式来组织每个数据行,其包括固定byte大小的节点元数据信息,动态调整的数组用来保存每个数据行的元数据,以及按照偏移量放置的每个数据行的整个记录数据。其次,对于正在被更新数据行,将其存放在一个全局的版本缓存区中,并维护其关联的事务读写操作信息。然后,针对那些不再会有更新需求的数据行,则是利用顺序追加的方式,将数据行存储在多个固定大小的连续的内存数据块中,并为其维护简单的快照时间戳信息,以提供版本检索使用。因此,每次更新数据行时,将叶子节点中保存的最新数据行转移到缓冲区中,同时在叶子节点上直接原地修改变更内容。虽然这种方式会带来一定的内存复制开销,但此时并不影响其他并发事务对该数据行的访问。
本发明实施例能够根据表格版本的生命周期,对数据行进行分类,把它们分开存储在多个存储空间,从而可以降低数据访问的争用。同时,按照数据库负载的多样化需求,为不同类别的数据行维护适用的元数据信息,节省了内存空间开销。另外,执行引擎通过遍历树叶子节点,就可以直接读取到数据行的整个数据内容,大大简化了内存数据访问的路径,从而提升了系统处理多样化数据库负载的整体性能。
在一个具体的例子中,若第一请求包括:查询请求(查询ID=7的员工的所有字段)和更新请求(将ID=5的员工的薪水更新为5200)。如图2所示,父节点的ID=4,父节点的左侧子节点包括:ID=4的子节点、ID=3的子节点、ID=2的子节点以及ID=1的子节点,父节点的右侧子节点包括:ID=5的子节点、ID=6的子节点以及ID=7的子节点,由于7大于4,则查询父节点的右侧子节点,得到ID=7的子节点的物理地址,查询得到ID=7的员工的所有字段。由于5大于4,查询父节点的右侧子节点,得到ID=5的子节点的物理地址,查询得到ID=5的员工的所有字段。并将ID=5的员工的所有字段存储至版本缓冲区,将子节点中ID=5的员工的薪水更新为5200。退役版本数据块中存储有退役版本数据,例如图2中退役版本数据块中存储的ID=5的员工的所有字段和ID=7的员工的所有字段。
本实施例的技术方案,通过当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;根据所述目标数据行的物理地址读取目标数据行的数据,解决了访问数据行的数据内容时,需要经过多层的逻辑地址和物理地址的读取,增加内存访问过程中间接地址计算开销,使得整个访问路径变得很复杂,从而导致内存访问延迟,系统整体性能下降的问题,通过将数据行的数据存储在树结构的子节点中,降低了内存访问路径的复杂度。
实施例二
图3为本发明实施例提供的一种数据获取装置的结构示意图。本实施例可适用于数据获取的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供数据获取功能的设备中,如图3所示,所述数据获取装置具体包括:第一获取模块310、第二获取模块320和读取模块330。
其中,第一获取模块,用于当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;
第二获取模块,用于根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;
读取模块,用于根据所述目标数据行的物理地址读取目标数据行的数据。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
本实施例的技术方案,通过当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;根据所述目标数据行的物理地址读取目标数据行的数据,解决了访问数据行的数据内容时,需要经过多层的逻辑地址和物理地址的读取,增加内存访问过程中间接地址计算开销,使得整个访问路径变得很复杂,从而导致内存访问延迟,系统整体性能下降的问题,通过将数据行的数据存储在树结构的子节点中,降低了内存访问路径的复杂度。
实施例三
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据获取方法。
在一些实施例中,数据获取方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的数据获取方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据获取方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据获取方法,其特征在于,包括:
当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;
根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;
根据所述目标数据行的物理地址读取目标数据行的数据。
2.根据权利要求1所述的方法,其特征在于,所述第一请求为查询请求;
在根据所述目标数据行的物理地址读取目标数据行的数据之后,还包括:
将所述目标数据行的数据作为查询结果返回。
3.根据权利要求1所述的方法,其特征在于,在当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址之前,还包括:
获取目标表;
根据所述目标表中的数据标识构建树结构,其中,所述树结构包括:父节点和子节点,子节点包括:节点属性信息、数据行的元数据以及每个数据行的记录数据,父节点包括:数据标识和子节点的物理地址。
4.根据权利要求1所述的方法,其特征在于,所述第一请求为更新请求,所述目标表包括:属性字段长度信息;
相应的,在根据所述目标数据行的物理地址读取目标数据行的数据之后,还包括:
创建临时空间;
将所述目标数据行的数据存储至所述临时空间;
针对所述目标数据行的数据添加写锁,将所述目标子节点的元数据中的上一个版本的指针修改为指向临时空间地址;
根据所述属性字段长度信息和所述更新请求携带的目标数据对目标数据行的数据进行更新;
释放针对所述目标数据行的数据的写锁。
5.根据权利要求3所述的方法,其特征在于,还包括:
当接收到插入请求时,根据所述插入请求携带的待插入数据行的第二数据标识遍历树结构的父节点,得到所述插入请求对应的第一子节点的物理地址;
若所述第一子节点中不存在数据标识为第二数据标识的数据行,则构建数据项,其中,所述数据项用于存储第二数据标识对应的数据行的元数据;
将所述第二数据标识对应的数据行的元数据中的更新标识位修改为第一数值;
根据所述第一子节点的节点属性信息确定待插入数据行的偏移量;
根据所述待插入数据行的偏移量将所述待插入数据行对应的数据插入所述第一子节点,并根据所述待插入数据行的偏移量更新元数据;
将所述第二数据标识对应的数据行的元数据中的更新标识位修改为第二数值。
6.根据权利要求5所述的方法,其特征在于,根据所述第一子节点的节点属性信息确定待插入数据行的偏移量,包括:
根据所述第一子节点的节点属性信息确定所述第一子节点对应的总空间大小和已使用空间大小;
根据所述第一子节点对应的总空间大小和已使用空间大小确定待插入数据行的偏移量。
7.根据权利要求1所述的方法,其特征在于,所述第一请求为删除请求;
在根据所述目标数据行的物理地址读取目标数据行的数据之后,还包括:
创建临时空间;
将所述目标数据行的数据存储至所述临时空间;
针对所述目标数据行的数据添加写锁,将所述目标子节点的元数据中的上一个版本的指针修改为指向临时空间地址;
将所述目标数据行的元数据中的可见标志位修改为第二数值;
释放针对所述目标数据行的数据的写锁。
8.一种数据获取装置,其特征在于,包括:
第一获取模块,用于当接收到第一请求时,根据所述第一请求携带的第一数据标识遍历树结构的父节点,得到所述第一请求对应的目标子节点的物理地址;
第二获取模块,用于根据所述目标子节点的物理地址和所述第一数据标识遍历所述目标子节点的元数据,得到目标数据行的物理地址;
读取模块,用于根据所述目标数据行的物理地址读取目标数据行的数据。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据获取方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据获取方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211156625.8A CN115469810A (zh) | 2022-09-21 | 2022-09-21 | 一种数据获取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211156625.8A CN115469810A (zh) | 2022-09-21 | 2022-09-21 | 一种数据获取方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115469810A true CN115469810A (zh) | 2022-12-13 |
Family
ID=84335534
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211156625.8A Pending CN115469810A (zh) | 2022-09-21 | 2022-09-21 | 一种数据获取方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115469810A (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115905267A (zh) * | 2022-12-30 | 2023-04-04 | 北京奥星贝斯科技有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
| CN116680233A (zh) * | 2023-05-11 | 2023-09-01 | 阿里巴巴(中国)有限公司 | 一种文件访问方法、系统、电子设备及机器可读存储介质 |
| CN117150086A (zh) * | 2023-09-12 | 2023-12-01 | 北京云枢创新软件技术有限公司 | 基于层次结构树的子节点的生成方法、电子设备和介质 |
| CN119621389A (zh) * | 2024-11-21 | 2025-03-14 | 浙江吉利控股集团有限公司 | 冻结帧的生成方法及相关装置 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105183915A (zh) * | 2015-10-14 | 2015-12-23 | 江苏师范大学 | 减少索引维护开销的多版本管理方法 |
| CN109690522A (zh) * | 2018-08-27 | 2019-04-26 | 袁振南 | 一种基于b+树索引的数据更新方法、装置及存储装置 |
| US20190235933A1 (en) * | 2018-01-31 | 2019-08-01 | Microsoft Technology Licensing, Llc | Index Structure Using Atomic Multiword Update Operations |
| CN114356927A (zh) * | 2021-12-31 | 2022-04-15 | 杭州趣链科技有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
-
2022
- 2022-09-21 CN CN202211156625.8A patent/CN115469810A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105183915A (zh) * | 2015-10-14 | 2015-12-23 | 江苏师范大学 | 减少索引维护开销的多版本管理方法 |
| US20190235933A1 (en) * | 2018-01-31 | 2019-08-01 | Microsoft Technology Licensing, Llc | Index Structure Using Atomic Multiword Update Operations |
| CN109690522A (zh) * | 2018-08-27 | 2019-04-26 | 袁振南 | 一种基于b+树索引的数据更新方法、装置及存储装置 |
| CN114356927A (zh) * | 2021-12-31 | 2022-04-15 | 杭州趣链科技有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| 双河: "BzTree", pages 1 - 10, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/43390204> * |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115905267A (zh) * | 2022-12-30 | 2023-04-04 | 北京奥星贝斯科技有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
| CN116680233A (zh) * | 2023-05-11 | 2023-09-01 | 阿里巴巴(中国)有限公司 | 一种文件访问方法、系统、电子设备及机器可读存储介质 |
| CN117150086A (zh) * | 2023-09-12 | 2023-12-01 | 北京云枢创新软件技术有限公司 | 基于层次结构树的子节点的生成方法、电子设备和介质 |
| CN117150086B (zh) * | 2023-09-12 | 2024-03-22 | 北京云枢创新软件技术有限公司 | 基于层次结构树的子节点的生成方法、电子设备和介质 |
| CN119621389A (zh) * | 2024-11-21 | 2025-03-14 | 浙江吉利控股集团有限公司 | 冻结帧的生成方法及相关装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102722449B (zh) | 基于SSD的Key-Value型本地存储方法及系统 | |
| US10552372B2 (en) | Systems, methods, and computer-readable media for a fast snapshot of application data in storage | |
| US10127260B2 (en) | In-memory database system providing lockless read and write operations for OLAP and OLTP transactions | |
| CN115469810A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
| US10552402B2 (en) | Database lockless index for accessing multi-version concurrency control data | |
| EP2356560B1 (en) | Atomic multiple modification of data in a distributed storage system | |
| US8589361B2 (en) | Reduced disk space standby | |
| EP3170106B1 (en) | High throughput data modifications using blind update operations | |
| US8924365B2 (en) | System and method for range search over distributive storage systems | |
| US8560500B2 (en) | Method and system for removing rows from directory tables | |
| CN104750720B (zh) | 多线程并发访问环境下高性能数据处理的实现 | |
| US7418544B2 (en) | Method and system for log structured relational database objects | |
| CN101127045A (zh) | 数据库可重复读实现方法、装置及数据库管理系统 | |
| US20120290595A1 (en) | Super-records | |
| US9390111B2 (en) | Database insert with deferred materialization | |
| WO2022121274A1 (zh) | 一种存储系统中元数据管理方法、装置及存储系统 | |
| WO2023159976A1 (zh) | 数据分段写入方法、数据读取方法及装置 | |
| CN103714121B (zh) | 一种索引记录的管理方法及装置 | |
| WO2025236959A1 (zh) | 分布式数据库的数据备份、恢复、查询方法及装置 | |
| US20060122963A1 (en) | System and method for performing a data uniqueness check in a sorted data set | |
| CN114328500A (zh) | 一种数据访问方法、装置、设备及计算机可读存储介质 | |
| CN120596435A (zh) | 元数据写入、元数据读取方法和装置 | |
| CN111444179B (zh) | 数据处理方法、装置、存储介质及服务器 | |
| US11232090B2 (en) | Compressed row state information | |
| CN110673952A (zh) | 一种面向高并发读应用的数据处理方法及装置 |
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 |