CN110990377A - 一种数据装载方法、装置、服务器及存储介质 - Google Patents
一种数据装载方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110990377A CN110990377A CN201911149047.3A CN201911149047A CN110990377A CN 110990377 A CN110990377 A CN 110990377A CN 201911149047 A CN201911149047 A CN 201911149047A CN 110990377 A CN110990377 A CN 110990377A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- loading
- loaded
- client
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据装载方法、装置、服务器及存储介质。该方法包括:接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。上述技术方案通过将至少一个客户端的数据缓存至页缓存结点,由对应的页插入线程装载页缓存结点中的待装载数据,实现对一个或多个客户端的数据进行装载,并且以页为单位进行装载,提高数据装载效率。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种数据装载方法、装置、服务器及存储介质。
背景技术
当数据库业务发生变更或者更换数据库系统时,往往需要将大量的数据迁移至更新后的数据存储结构中,例如,B+树是数据库中一种常用的数据存储结构。向B+树装载数据的过程需要针对每一条记录,先定位到B+树的数据页,再插入记录,记录的插入操作会影响到后续记录的定位操作,即,上一个记录插入完毕后才能进行下一个记录的定位。这种对每一条记录依次进行定位和插入的串行装载方式,不适用于大量的数据、多个装载实例、多个客户端的情况,数据装载效率低下。
发明内容
本发明提供了一种数据装载方法、装置、服务器及存储介质,以提高数据装载的效率。
第一方面,本发明实施例提供了一种数据装载方法,包括:
接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;
通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
进一步的,在所述接收至少一个客户端的待装载数据之前,还包括:
接收到首个客户端的数据装载请求,则初始化数据装载环境。
进一步的,所述初始化数据装载环境包括:
确定目标装载表并创建所述目标装载表对应的页插入线程;
为所述目标装载表分配一批页缓存结点;
针对所述目标装载表生成虚会话,所述虚会话用于处理所述至少一个客户端的数据装载请求;
为所述目标装载表上全局锁;
将所述目标装载表的客户端引用计数置为1。
进一步的,还包括:
每接收到一个客户端的数据装载请求,所述客户端引用计数加1;
每装载完一个客户端的待装载数据,所述客户端引用计数减1。
进一步的,还包括:
若所述客户端引用计数为0,则释放所述目标装载表的全局锁。
进一步的,所述通过所述页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构,包括:
通过所述页插入线程提取页缓存结点作为待插入页,并生成所述待插入页对应的键值;
若所述预设数据结构叶子层的最右端为非根页,则将所述待插入页作为所述非根页的右兄弟,并为所述非根页添加第一虚记录,所述第一虚记录指向所述待插入页。
进一步的,所述通过所述页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构,包括:
若所述预设数据结构的叶子层的最右端为根页,则将所述根页中的数据转移至新页,并为所述根页添加第二虚记录,所述第二虚记录指向所述新页;
将所述待插入页作为所述新页的右兄弟,为所述新页添加第三虚记录,所述第三虚记录指向所述待插入页。
第二方面,本发明实施例提供了一种数据装载装置,包括:
缓存模块,用于接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;
装载模块,用于通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
第三方面,本发明实施例提供了一种服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据装载方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据装载方法。
本发明实施例提供了一种数据装载方法、装置、服务器及存储介质。该方法包括:接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。上述技术方案通过将至少一个客户端的数据缓存至页缓存结点,由对应的页插入线程装载页缓存结点中的待装载数据,实现对一个或多个客户端的数据进行装载,并且以页为插入预设数据结构的数据单位,提高数据装载效率。
附图说明
图1为本发明实施例一提供的一种数据装载方法的流程图;
图2为本发明实施例一中的数据装载方法的实现示意图;
图3为本发明实施例二提供的一种数据装载方法的流程图;
图4为本发明实施例三提供的一种数据装载装置的结构示意图;
图5为本发明实施例四提供的一种服务器的硬件结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据装载方法的流程图,本实施例可适用于将客户端发送的待装载数据装载至预设数据结构的情况。具体的,该数据装载方法可以由数据装载装置执行,该数据装载装置可以通过软件和/或硬件的方式实现,并集成在服务器中。进一步的,服务器包括但不限定于:工业集成服务器、系统后台服务器以及云端服务器。
如图1所示,该方法具体包括如下步骤:
S110、接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点。
具体的,向服务器请求装载数据的客户端可以为一个或多个,当客户端为多个时,服务器可接收多个客户端的数据装载请求并对待装载数据进行并行处理。不同客户端的待装载数据可能对应于不同的目标装载表,也可能对应于同一目标装载表的不同页缓存结点。例如,服务器接收到客户端1的数据装载请求后,将客户端1的待装载数据发送至装载表1的页缓存结点A中;服务器接收到客户端2的数据装载请求后,将客户端2的待装载数据发送至装载表1的页缓存结点B中;服务器接收到客户端3的数据装载请求后,将客户端3的待装载数据发送至装载表2的页缓存结点A中。页缓存结点中的待装载数据通过对应的页插入线程可以形成数据页,以页为单位插入预设数据结构。将待装载数据缓存至页缓存结点的过程,可以理解为在定位预设数据结构之前对待装载数据进行预处理的过程。
S120、通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
具体的,页插入线程将对应的目标装载表的页缓存结点中的待装载数据以页为单位插入预设数据结构,从而完成数据装载。本实施例中的预设数据结构是指,在现有技术中是以记录为单位装载数据的数据结构,例如B+树。当数据库采用B+树作为数据存储结构时,如果以一条记录为一个独立的插入单位,向B+树装载数据时,对每一条记录都需要先定位B+树数据页、再插入该条记录,在此过程中,插入记录的操作会影响到对后续的记录的定位操作,即,上一条记录必须插入完毕才能对下一个记录进行定位操作,这种串行的装载方式不适合多个装载实例同时向同一张表中装载数据。而本实施例针对预设数据结构,通过将待装载数据先发送至页缓存结点、再利用目标装载表对应的页插入线程以页为单位插入到预设数据结构中,提高了数据装载效率。以下实施例均以B+树作为预设数据结构进行说明。
本实施例中,至少一个客户端的待装载数据可以并行发送到目标装载表的页缓存结点上,目标装载表为至少一个,每个目标装载表对应于一个独立的页插入线程,各页插入线程可以并行执行如下操作:分配一个空白的B+树页,将对应的页缓存结点上的数据写入该空白的B+树页,然后将所有的B+树页(以页为单位)逐个插入到B+树上,从而提高数据装载的效率。
进一步的,在S110之前,还包括:初始化数据装载环境。例如,创建目标装载表对应的页插入线程、针对目标装载表生成虚会话、为目标装载表上全局锁、为目标装载表分配一批页缓存结点等。图2为本发明实施例一中的数据装载方法的实现示意图。如图2所示,本实施例将至少一个客户端(装载实例)的待装载数据先缓存至页缓存结点,对所有待插入数据进行预处理,再分别由不同的页插入线程将对应的页缓存结点上的数据写入B+树页,从而以页为单位插入B+树。其中,根据B+树中根页的位置,可以完成分裂操作。通过相互独立的页插入线程可以对待装载数据进行并行的预处理,有效提高了数据处理的效率。
需要说明的是,将B+树页以页为单位插入B+树的过程是串行的,但由于B+树页中的数据都是按照页缓存结点存储并经过页插入线程整理成为以页为单位的,因此插入B+树的过程不需要长时间独占B+树,简单高效。
本实施例的数据装载方法,不再以记录为单位插入待装载数据,而是将至少一个客户端的数据缓存至页缓存结点,由对应的页插入线程将页缓存结点中的待装载数据插入预设数据结构,实现对一个或多个客户端的数据进行装载,并且以页为单位进行装载,提高数据装载效率。
实施例二
图3为本发明实施例二提供的一种数据装载方法的流程图。本实施例是在上述实施例的基础上进行优化,对初始化装载环境、通过页插入线程将页缓存结点中的待装载数据形成数据页并插入预设数据结构中的过程进行具体描述。需要说明的是,本实施例以B+树作为预设数据结构进行说明,未在本实施例中详尽描述的技术细节可参见上述任意实施例。
具体的,如图3所示,该方法具体包括如下步骤:
S201、接收到首个客户端的数据装载请求,则初始化数据装载环境。
具体的,服务器在接收到第一个客户端的数据装载请求后,初始化服务器端的装载环境。
进一步的,所述初始化数据装载环境包括:确定目标装载表并创建所述目标装载表对应的页插入线程;为所述目标装载表分配一批页缓存结点;针对所述目标装载表生成虚会话,所述虚会话用于处理所述至少一个客户端的数据装载请求;为所述目标装载表上全局锁;将所述目标装载表的客户端引用计数置为1。
示例性的,服务器在全局缓存中为每个目标装载表申请一批页缓存结点,页缓存结点的结构与预设数据结构的结构相同。对于一个目标装载表,其对应的页缓存结点具有与B+树一致的结构,从而该目标装载表的所有页缓存结点可作为一个数据页,通过页插入线程按照一致的结构直接写入到空白的B+树页中。
示例性的,服务器为每一个目标装载表分别创建一个页插入线程,页插入线程用于对预设数据结构进行定位,然后以页为单位,将页缓存结点中的待装载数据插入预设数据结构,在插入过程中,可能需要完成数据结构的分裂调整。同一个目标装载表(例如装载表1)生成的所有数据页,即所有的装载实例都统一由该目标装载表(装载表1)对应的页插入线程进行处理,该页插入线程为该目标装载表提供统一的页插入功能。各页插入线程可并行处理各自的装载任务,互不干扰。
示例性的,在初始化的过程中,确定各个客户端的待装载数据对应的目标装载表,生成一个虚会话可用于处理各个客户端的数据装载请求,从而实现并行预处理;为目标装载表上全局锁,使服务器处理其他客户端的数据时只能对该目标装载表进行查询而不能修改其中的数据,保证目标装载表的数据安全和可靠性;将目标装载表的相关信息登记到全局缓存里;将目标装载表的客户端引用计数置为1,表示该目标装载表当前与一个客户端关联。后续服务器再接收到其他客户端向该目标表装载数据的请求时,基于当前的虚会话处理即可,无需再次初始化。
S202、每接收到一个客户端的数据装载请求,所述客户端引用计数加1。
具体的,在初始化数据装载环境之后,每接收到一个客户端的数据装载请求,该客户端对应的目标装载表的客户端引用计数加1。客户端引用计数表示当前与该目标装载表关联的客户端的数量。
进一步的,每当接收到客户端的数据装载请求时,先查找是缓存空间中是否存在目标装载表,如果是则无需初始化,只需将目标装载表的客户端引用计数+1;否则需要执行上述的初始化操作。
S203、接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点。
S204、通过所述页插入线程提取当前客户端对应的页缓存结点作为待插入页,并生成所述待插入页对应的键值。
具体的,对于当前的目标装载表,页插入线程分配空白的B+树页,并将对应的目标装载表的页缓存结点中的数据写入该空白的B+树页,形成一个待插入页(即形成一个数据页),在此过程中为待插入页中的每一条记录设置键值,数据装载之后通过键值可以在B+树中查找和定位具体的记录。键值由页插入线程生成,其可以是根据服务器接收到各装载实例数据的先后顺序生成,即,页插入线程分别为各个装载实例中的记录分配B+树的键值。
可选的,对于一个目标装载表,其所有的页缓存结点构成一个待插入页链表,每次提取其待插入页链表中的一个或多个页缓存结点并插入B+树,插入B+树的过程具体为先打开B+树,定位到叶子层的最右端的一个数据页,然后执行S205。
S205、所述预设数据结构叶子层的最右端是否为根页?若是,则执行S207;若否,则执行S206。
具体的,如果B+树叶子层的最右端为根页,则需要分裂,否则,直接插入所述待插入页即可。
S206、将所述待插入页作为所述非根页的右兄弟,并为所述非根页添加第一虚记录,所述第一虚记录指向所述待插入页。
具体的,对于不需要分裂的情况,将待插入页直接插入,作为叶子层的最右端的右兄弟即可,并为叶子层的最右端添加第一虚记录,指向新插入的右兄弟,符合B+树的数据存储结构。
需要说明的是,虚记录是指向叶子结点的指针,记录在中间层结点,可以理解为父亲结点指向儿子结点的指针虚记录。本实施例中的“第一”、“第二”、“第三”仅用于区分不同步骤中添加的虚记录,而不代表各虚记录的先后顺序或在数据结构中的地位等。
S207、将所述根页中的数据转移至新页,并为所述根页添加第二虚记录,所述第二虚记录指向所述新页;将所述待插入页作为所述新页的右兄弟,为所述新页添加第三虚记录,所述第三虚记录指向所述待插入页。
具体的,对于需要分裂的情况,先将根页中的数据转移至新页,并为根页添加第二虚记录,指向新页;然后将待插入页作为新页的右兄弟,并为新页添加第三虚记录,指向新插入的右兄弟,符合B+树的数据存储结构。
S208、待插入页链表是否为空,如果非空,则返回S204,继续提取页缓存结点中的待装载数据;如果为空,则执行S209。
需要说明的是,各客户端的待装载数据发送至目标装载表的页缓存结点的过程可以并行执行,各页缓存结点中的待装载数据插入B+树的过程由页插入线程串行执行。此外,每个页插入线程对应于一个目标装载表,各页插入线程之间串行执行S204-S207。
S209、每装载完一个客户端的待装载数据,所述客户端引用计数减1。
具体的,页插入线程装载完数据后,如果检测到当前客户端的全部数据装载完毕,则通知服务器,服务器结束该客户端对应的数据装载任务,将对应的目标装载表的客户端引用计数减1,并清理与该客户端的会话上的相关环境。
S210、客户端引用计数是否为0?若是,则执行S211;若否,则执行S212。
具体的,页插入线程根据客户端引用计数可以判断是否需要清理装载环境。若客户端引用计数大于0,表明还有其他装载实例需要向该目标装载表装载数据,该目标装载表的装载环境还正在使用中,服务器不需要清理该目标装载表的装载环境,执行S212;若客户端引用计数为0,表明该目标装载表的所有装载任务均已完成,该目标装载表的装载环境不再使用,执行S211。
S211、清理目标装载表的装载环境。
具体的,每个目标装载表对应于一个客户端引用计数,对于客户端引用计数为0的目标装载表,释放目标装载表的全局锁、清理服务器端的装载环境。例如销毁该目标装载表的相关环境,包括提交事务、释放锁、释放缓存空间等。
S212、当前客户端的数据装载完成。
基于本实施例的装载方法,在Intel(R)Xeon(R)CPU E5-26402.50GHz、内存64GB、7200转/分机械硬盘、linux操作系统的环境下进行多次测试,装载数据量5000000行,数据大小150MB。采用以记录为单位的数据装载方式平均耗时3179ms,而采用上述实施例的装载方法,平均耗时1769ms,通过以页为单位对数据并行处理,大幅度提升了装载效率,性能越优。
本发明实施例二提供的一种数据装载方法,在上述实施例的基础上进行优化,按照客户端引用计数和待插入页链表实现待装载数据的提取和装载环境的及时清理,提高数据装载的性能;通过页插入线程分配空白B+树页、向空白B+树页写入页缓存结点中的待装载数据、将B+树页插入B+树,减少了B+树被独占的时间;通过至少一个页插入线程并行对待装载数据进行预处理,形成与预设数据结构结构一致的待插入页,进而以页为单位插入预设数据结构,提高数据装载效率。
实施例三
图4为本发明实施例三提供的一种数据装载装置的结构示意图。本实施例提供的数据装载装置包括:
缓存模块310,用于接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;
装载模块320,用于通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
本发明实施例三提供的一种数据装载装置,通过将至少一个客户端的数据缓存至页缓存结点,由对应的页插入线程装载页缓存结点中的待装载数据,实现对一个或多个客户端的数据进行装载,并且以页为单位进行装载,提高数据装载效率。
在上述实施例的基础上,所述装置还包括:
初始化模块,用于接收到首个客户端的数据装载请求,则初始化数据装载环境。
进一步的,初始化模块具体用于:
确定目标装载表并创建所述目标装载表对应的页插入线程;
为所述目标装载表分配一批页缓存结点;
针对所述目标装载表生成虚会话,所述虚会话用于处理所述至少一个客户端的数据装载请求;
为所述目标装载表上全局锁;
将所述目标装载表的客户端引用计数置为1。
进一步的,所述装置还包括:
计数模块,用于每接收到一个客户端的数据装载请求,所述客户端引用计数加1;
每装载完一个客户端的待装载数据,所述客户端引用计数减1。
进一步的,所述装置还包括:
解锁模块,用于若所述客户端引用计数为0,则释放所述目标装载表的全局锁。
进一步的,装载模块320,具体用于:
通过所述页插入线程提取页缓存结点作为待插入页,并生成所述待插入页对应的键值;
若所述预设数据结构叶子层的最右端为非根页,则将所述待插入页作为所述非根页的右兄弟,并为所述非根页添加第一虚记录,所述第一虚记录指向所述待插入页。
进一步的,装载模块320,还用于:
若所述预设数据结构的叶子层的最右端为根页,则将所述根页中的数据转移至新页,并为所述根页添加第二虚记录,所述第二虚记录指向所述新页;
将所述待插入页作为所述新页的右兄弟,为所述新页添加第三虚记录,所述第三虚记录指向所述待插入页。
本发明实施例三提供的数据装载装置可以用于执行上述任意实施例提供的数据装载方法,具备相应的功能和有益效果。
实施例四
图5为本发明实施例四提供的一种服务器的硬件结构示意图。进一步的,服务器包括但不限定于:工业集成服务器、系统后台服务器以及云端服务器。如图5所示,本实施例提供的一种服务器,包括:处理器410和存储装置420。该服务器中的处理器可以是一个或多个,图5中以一个处理器410为例,所述服务器中的处理器410和存储装置420可以通过总线或其他方式连接,图5中以通过总线连接为例。
所述一个或多个程序被所述一个或多个处理器410执行,使得所述一个或多个处理器实现上述实施例中任意所述的数据装载方法。
该服务器中的存储装置420作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中数据装载方法对应的程序指令/模块(例如,附图4所示的数据装载装置中的模块,包括缓存模块310、创建模块320、装载模块330)。处理器410通过运行存储在存储装置420中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据装载方法。
存储装置420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据服务器的使用所创建的数据等(如上述实施例中的待装载数据、目标装载表等)。此外,存储装置420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
并且,当上述服务器中所包括一个或者多个程序被所述一个或者多个处理器410执行时,进行如下操作:接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
本实施例提出的服务器与上述实施例提出的数据装载方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行数据装载方法相同的有益效果。
在上述实施例的基础上,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被数据装载装置执行时实现本发明上述任意实施例中的数据装载方法,该方法包括:接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的数据装载方法操作,还可以执行本发明任意实施例所提供的数据装载方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的数据装载方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据装载方法,其特征在于,包括:
接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;
通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
2.根据权利要求1所述的方法,其特征在于,在所述接收至少一个客户端的待装载数据之前,还包括:
接收到首个客户端的数据装载请求,则初始化数据装载环境。
3.根据权利要求2所述的方法,其特征在于,所述初始化数据装载环境包括:
确定目标装载表并创建所述目标装载表对应的页插入线程;
为所述目标装载表分配一批页缓存结点;
针对所述目标装载表生成虚会话,所述虚会话用于处理所述至少一个客户端的数据装载请求;
为所述目标装载表上全局锁;
将所述目标装载表的客户端引用计数置为1。
4.根据权利要求3所述的方法,其特征在于,还包括:
每接收到一个客户端的数据装载请求,所述客户端引用计数加1;
每装载完一个客户端的待装载数据,所述客户端引用计数减1。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述客户端引用计数为0,则释放所述目标装载表的全局锁。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述通过所述页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构,包括:
通过所述页插入线程提取页缓存结点作为待插入页,并生成所述待插入页对应的键值;
若所述预设数据结构叶子层的最右端为非根页,则将所述待插入页作为所述非根页的右兄弟,并为所述非根页添加第一虚记录,所述第一虚记录指向所述待插入页。
7.根据权利要求6所述的方法,其特征在于,所述通过所述页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构,还包括:
若所述预设数据结构的叶子层的最右端为根页,则将所述根页中的数据转移至新页,并为所述根页添加第二虚记录,所述第二虚记录指向所述新页;
将所述待插入页作为所述新页的右兄弟,为所述新页添加第三虚记录,所述第三虚记录指向所述待插入页。
8.一种数据装载装置,其特征在于,包括:
缓存模块,用于接收至少一个客户端的待装载数据并将所述待装载数据发送至目标装载表的页缓存结点;
装载模块,用于通过所述目标装载表对应的页插入线程将所述页缓存结点中的待装载数据装载至预设数据结构。
9.一种服务器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据装载方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据装载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911149047.3A CN110990377B (zh) | 2019-11-21 | 2019-11-21 | 一种数据装载方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911149047.3A CN110990377B (zh) | 2019-11-21 | 2019-11-21 | 一种数据装载方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990377A true CN110990377A (zh) | 2020-04-10 |
CN110990377B CN110990377B (zh) | 2023-08-22 |
Family
ID=70085523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911149047.3A Active CN110990377B (zh) | 2019-11-21 | 2019-11-21 | 一种数据装载方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990377B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055445A1 (en) * | 2003-09-10 | 2005-03-10 | International Business Machines Corporation | High availability data replication of an R-tree index |
US20050071336A1 (en) * | 2003-09-30 | 2005-03-31 | Microsoft Corporation | Systems and methods for logging and recovering updates to data structures |
CN1610877A (zh) * | 2001-11-01 | 2005-04-27 | 弗里塞恩公司 | 高速非并发控制数据库 |
US20090182709A1 (en) * | 2006-08-18 | 2009-07-16 | Ritchie Roger V | Dynamic preconditioning of a b+ tree |
US20120278335A1 (en) * | 2011-04-27 | 2012-11-01 | Verisign, Inc. | Systems and Methods for a Cache-Sensitive Index Using Partial Keys |
CN103605657A (zh) * | 2013-10-14 | 2014-02-26 | 华为技术有限公司 | 一种在线重建索引的方法和装置 |
CN108363806A (zh) * | 2018-03-01 | 2018-08-03 | 上海达梦数据库有限公司 | 数据库的多版本并发控制方法、装置、服务器及存储介质 |
CN108388487A (zh) * | 2018-03-01 | 2018-08-10 | 上海达梦数据库有限公司 | 一种数据装载方法、装置、设备和存储介质 |
CN108446187A (zh) * | 2018-03-07 | 2018-08-24 | 上海达梦数据库有限公司 | 数据备份方法及数据还原方法 |
CN108920708A (zh) * | 2018-07-20 | 2018-11-30 | 新华三技术有限公司 | 一种数据处理方法及装置 |
-
2019
- 2019-11-21 CN CN201911149047.3A patent/CN110990377B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1610877A (zh) * | 2001-11-01 | 2005-04-27 | 弗里塞恩公司 | 高速非并发控制数据库 |
US20050055445A1 (en) * | 2003-09-10 | 2005-03-10 | International Business Machines Corporation | High availability data replication of an R-tree index |
US20050071336A1 (en) * | 2003-09-30 | 2005-03-31 | Microsoft Corporation | Systems and methods for logging and recovering updates to data structures |
US20090182709A1 (en) * | 2006-08-18 | 2009-07-16 | Ritchie Roger V | Dynamic preconditioning of a b+ tree |
US20120278335A1 (en) * | 2011-04-27 | 2012-11-01 | Verisign, Inc. | Systems and Methods for a Cache-Sensitive Index Using Partial Keys |
CN103605657A (zh) * | 2013-10-14 | 2014-02-26 | 华为技术有限公司 | 一种在线重建索引的方法和装置 |
US20160132542A1 (en) * | 2013-10-14 | 2016-05-12 | Huawei Technologies Co., Ltd. | Online index rebuilding method and apparatus |
CN108363806A (zh) * | 2018-03-01 | 2018-08-03 | 上海达梦数据库有限公司 | 数据库的多版本并发控制方法、装置、服务器及存储介质 |
CN108388487A (zh) * | 2018-03-01 | 2018-08-10 | 上海达梦数据库有限公司 | 一种数据装载方法、装置、设备和存储介质 |
CN108446187A (zh) * | 2018-03-07 | 2018-08-24 | 上海达梦数据库有限公司 | 数据备份方法及数据还原方法 |
CN108920708A (zh) * | 2018-07-20 | 2018-11-30 | 新华三技术有限公司 | 一种数据处理方法及装置 |
Non-Patent Citations (4)
Title |
---|
JALUTA I: ""Concurrency control and recovery for balanced B-link trees"", 《THE INTERNATIONAL JOURNAL ON VERY LARGE DATA BASES》 * |
冯玉才: ""DM3存储模块的设计与实现"", 《计算机应用研究》 * |
吴永英: ""DM3存储过程技术性能及实现"", 《计算机工程与应用》 * |
陈虎等: "面向批量插入优化的并行存储引擎MTPower", 《计算机学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110990377B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838863B2 (en) | Storage system with write cache release protection | |
CN108234641B (zh) | 基于分布式一致性协议实现的数据读写方法及装置 | |
US20200142859A1 (en) | Storage system with decrement protection of reference counts | |
CN109101528A (zh) | 数据处理方法、数据处理装置及电子设备 | |
CN109690498B (zh) | 内存管理方法和设备 | |
US10394782B2 (en) | Chord distributed hash table-based map-reduce system and method | |
US11113316B2 (en) | Localized data affinity system and hybrid method | |
US10747677B2 (en) | Snapshot locking mechanism | |
CN107153643B (zh) | 数据表连接方法及装置 | |
US10776378B2 (en) | System and method for use of immutable accessors with dynamic byte arrays | |
CN108111325B (zh) | 一种资源分配方法及装置 | |
CN106777085A (zh) | 一种数据处理方法、装置及数据查询系统 | |
US10062137B2 (en) | Communication between integrated graphics processing units | |
US9201609B2 (en) | Efficient replication of changes to a byte-addressable persistent memory over a network | |
CN110245129B (zh) | 一种分布式全局数据去重方法和装置 | |
US20200341764A1 (en) | Scatter Gather Using Key-Value Store | |
US20200142627A1 (en) | Storage system with storage volume undelete functionality | |
US9954971B1 (en) | Cache eviction in a distributed computing system | |
US20210191727A1 (en) | Tuple checkout with notify in coordination namespace system | |
CN110990377B (zh) | 一种数据装载方法、装置、服务器及存储介质 | |
JP6189266B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
US9811403B1 (en) | Method, apparatus and system for performing matching operations in a computing system | |
US11474938B2 (en) | Data storage system with multiple-size object allocator for disk cache | |
CN111367921A (zh) | 数据对象的刷新方法及装置 | |
CN114443583A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |