CN115878625A - 数据处理方法和装置及电子设备 - Google Patents
数据处理方法和装置及电子设备 Download PDFInfo
- Publication number
- CN115878625A CN115878625A CN202211597103.1A CN202211597103A CN115878625A CN 115878625 A CN115878625 A CN 115878625A CN 202211597103 A CN202211597103 A CN 202211597103A CN 115878625 A CN115878625 A CN 115878625A
- Authority
- CN
- China
- Prior art keywords
- leaf node
- key
- buffer
- value
- array under
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开披露了一种数据处理方法和装置以及电子设备,该方法包括:响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与第一关键字的位置范围对应的第一叶子节点,以及第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置;在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区;将第一关键字对应的第一值存储在第一缓冲区中,并将第一关键字映射到第一值在第一缓冲区的存储位置。通过创建缓冲区,能够在数据库系统处理并发事务时保持高并发,进而提高了数据库系统的吞吐量,并降低了数据库系统的数据索引的时间代价。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种数据处理方法和装置及电子设备。
背景技术
索引作为一种用于高效检索的数据结构,在数据库系统中得到了广泛的应用。在大数据时代,随着数据量的不断增长,通常要求数据库系统在处理并发事务时能够保持高并发。然而,当同一时间存在多个用户请求对数据库系统中的某个节点写入键值对时,如果不对该节点对应的内存页面上锁,会存在数据不一致的问题,而如果对该节点对应的内存页面上锁,会造成该节点的查询处于高竞争状态,无法实现高并发,从而降低了数据库系统的吞吐量,且提高了数据库系统的数据索引的时间代价。
发明内容
有鉴于此,本公开提供一种数据处理方法和装置及电子设备,能够在数据库系统处理并发事务时保持高并发,从而提高了数据库系统的吞吐量,且降低了数据库系统的数据索引的时间代价。
第一方面,提供一种数据处理方法,该方法包括:响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与第一关键字的位置范围对应的第一叶子节点,以及第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置,其中,学习型索引结构中的每个非叶子节点对应的模型用于根据第一关键字的位置范围预测下游节点对应的模型,学习型索引结构中的第一叶子节点对应的模型用于预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置;在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区;将第一关键字对应的第一值存储在第一缓冲区中,并将第一关键字映射到第一值在第一缓冲区的存储位置。
在一实施例中,该方法还包括:将第二关键字输入学习型索引结构中进行位置预测,得到与第二关键字的位置范围对应的第一叶子节点,以及第二关键字对应的第二值在第一叶子节点下的数组中的第二插入位置;在第一叶子节点下的数组中的第二插入位置处的数据密度大于或等于预设阈值时,在第二插入位置处为第一叶子节点创建第二缓冲区;将第二关键字对应的第二值存储在第二缓冲区中,并将第二关键字映射到第二值在第二缓冲区的存储位置。
在一实施例中,该方法还包括:将第三关键字输入学习型索引结构中进行位置预测,得到与第三关键字的位置范围对应的第一叶子节点,以及第三关键字对应的第三值在第一叶子节点下的数组中的第一插入位置;将第三关键字对应的第三值存储在第一缓冲区中,并将第三关键字映射到第三值在第一缓冲区的存储位置。
在一实施例中,在第一缓冲区的关键字对应的值填充满第一缓冲区的存储空间时,该方法还包括:从第一插入位置处,向前和/或向后移动第一叶子节点下的数组中的数据,以在第一位置处为第一叶子节点预留出预设大小的存储空间;将第一缓冲区中的关键字对应的值存储在预设大小的存储空间中,并将关键字映射到值在预设大小的存储空间的对应存储位置。
在一实施例中,该方法还包括:在第一叶子节点下的数组中的第一插入位置处的数据密度小于预设阈值时,将第一关键字对应的第一值存储在第一叶子节点下的数组中,并将第一关键字映射到第一值在第一叶子节点的存储位置。
在一实施例中,该方法还包括:响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置;在叶子节点下的数组中的插入位置处存在缓冲区时,从缓冲区中读取关键字对应的值;在叶子节点下的数组中的插入位置处不存在缓冲区时,从叶子节点下的数组读取关键字对应的值。
在一实施例中,在第一叶子节点下的数组为具有间隙的数组。
第二方面,提供一种数据处理方法,该方法包括:响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置,其中,学习型索引结构中的每个非叶子节点对应的模型用于根据索引关键字的位置范围预测下游节点对应的模型,学习型索引结构中的叶子节点对应的模型用于预测关键字对应的值在叶子节点下的数组中的插入位置;在叶子节点下的数组中的插入位置处存在缓冲区时,从缓冲区中读取关键字对应的值;在叶子节点下的数组中的插入位置处不存在缓冲区时,从叶子节点下的数组读取关键字对应的值。
第三方面,提供了一种数据处理装置,该装置包括:第一索引模块,配置为响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与第一关键字的位置范围对应的第一叶子节点,以及第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置,其中,学习型索引结构中的每个非叶子节点对应的模型用于根据第一关键字的位置范围预测下游节点对应的模型,学习型索引结构中的第一叶子节点对应的模型用于预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置;创建模块,配置为在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区;第一存储模块,配置为将第一关键字对应的第一值存储在第一缓冲区中,并将第一关键字映射到第一值在第一缓冲区的存储位置。
第四方面,提供了一种数据处理装置,该装置包括:第二索引模块,配置为响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置,其中,学习型索引结构中的每个非叶子节点对应的模型用于根据关键字的位置范围预测下游节点对应的模型,学习型索引结构中的叶子节点对应的模型用于预测关键字对应的值在叶子节点下的数组中的插入位置;第一读取模块,配置为在叶子节点下的数组中的插入位置处存在缓冲区时,从缓冲区中读取关键字对应的值;第二读取模块,配置为在叶子节点下的数组中的插入位置处不存在缓冲区时,从叶子节点下的数组读取关键字对应的值。
第五方面,提供一种电子设备,包括存储器和处理器,存储器中存储有可执行代码,处理器被配置为执行可执行代码,以实现如第一方面或第二方面的方法。
第六方面,提供一种计算机可读存储介质,其上存储有可执行代码,当可执行代码被执行时,能够实现如第一方面或第二方面的方法。
第七方面,提供一种计算机程序产品,包括可执行代码,当可执行代码被执行时,能够实现如第一方面或第二方面的方法。
本公开实施例提供了一种数据处理的方案,通过学习型索引结构,预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置,并在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区,以存储第一关键字对应的第一值,从而避免通过移动第一插入位置处的数组中的数据,为第一关键字预留出存储第一值的位置。在移动第一插入位置处的数组中的数据时,为保证数据的一致性,可以对第一叶子节点对应的内存页面上锁,但是其他键值对想要存储到第一叶子节点的数组中,要等待锁被释放后才能进行,因此,通过为第一叶子节点创建第一缓冲区,能够在同一时间向第一叶子节点的数组中存储第一关键字对应的第一值以及其他关键字对应的值,从而在数据库系统处理并发事务时保持了高并发,进而提高了数据库系统的吞吐量,并降低了数据库系统的数据索引的时间代价。
附图说明
图1是本公开实施例提供的数据库系统的示例图。
图2是本公开一实施例提供的数据处理方法的流程示意图。
图3是本公开实施例提供的3层学习型索引结构的示意图。
图4是本公开另一实施例提供的3层学习型索引结构的示意图。
图5是本公开另一实施例提供的数据处理方法的流程示意图。
图6是本公开一实施例提供的数据处理装置的示意性结构图。
图7是本公开另一实施例提供的数据处理装置的示意性结构图。
图8是本公开一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
在互联网大数据应用以及云计算大数据应用等场景中,通常要求对大规模数据进行快速访问。为此,在存储数据的同时,通常会为该数据创建相应的索引。通常情况下,可以基于键值对来为数据库中的数据建立索引。键值对,也可被称之为名值对或者属性值对,包括关键字(key)以及该关键字对应的值(value),该值通常可以是元数据,即,所存储和读取的数据。关键字用于对元数据(值)进行标识,元数据为描述数据的数据,用于描述数据库中所存储数据的属性(特征)信息,如元数据可以是数据库中所存储数据的文件名、或者该数据的存储地址指针等。
事务是查询并可能更新数据库中各种数据的程序执行单元,用户的一次存储或一次读取数据的过程可以理解为一个事务。例如,当同一时间存在多个用户请求对数据库系统中的某个节点写入键值对时(即,在处理并发事务时),如果一个事务通过移动该节点下的数组中的数据,为关键字预留出存储对应值的空隙,那么常采用写锁对该节点对应的内存页面上锁,待该关键字对应的值写入这个位置后,才会对该写锁进行释放,而在写锁被释放后,另外一个事务才能够按照上述过程完成其要写入的关键字对应的值的写入,以此类推,完成所有事务的键值对的写入。也就是说,下一个事务想要进行键值对的写入,需要等待上一个事务将写锁释放后才能进行,这会造成该节点的查询处于高竞争状态。因此,通过移动该节点下的数组中的数据,为关键字预留出存储对应值的空隙的这种方式,并不能够在处理并发事务时实现高并发,从而降低了数据库系统的吞吐量,且提高了数据库系统的数据索引的时间代价。
图1是本公开实施例提供的数据库系统的示例图。参见图1,数据库系统100可以包括数据库管理系统110和数据库120。
该数据库120是建立在计算机存储设备上,支持按照数据结构来组织、存储和管理数据的仓库。在本公开实施例中,并不限定承载数据库120的计算机存储设备的实现形式。数据库120可以是但不限于分布式数据库,还可以是内存数据库。
数据库管理系统110利用数据库引擎,能够对数据库110中的数据进行组织、存储、管理以及开发。数据库引擎能够处理与数据库120相关的事务,例如,设计并创建数据库120,保存数据库120所需的各种列表和文档等;为数据库120提供日常管理和维护,以优化数据库120的性能;调取数据库120中的数据。以数据库120为MySQL数据库为例,数据库引擎110例如可以为InnoDB。
为了便于处理与数据库120相关的事务,数据库管理系统110与数据库120之间可以建立通信连接,该通信连接可以是有线或无线网络连接。可选的,在部署实现上,数据库管理系统110与数据库120可以部署在同一物理设备上实现,也可以部署在不同物理设备上实现。当数据库管理系统110与数据库120部署在不同物理设备上实现时,两者可以部署同一局域网内,也可以部署在不同局域网内。
数据库管理系统110可以采用学习型索引的数据结构。数据库管理系统110在构建可学习索引结构的过程中,首先利用输入数据和对应位置之间的关系,构建累积分布函数,然后构建神经网络,利用深度学习或机器学习对已经构造好的累积分布函数进行训练和拟合,最后进行参数的调整,以获得训练好的学习索引模型。该学习索引模型能够完成关键字映射到索引位置这样一个过程。在本公开实施例中,并不限定数据库管理系统110使用的数据结构的实现形式,还可以采用多叉树作为索引的数据结构。
如图1所示,该数据库系统还可以包括客户端130。客户端130与数据库引擎110之间通信连接,该通信连接可以是有线或无线网络连接。可选的,客户端130可以与数据库引擎110处于同一局域网内,也可以处于不同局域网内。数据库管理系统110是客户端130与数据库120之间的媒介。
客户端130可以看作是数据库120面向用户提供的交互接口,允许用户通过客户端130访问数据库120。在需要访问数据库120时,客户端130可以向数据库管理系统110发送数据库访问请求,数据库管理系统110还可以响应客户端130的数据库访问请求为数据库120进行相应操作并向客户端130返回相应操作结果。
基于客户端130发送的数据库访问请求,数据库管理系统110利用数据库引擎,可以根据数据库访问请求确定操作类型以及关键字。操作类型可以包括增加、删除和查询,插入操作和删除操作可以统称为写操作,查询操作可以称为读操作。需要说明的是,关于数据库管理系统110确定操作类型以及关键字的实现方式,可以参考相关技术中的具体描述,在此不再赘述。对于读操作,数据库管理系统110利用数据库引擎,可以通过创建对应的读线程对数据库120进行具体操作。对于写操作,数据库引擎110利用数据库引擎,可以通过创建对应的写线程对数据库12进行具体操作。
下面结合本公开方案和图1所示的数据库系统,对数据存储的过程进行详细说明。
客户端130向数据库管理系统110发送数据库写入请求,数据库管理系统110利用数据库引擎,根据数据库写入请求,确定客户端130想要进行写操作,并确定客户端130想要写入的关键字。数据库管理系统110将该关键字输入其所采用的学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置,然后在叶子节点下的数组中的插入位置处的数据密度大于或等于预设阈值时,数据库管理系统110利用数据库引擎,在数据库120的内存中为插入位置创建缓冲区,最后数据库管理系统110利用数据库引擎,将关键字对应的值存储在缓冲区中,并将关键字映射到值在缓冲区的存储位置,至此完成客户端130的数据库写入请求操作。
下面结合本公开方案和图1所示的数据库系统,对数据读取的过程进行详细说明。
客户端130向数据库管理系统110发送数据库读取请求,数据库管理系统110利用数据库引擎,根据数据库写入请求,确定客户端130想要进行读操作,并确定客户端130想要读取的关键字。数据库管理系统110将该关键字输入其所采用的学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置,然后在叶子节点下的数组中的插入位置处,存在数据库120的内存中所创建的缓冲区时,数据库管理系统110利用数据库引擎,从缓冲区中读取关键字对应的值。若在叶子节点下的数组中的插入位置处,不存在数据库120的内存中所创建的缓冲区时,数据库管理系统110利用数据库引擎,从叶子节点下的数组读取关键字对应的值,至此完成客户端130的数据库读取请求操作。
下面结合图2至图5,对本公开实施例提供的数据处理方法进行更为详细的举例说明。
图2是本公开实施例提供的数据处理方法的流程示意图,该数据处理方法可以由图1所示的数据库管理系统110中的数据库引擎来执行。基于图1所示的客户端130发送的键值对的写入请求,数据库管理系统110响应于键值对的写入请求,利用数据库引擎,执行数据存储方法。如图2所示,该方法包括如下内容。
步骤S210,响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与第一关键字的位置范围对应的第一叶子节点,以及第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置。
该学习型索引结构可以基于深度学习获得,也可以基于机器学习获得,本公开实施例对此并不做具体限定。该学习型索引结构包括多种类型的节点,例如,非叶子节点(也可称之为内部节点)以及叶子节点,每个节点对应一个模型。每个非叶子节点对应的模型用于根据第一关键字的位置范围预测下游节点对应的模型,第一叶子节点对应的模型用于预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置。
在本公开实施例中,该学习型索引结构采用递归模型索引(Recursive-ModelIndexes,RMI)。RMI的结构是由多个模型组成的分层模型结构,第一层只有一个非叶子节点(也可称之为根节点)对应的模型,其余每一层包含多个模型,也就是说,最后一层包含多个叶子节点对应的模型,第一层和最后一层之间的多个中间层中的每一中间层均包含多个非叶子节点对应的模型。
每个叶子节点均对应一个数组,该数组由关键字对应的值构成,且这些关键字对应的值在数组中按序排列,所以该数组为排序数组。当需要插入一个新的关键字时,通过分层模型结构来预测新的关键字在排序数组中的插入位置,之所以要预测新的关键字在排序数组中的位置,是为了保证新的关键字在这个插入位置能够保持排序数组有序。
具体而言,RMI中的每个模型都以第一关键字作为输入,且上层模型均会得到第一关键字的映射位置,根据该第一关键字的映射位置选择下层模型,最后一层模型(即,第一叶子节点对应的模型)输出第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置。
每个节点对应的模型可以采用线性回归模型,但是本公开实施例对此并不做具体限定,除了线性回归模型以外,还可以采用其他机器学习模型或者深度学习模型,本领域技术人员可以根据实际需求进行不同的选择。
步骤S220,在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区。
第一插入位置处的数据密度大于或等于预设阈值时,这说明该数组的第一插入位置处可能已经被数据完全填充或者已经被数据部分填充,第一插入位置落在了连续无间隙的区域内或者间隙很小的区域内,从而导致该第一位置处无法再容纳数据。但是本公开实施例并不限定预设阈值的具体取值,本领域技术人员可以根据实际需求进行不同的选择。
通常情况下,为了将第一关键字对应的第一值插入第一位置处,可以移动数组中的数据,在第一位置处预留出空隙,以在该空隙处插入第一值。但是如背景技术中所述的,为保证数据一致性,移动数组中的数据时要对该第一叶子节点对应的内存页面上锁,但是这会使得第一叶子节点的查询处于高竞争状态,无法实现高并发,也就是说,当同一时间,存在另一个关键字对应的值想要插入到第一叶子节点下的数组中时,将无法同时进行索引操作。
因此,为了既能够实现高并发,又能够保证数据的一致性,可以在第一插入位置处为第一叶子节点创建第一缓冲区,第一缓冲区是从数据库的内存中申请得到的,用于临时存储关键字对应的值。这样,当同一时间,存在另一个关键字对应的值想要插入到第一叶子节点下的数组中时,可以直接进行索引操作,避免了第一叶子节点的查询处于高竞争状态,从而实现高并发,进而提高了数据库系统的吞吐量。此外,由于多个关键字的索引操作可以同时进行,因此,也降低了数据库系统的数据索引的时间代价。
如图3所示,以学习型索引结构为三层模型结构为例,对整个位置预测过程进行举例说明。第一层包括模型1.1,第二层包括模型2.1至模型2.n,第三层包括模型3.1至模型3.n。将第一关键字输入模型1.1中进行位置预测,得到与第一关键字的位置范围对应的模型2.1;将第一关键字输入模型2.1中进行位置预测,得到与第一关键字的位置范围对应的模型3.2,模型3.2即为第一叶子节点对应的模型;将第一关键字输入模型3.2中进行位置预测,得到第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置。
步骤S230,将第一关键字对应的第一值存储在第一缓冲区中,并将第一关键字映射到第一值在第一缓冲区的存储位置。
在一示例中,将第一值临时存储在第一缓冲区中,并将第一关键字映射到第一值在第一缓冲区的存储位置处。但是需要说明的是,本公开实施例并不具体限定第一关键字映射的方式,可以采用指针的形式,也可以采用其他形式,本领域技术人员可以根据实际需求进行不同的选择。
具体地,如图3所示的第一叶子节点下的数组中的I2等字符代表索引(index),V2等字符代表关键字对应的值(value)。
假如第一值的数据类型为浮点型,且第一值的插入位置被预测为数组的I2和I3之间,但是I2和I3之间并没有任何空隙可以插入第一值,所以在第一插入位置1处创建了第一缓冲区1,将第一值V2.5存储到第一缓冲区1中的I1位置。将第一关键字映射到第一值V2.5在第一缓冲区1的存储位置I1。
假如第一值的数据类型为整型,且第一值的插入位置被预测为数组的I9和I10之间,但是I9和I10之间并没有任何空隙可以插入第一值,所以在第一插入位置2处创建了第一缓冲区2,将第一值V10存储到第一缓冲区2中的I1位置。将第一关键字映射到第一值V10在第一缓冲区2的存储位置I1。
本公开实施例提供了一种数据处理的方案,通过学习型索引结构,预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置,并在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区,以存储第一关键字对应的第一值,从而避免通过移动第一插入位置处的数组中的数据,为第一关键字预留出存储第一值的空隙。在移动第一插入位置处的数组中的数据时,为保证数据的一致性,可以对第一叶子节点对应的内存页面上锁,但是其他键值对想要存储到第一叶子节点的数组中,要等待锁被释放后才能进行,因此,通过为第一叶子节点创建第一缓冲区,能够在同一时间向第一叶子节点的数组中存储第一关键字对应的第一值以及其他关键字对应的值,从而在数据库系统处理并发事务时保持了高并发,进而提高了数据库系统的吞吐量,并降低了数据库系统的数据索引的时间代价。
在公开的一实施例中,第一缓冲区除了可以存储第一关键字对应的第一值以外,还可以存储其他关键字对应的值,其他关键字的位置范围也对应于第一叶子节点,且其他关键字对应的值在第一叶子节点下的数组中的插入位置也为第一插入位置。也就是说,第一缓冲区创建后,第一叶子节点下的数组在第一插入位置处将不会插入新的关键字对应的值,新的关键字对应的值都将插入到第一缓冲区中。下面以第三关键字为例进行说明。
具体而言,将第三关键字输入学习型索引结构中进行位置预测,得到与第三关键字的位置范围对应的第一叶子节点,以及第三关键字对应的第三值在第一叶子节点下的数组中的第一插入位置;将第三关键字对应的第三值存储在第一缓冲区中,并将第三关键字映射到第三值在第一缓冲区的存储位置。需要说明的是,这个过程与图2所示的实施例的具体细节相同,在此不再赘述。
如图3所示,假如第三值的数据类型为浮点型,且第三值的插入位置也被预测为数组的I2和I3之间,但是I2和I3之间并没有任何空隙可以插入第三值,所以可以直接将第三值V2.8存储到第一缓冲区1中的I3位置。将第三关键字映射到第三值V2.8在第一缓冲区1的存储位置I3。可以看出,第一值与第三值在第一缓冲区1中是按序排列的。
随着存储到第一缓冲区中的关键字对应的值越来越多,第一缓冲区的存储空间会被填充满,使得第一缓冲区将无法再存储其他关键字对应的值,因此,可以将第一缓冲区中存储的关键字对应的值清空,以存储其他关键字对应的值。
可以将第一缓冲区中存储的关键字对应的值原地插入第一叶子节点下的数组中的第一插入位置处,但是由于第一插入位置处已经没有任何空隙可以插入关键字对应的值,因此,可以从第一插入位置处,向前和/或向后移动第一叶子节点下的数组中的数据,以在第一位置处为第一叶子节点预留出预设大小的存储空间;再将第一缓冲区中的关键字对应的值存储在该预设大小的存储空间中,并将关键字映射到值在该预设大小的存储空间的对应存储位置。
本公开实施例并不具体限定第一叶子节点下的数组中的数据的移动距离,该移动距离可以根据第一缓冲区中的关键字对应的值的多少来确定,例如,第一缓冲区中只能够存储三个值,则该移动距离为至少为三个值对应的位置。如图3所示,将第一缓冲区1中的值V2向前移动一个位置,再将V3向后移动两个位置,或者直接将V3向后移动三个位置,此时在V2与V3之间预留出三个位置大小的存储空间,用于存储第一缓冲区中的三个值。
因此,为了能够通过移动数据的方式来形成预设大小的存储空间,第一叶子节点下的数组为具有间隙的数组。在第一叶子节点的数组空间无法再实现数据的移动时,对数组空间进行扩容,以继续保持该数组为具有间隙的数组。
由于第一缓冲区是基于第一插入位置而创建的,且第一缓冲区中的值是按序排列的,所以第一缓冲区中的值可以原地插入(in-place)到第一插入位置处,也就是说,第一缓冲区中存储的值所形成的数组并不是一个新的数组,其仍属于第一叶子节点下的数组,只是临时形成在第一缓冲区中而已。相较于异地插入(out-place)的情况,缓冲区是一个具有固定大小的存储空间,在缓冲区被值填充满后,缓冲区中存储的值所形成的数组需要与叶子节点下的数组进行重新排序,也就是说,这个缓冲区中存储的值所形成的数组是一个新的数组,其独立于叶子节点而存在。
上述实施例所描述的均是值在第一叶子节点下的数组中的插入位置为第一插入位置的情况,如果其他关键字对应的值在第一叶子节点下的数组中的插入位置为另外一个与第一插入位置不同的位置,且该位置也没有空隙可以容纳对应的值时,也可以在此位置为第一叶子节点创建缓冲区,以存储其他关键字对应的值。
具体而言,将第二关键字输入学习型索引结构中进行位置预测,得到与第二关键字的位置范围对应的第一叶子节点,以及第二关键字对应的第二值在第一叶子节点下的数组中的第二插入位置;在第一叶子节点下的数组中的第二插入位置处的数据密度大于或等于预设阈值时,在第二插入位置处为第一叶子节点创建第二缓冲区;将第二关键字对应的第二值存储在第二缓冲区中,并将第二关键字映射到第二值在第二缓冲区的存储位置。
第二关键字的位置范围对应的叶子节点与第一关键字的位置范围对应的叶子节点相同,均为第一叶子节点。下面通过图4对第一插入位置和第二插入位置进行说明,第一关键字对应的第一值的插入位置为I2与I3之间的第一插入位置,第二关键字对应的第二值的插入位置为I7与I8之间的第二插入位置,第一插入位置处创建了第一缓冲区,用于存储第一值V2.5,将第一关键字映射到第一值V2.5在第一缓冲区的存储位置I1;第二插入位置处创建了的第二缓冲区,用于存储第二值V9.5,将第二关键字映射到第二值V9.5在第二缓冲区的存储位置I1。
也就是说,可以为每个叶子节点创建多个缓冲区,当数据密度大于或等于预设阈值,且存在键值对的写入请求时,即可在数组的任意两个数据之间插入缓冲区。
同理,随着存储到第二缓冲区中的关键字对应的值越来越多,第二缓冲区的存储空间会被填充满,使得第二缓冲区将无法再存储其他关键字对应的值,因此,可以将第二缓冲区中存储的关键字对应的值清空,以存储其他关键字对应的值。清空第二缓冲区的过程与清空第一缓冲区的过程相同,具体细节请参见清空第一缓冲区的过程,在此不再赘述。
上述实施例所提及的均是在叶子节点下的数组中的插入位置处的数据密度大于或等于预设阈值时,具体该如何存储关键字对应的值。在叶子节点下的数组中的插入位置处的数据密度小于预设阈值时,将关键字对应的值存储在叶子节点下的数组中,并将关键字映射到值在叶子节点的存储位置。
也就是说,通过学习型索引结构,最终能够得到关键字对应的值在叶子节点下的数组中的插入位置,该关键字在这个插入位置能够保持叶子节点下的数组有序,并且这个插入位置具有空隙,该空隙足以将该关键字对应的值插入其中(即,叶子节点下的数组中的插入位置处的数据密度小于预设阈值),则直接将该关键字对应的值插入到空隙中即可。
本公开实施例所提供的数据处理方法除了包括上述实施例所提及的数据存储过程以外,还包括数据读取过程。基于图1所示的客户端130发送的键值对的读取请求,数据库管理系统110响应于键值对的读取请求,利用数据库引擎,执行数据读取方法。如图5所示,该方法包括如下内容。
步骤S510,将关键字输入学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置。
该过程与图2所示的步骤S210相同,在此不再赘述,具体细节请参见图2所示的实施例。
步骤S520,在叶子节点下的数组中的插入位置处存在缓冲区时,从缓冲区中读取关键字对应的值。
由于叶子节点下的数组中的数组空间比较大,而缓冲区的存储空间比较小,因此,在进行键值对的读取时,先确定关键字对应的值在叶子节点下的数组中的插入位置,然后判断该插入位置处是否存在缓冲区,如果该插入位置处存在缓冲区,则从缓冲区中读取关键字对应的值,否则,执行下述步骤S530,从而节省了读取数据所花费的时间。
步骤S530,在叶子节点下的数组中的插入位置处不存在缓冲区时,从叶子节点下的数组读取关键字对应的值。
本公开实施例提供了一种数据处理的方案,通过学习型索引结构,预测关键字对应的值在叶子节点下的数组中的插入位置,并判断在叶子节点下的数组中的插入位置处是否存在缓冲区,在叶子节点下的数组中的插入位置处存在缓冲区时,直接从缓冲区中读取关键字对应的值,否则,从叶子节点下的数组读取关键字对应的值,从而节省了读取数据所花费的时间。
上文结合图1至图5,详细描述了本公开的方法实施例,下面结合图6和图7,详细描述本公开的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图6是本公开一实施例提供数据处理装置600的示意性结构图。图6的装置600可以包括:第一索引模块610、第一创建模块620和第一存储模块630。下面对这些模块进行详细介绍。
第一索引模块610配置为响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与第一关键字的位置范围对应的第一叶子节点,以及第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置,其中,学习型索引结构中的每个非叶子节点对应的模型用于根据第一关键字的位置范围预测下游节点对应的模型,学习型索引结构中的第一叶子节点对应的模型用于预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置。
创建模块620配置为在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区。
第一存储模块630配置为将第一关键字对应的第一值存储在第一缓冲区中,并将第一关键字映射到第一值在第一缓冲区的存储位置。
本公开实施例提供了一种数据处理的方案,通过学习型索引结构,预测第一关键字对应的第一值在第一叶子节点下的数组中的第一插入位置,并在第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在第一插入位置处为第一叶子节点创建第一缓冲区,以存储第一关键字对应的第一值,从而避免通过移动第一插入位置处的数组中的数据,为第一关键字预留出存储第一值的空隙。在移动第一插入位置处的数组中的数据时,为保证数据的一致性,可以对第一叶子节点对应的内存页面上锁,但是其他键值对想要存储到第一叶子节点的数组中,要等待锁被释放后才能进行,因此,通过为第一叶子节点创建第一缓冲区,能够在同一时间向第一叶子节点的数组中存储第一关键字对应的第一值以及其他关键字对应的值,从而在数据库系统处理并发事务时保持了高并发,进而提高了数据库系统的吞吐量,并降低了数据库系统的数据索引的时间代价。
在一实施例中,第一索引模块610还被配置为将第二关键字输入学习型索引结构中进行位置预测,得到与第二关键字的位置范围对应的第一叶子节点,以及第二关键字对应的第二值在第一叶子节点下的数组中的第二插入位置。
在一实施例中,创建模块620还被配置为在第一叶子节点下的数组中的第二插入位置处的数据密度大于或等于预设阈值时,在第二插入位置处为第一叶子节点创建第二缓冲区。
在一实施例中,第一存储模块630还被配置为将第二关键字对应的第二值存储在第二缓冲区中,并将第二关键字映射到第二值在第二缓冲区的存储位置。
在一实施例中,第一索引模块610还被配置为将第三关键字输入学习型索引结构中进行位置预测,得到与第三关键字的位置范围对应的第一叶子节点,以及第三关键字对应的第三值在第一叶子节点下的数组中的第一插入位置。
在一实施例中,第一存储模块630还被配置为将第三关键字对应的第三值存储在第一缓冲区中,并将第三关键字映射到第三值在第一缓冲区的存储位置。
在一实施例中,在第一缓冲区的关键字对应的值填充满第一缓冲区的存储空间时,装置600还包括:移动模块640,配置为从第一插入位置处,向前和/或向后移动第一叶子节点下的数组中的数据,以在第一位置处为第一叶子节点预留出预设大小的存储空间;转存模块650,配置为将第一缓冲区中的关键字对应的值存储在预设大小的存储空间中,并将关键字映射到值在预设大小的存储空间的对应存储位置。
在一实施例中,装置600还包括:第二存储模块660,配置为在第一叶子节点下的数组中的第一插入位置处的数据密度小于预设阈值时,将第一关键字对应的第一值存储在第一叶子节点下的数组中,并将第一关键字映射到第一值在第一叶子节点的存储位置。
在一实施例中,装置600还包括:读取模块670,配置为响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置;在叶子节点下的数组中的插入位置处存在缓冲区时,从缓冲区中读取关键字对应的值;在叶子节点下的数组中的插入位置处不存在缓冲区时,从叶子节点下的数组读取关键字对应的值。
在一实施例中,在第一叶子节点下的数组为具有间隙的数组。
图7是本公开另一实施例提供数据处理装置700的示意性结构图。图7的装置700可以包括:第二索引模块710、第一读取模块720和第二读取模块730。下面对这些模块进行详细介绍。
第二索引模块710配置为响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与关键字的位置范围对应的叶子节点,以及关键字对应的值在叶子节点下的数组中的插入位置,其中,学习型索引结构中的每个非叶子节点对应的模型用于根据关键字的位置范围预测下游节点对应的模型,学习型索引结构中的叶子节点对应的模型用于预测关键字对应的值在叶子节点下的数组中的插入位置。
第一读取模块720配置为在叶子节点下的数组中的插入位置处存在缓冲区时,从缓冲区中读取关键字对应的值。
第二读取模块730配置为在叶子节点下的数组中的插入位置处不存在缓冲区时,从叶子节点下的数组读取关键字对应的值。
本公开实施例提供了一种数据处理的方案,通过学习型索引结构,预测关键字对应的值在叶子节点下的数组中的插入位置,并判断在叶子节点下的数组中的插入位置处是否存在缓冲区,在叶子节点下的数组中的插入位置处存在缓冲区时,直接从缓冲区中读取关键字对应的值,否则,从叶子节点下的数组读取关键字对应的值,从而节省了读取数据所花费的时间。
图8是本公开一实施例提供的电子设备800的结构示意图。装置800例如可以是具有计算功能的计算设备。比如,装置800可以是服务器。装置800可以包括存储器810和处理器820。存储器810可用于存储可执行代码。处理器820可用于执行存储器810中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该装置800还可以包括网络接口830,处理器820与外部设备的数据交换可以通过该网络接口830实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与所述第一关键字的位置范围对应的第一叶子节点,以及所述第一关键字对应的第一值在所述第一叶子节点下的数组中的第一插入位置,其中,所述学习型索引结构中的每个非叶子节点对应的模型用于根据所述第一关键字的位置范围预测下游节点对应的模型,所述学习型索引结构中的所述第一叶子节点对应的模型用于预测所述第一关键字对应的第一值在所述第一叶子节点下的数组中的第一插入位置;
在所述第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在所述第一插入位置处为所述第一叶子节点创建第一缓冲区;
将所述第一关键字对应的第一值存储在所述第一缓冲区中,并将所述第一关键字映射到所述第一值在所述第一缓冲区的存储位置。
2.根据权利要求1所述的方法,其特征在于,还包括:
将第二关键字输入所述学习型索引结构中进行位置预测,得到与所述第二关键字的位置范围对应的所述第一叶子节点,以及所述第二关键字对应的第二值在所述第一叶子节点下的数组中的第二插入位置;
在所述第一叶子节点下的数组中的第二插入位置处的数据密度大于或等于预设阈值时,在所述第二插入位置处为所述第一叶子节点创建第二缓冲区;
将所述第二关键字对应的第二值存储在所述第二缓冲区中,并将所述第二关键字映射到所述第二值在所述第二缓冲区的存储位置。
3.根据权利要求1所述的方法,其特征在于,还包括:
将第三关键字输入所述学习型索引结构中进行位置预测,得到与所述第三关键字的位置范围对应的所述第一叶子节点,以及所述第三关键字对应的第三值在所述第一叶子节点下的数组中的所述第一插入位置;
将所述第三关键字对应的第三值存储在所述第一缓冲区中,并将所述第三关键字映射到所述第三值在所述第一缓冲区的存储位置。
4.根据权利要求1所述的方法,其特征在于,在所述第一缓冲区的关键字对应的值填充满所述第一缓冲区的存储空间时,所述方法还包括:
从所述第一插入位置处,向前和/或向后移动所述第一叶子节点下的数组中的数据,以在所述第一位置处为所述第一叶子节点预留出预设大小的存储空间;
将所述第一缓冲区中的关键字对应的值存储在所述预设大小的存储空间中,并将所述关键字映射到所述值在所述预设大小的存储空间的对应存储位置。
5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
在所述第一叶子节点下的数组中的第一插入位置处的数据密度小于所述预设阈值时,将所述第一关键字对应的第一值存储在所述第一叶子节点下的数组中,并将所述第一关键字映射到所述第一值在所述第一叶子节点的存储位置。
6.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
响应于键值对的读取请求,将关键字输入所述学习型索引结构中进行位置预测,得到与所述关键字的位置范围对应的叶子节点,以及所述关键字对应的值在所述叶子节点下的数组中的插入位置;
在所述叶子节点下的数组中的插入位置处存在缓冲区时,从所述缓冲区中读取所述关键字对应的值;
在所述叶子节点下的数组中的插入位置处不存在所述缓冲区时,从所述叶子节点下的数组读取所述关键字对应的值。
7.根据权利要求1至4中任一项所述的方法,其特征在于,在所述第一叶子节点下的数组为具有间隙的数组。
8.一种数据处理方法,其特征在于,包括:
响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与所述关键字的位置范围对应的叶子节点,以及所述关键字对应的值在所述叶子节点下的数组中的插入位置,其中,所述学习型索引结构中的每个非叶子节点对应的模型用于根据所述索引关键字的位置范围预测下游节点对应的模型,所述学习型索引结构中的所述叶子节点对应的模型用于预测所述关键字对应的值在所述叶子节点下的数组中的插入位置;
在所述叶子节点下的数组中的插入位置处存在缓冲区时,从所述缓冲区中读取所述关键字对应的值;
在所述叶子节点下的数组中的插入位置处不存在所述缓冲区时,从所述叶子节点下的数组读取所述关键字对应的值。
9.一种数据处理装置,其特征在于,包括:
第一索引模块,配置为响应于键值对的写入请求,将第一关键字输入学习型索引结构中进行位置预测,得到与所述第一关键字的位置范围对应的第一叶子节点,以及所述第一关键字对应的第一值在所述第一叶子节点下的数组中的第一插入位置,其中,所述学习型索引结构中的每个非叶子节点对应的模型用于根据所述第一关键字的位置范围预测下游节点对应的模型,所述学习型索引结构中的所述第一叶子节点对应的模型用于预测所述第一关键字对应的第一值在所述第一叶子节点下的数组中的第一插入位置;
创建模块,配置为在所述第一叶子节点下的数组中的第一插入位置处的数据密度大于或等于预设阈值时,在所述第一插入位置处为所述第一叶子节点创建第一缓冲区;
第一存储模块,配置为将所述第一关键字对应的第一值存储在所述第一缓冲区中,并将所述第一关键字映射到所述第一值在所述第一缓冲区的存储位置。
10.一种数据处理装置,其特征在于,包括:
第二索引模块,配置为响应于键值对的读取请求,将关键字输入学习型索引结构中进行位置预测,得到与所述关键字的位置范围对应的叶子节点,以及所述关键字对应的值在所述叶子节点下的数组中的插入位置,其中,所述学习型索引结构中的每个非叶子节点对应的模型用于根据所述关键字的5位置范围预测下游节点对应的模型,所述学习型索引结构中的所述叶子节点对应的模型用于预测所述关键字对应的值在所述叶子节点下的数组中的插入位置;
第一读取模块,配置为在所述叶子节点下的数组中的插入位置处存在缓冲区时,从所述缓冲区中读取所述关键字对应的值;
0第二读取模块,配置为在所述叶子节点下的数组中的插入位置处不存在所述缓冲区时,从所述叶子节点下的数组读取所述关键字对应的值。
11.一种电子设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211597103.1A CN115878625A (zh) | 2022-12-09 | 2022-12-09 | 数据处理方法和装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211597103.1A CN115878625A (zh) | 2022-12-09 | 2022-12-09 | 数据处理方法和装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878625A true CN115878625A (zh) | 2023-03-31 |
Family
ID=85767240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211597103.1A Pending CN115878625A (zh) | 2022-12-09 | 2022-12-09 | 数据处理方法和装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878625A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089434A (zh) * | 2023-04-10 | 2023-05-09 | 北京奥星贝斯科技有限公司 | 一种数据存储方法、装置、存储介质及电子设备 |
-
2022
- 2022-12-09 CN CN202211597103.1A patent/CN115878625A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089434A (zh) * | 2023-04-10 | 2023-05-09 | 北京奥星贝斯科技有限公司 | 一种数据存储方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
US11182356B2 (en) | Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems | |
CN106886375B (zh) | 存储数据的方法和装置 | |
CN102640125B (zh) | 分布式内容存储和取回 | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
US7890541B2 (en) | Partition by growth table space | |
CN108140040A (zh) | 存储器中数据库的选择性数据压缩 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN114817341B (zh) | 访问数据库的方法和装置 | |
CN113568582A (zh) | 数据管理方法、装置和存储设备 | |
CN102542036B (zh) | 使用优化的表 | |
CN115167778A (zh) | 存储的管理方法、系统及服务器 | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
CN107220248B (zh) | 一种用于存储数据的方法和装置 | |
CN111708894A (zh) | 一种知识图谱创建方法 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
WO2022121274A1 (zh) | 一种存储系统中元数据管理方法、装置及存储系统 | |
CN104133970A (zh) | 一种数据空间管理方法及装置 | |
CN114297196A (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN113204520A (zh) | 一种基于分布式文件系统的遥感数据快速并发读写方法 | |
CN111930684A (zh) | 基于hdfs的小文件处理方法、装置、设备及存储介质 | |
CN111752941A (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 |