CN102567434A - 一种数据块处理方法 - Google Patents
一种数据块处理方法 Download PDFInfo
- Publication number
- CN102567434A CN102567434A CN2011100363181A CN201110036318A CN102567434A CN 102567434 A CN102567434 A CN 102567434A CN 2011100363181 A CN2011100363181 A CN 2011100363181A CN 201110036318 A CN201110036318 A CN 201110036318A CN 102567434 A CN102567434 A CN 102567434A
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- state
- information
- index
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据块处理方法,包括:在内存中创建数据块;为数据块分配唯一的数据块识别信息,并将数据块的数据块状态标记为内存状态,更新第二索引;利用数据块接收待写入数据项,根据数据项的关键字及存储位置更新第一索引;在数据块写满后,将数据块的数据块状态标记为写入状态,更新第二索引,并将数据块写入到固态存储器中;在数据块写入到固态存储器后,将数据块的数据块状态标记为固态存储状态,释放数据块占用的内存缓冲空间,并更新第二索引,以记录固态存储器文件描述符。通过上述方式,利用不同的状态标记配合内存索引对包括多个数据项的数据块进行管理,可支持高性能读写操作,满足了对数据的高性能随机查询与更新的需求。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据块处理方法。
背景技术
随着互联网的高速发展,人们的信息来源得到了极大的丰富,信息获取方式也随之而改变,这给人类带来机遇的同时也带来挑战,在Web信息成几何基数增长的前提下,如何能够快速准确的进行数据搜索,搜索到需要的东西,是数据处理技术领域研究的方向之一。
在数据搜索中,搜索引擎spider得到越来越多的应用,spider是搜索引擎的一个自动程序,其作用是抓取互联网上的网页,建立索引数据库,使用户能在搜索引擎中搜索到相关网站的网页。
在具体实施过程中,spider每天要抓取大量网站链接,在抓取之前都需要获取待抓取网站的IP地址以及robots等信息,这些信息不可能实时的从互联网上查询,而只能通过内部的域名服务器DNS查询。
但是,由于DNS中存储的数据量在不断的增加,因此查询速度也会随之变慢,不能满足快速查询的需求。而且,对DNS中的数据进行更新时,也会增加DNS的工作量,这也影响了查询的速度。同样,在实时网页数据库以及其他关键字-数据值(Key-value)数据库中也会遇到类似的问题。
如何能够更好的对数据进行查询以及更新,满足高性能的读写服务,是数据处理技术领域研究的方向之一。
发明内容
本发明所要解决的技术问题是提供一种数据块处理方法,以支持高性能读写操作,满足对数据的高性能随机查询与更新需求。
本发明为解决技术问题而采用的技术方案是提供一种数据块处理方法,包括:a.在内存中创建数据块,其中所述内存中存储有第一索引及第二索引;b.为所述数据块分配唯一的数据块识别信息,并将所述数据块的数据块状态标记为内存状态,更新所述第二索引,以记录所述数据块的数据块信息,所述数据块信息包括所述数据块识别信息、所述数据块状态、数据块长度信息以及内存指针;c.利用所述数据块接收待写入数据项,根据所述数据项的关键字及存储位置更新所述第一索引,以记录所述关键字与所述数据块识别信息、数据项偏移信息以及数据项长度信息的映射关系;d.在所述数据块写满后,将所述数据块的数据块状态标记为写入状态,更新所述第二索引,以记录所述数据块的所述数据块信息,并将所述数据块写入到固态存储器中;e.在所述数据块写入到所述固态存储器后,将所述数据块的数据块状态标记为固态存储状态,释放所述数据块占用的内存缓冲空间,并更新所述第二索引,以记录所述数据块的所述数据块信息,所述数据块信息进一步包括固态存储器文件描述符。
根据本发明之一优选实施例,在所述步骤c中,更新所述第二索引,以记录所述数据块的所述数据块信息,所述数据块信息进一步包括有效数据项个数、数据项有效位图、内存数据块容量。
根据本发明之一优选实施例,当对所述数据项进行标记删除时,在所述第二索引中对所述数据项有效位图中的对应位进行标记。
根据本发明之一优选实施例,在所述步骤d中,通过所述内存数据块容量与所述数据块长度信息的比较结果来判断所述数据块是否写满。
根据本发明之一优选实施例,在所述步骤c中,当所述数据块中的有效数据项个数低于阈值时,将所述数据块的数据块状态标记为重建状态,随后将所述数据块内的有效数据项转存到标记为内存状态的新数据块中,并在转存完成后将所述数据块的数据块状态标记为删除状态。
根据本发明之一优选实施例,在所述步骤d中,当所述数据块中的有效数据项个数低于阈值时,将所述数据块的数据块状态标记为重建状态,随后将所述数据块内的有效数据项转存到标记为内存状态的新数据块中,并在转存完成后将所述数据块的数据块状态标记为删除状态。
根据本发明之一优选实施例,在所述步骤e中,当所述数据块中的有效数据项个数低于阈值时,将所述数据块的数据块状态标记为读取状态,将所述数据块读取到所述内存中,并在读取完成后将所述数据块的数据块状态标记为重建状态,随后将所述数据块内的有效数据项转存到标记为内存状态的新数据块中,并在转存完成后将所述数据块的数据块状态标记为删除状态。
根据本发明之一优选实施例,所述处理方法进一步包括:f.判断标记为删除状态的所述数据块是否被引用,若未被引用则删除所述数据块。
根据本发明之一优选实施例,在所述步骤e中,将所述数据块以受控的速率写入到所述固态存储器中。
由以上技术方案可以看出,本发明提供的数据块处理方法利用不同的状态标记配合内存索引对包括多个数据项的数据块进行管理,可支持高性能读写操作,满足了对数据的高性能随机查询与更新的需求。
附图说明
图1是本发明实施例中的数据库控制方法的流程示意图;
图2是本发明实施例中的数据库的存储介质及存储内容的示意图;
图3是本发明实施例中的第一索引及数据块的数据结构示意图;
图4是本发明实施例中的第二索引的数据结构示意图;
图5是本发明实施例中的哈希容器的结构示意图;
图6是本发明实施例中的数据块生命周期管理过程的示意图;
图7是本发明实施例中的数据库读取操作的流程示意图;
图8是本发明实施例中的数据库写入操作的流程示意图;
图9是图8中的步骤S809的具体流程示意图;
图10是本发明实施例的数据库导出操作的流程示意图;
图11是本发明实施例中的数据库控制装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
请参阅图1,图1是本发明实施例中的数据库控制方法的流程示意图。在本实施例中,数据库的控制方法主要包括以下几个步骤:
步骤S101,接收操作信息。
步骤S102,根据操作信息在位于内存的索引中查询对应数据块的索引信息。
步骤S103,根据操作信息及索引信息对对应数据块进行相应操作。
在本发明中,操作信息可以包括具体操作指令以及待处理数据项或者待处理数据项的关键字。具体操作指令可以包括读取操作指令、写入操作指令、导出操作指令等,各种操作信息对应的具体操作过程将在下文中描述。
请参阅图2,图2是本发明实施例中的数据库的存储介质及存储内容的示意图。在本实施例中,数据库的存储介质包括内存以及固态存储器。存储内容包括索引和数据块。其中,数据块根据不同状态选择性位于内存及固态存储器中。具体来说,当数据块位于内存中时可称为内存数据块,当数据块位于固态存储器中时可称为固态存储器数据块。其中,索引设置在内存内,索引包括第一索引和第二索引。
请参阅图3-4,图3是本发明实施例中的第一索引及数据块的数据结构示意图。图4是本发明实施例中的第二索引的数据结构示意图。
请参阅图3,在本实施例中,第一索引用于记录关键字与对应数据项的位置信息的映射关系。位置信息主要包括如下信息:数据块识别信息、数据项偏移信息以及数据项长度信息。
其中,数据块识别信息用于记录对应数据项所属的数据块的ID,数据项偏移信息用于记录对应数据项在数据块中的偏移量,数据项长度信息用于记录对应数据项的长度。
请参阅图3,第二索引完成从位置信息中的数据块识别信息到数据块信息的映射。请参阅图4,在本实施例中,数据块信息主要包括:数据块识别信息、数据块长度信息、数据项总数、有效数据项个数、数据项有效位图、数据块状态、内存数据块容量、内存指针、固态存储器文件描述符以及引用计数。
其中,数据块识别信息用于记录数据块的ID,在本实施例中,每个数据块分配一个唯一的ID。数据块长度信息用于记录数据块的大小。数据项总数用于记录数据块内的数据项的总个数。有效数据项个数用于记录数据块内的有效数据项的个数,即数据项总数减去被标记删除的数据项的个数。数据项有效位图用于记录数据项的有效状态,其中,每一位(bit)代表一个数据项,若置1表示有效,置0表示被标记删除。数据块状态用于记录数据块的状态,主要用于判断对应数据块是位于内存中还是位于固态存储器中,下文中将详细描述各种数据块状态。内存数据块容量用于记录内存数据块中已存储的数据项的大小,主要用于与数据块长度信息配合来判断内存数据块是否已满。内存指针用于记录数据块在内存中的存储位置,当数据块不位于内存中时,则该值无效。固态存储器文件描述符用于记录数据块在固态存储器中的存储位置,当数据块不位于固态存储器中时,则该值无效。引用计数用于记录数据块的引用状态,用于管理数据块的生存周期。
在上述信息中,数据块识别信息、数据块长度信息、数据项总数、有效数据项个数、数据项有效位图为数据块的核心数据项,称为数据块的元信息。
请继续参阅图3,在数据块中存储多个数据项,每一数据项内存储有如下内容:数据项序号、关键字长度、数据值长度、关键字以及数据值。
其中,数据项序号为数据项在数据块中的序号,用于查找数据项有效位图。关键字长度用于记录关键字的长度。数据值长度用于记录数据值的长度。关键字为表示关键字的二进制串。数据值为表示数据值的二进制串。
在本发明中,第一索引和第二索引可通过本领域各种算法实现,例如哈希算法。
本发明一优选实施例提供了一种间接寻址的哈希容器,节省了索引的空间,提高了内存的使用效率。下面将以第一索引为例,进行详细描述。
请参阅图5,在本实施例中,第一索引包括一哈希桶表,该哈希桶表包括多个哈希桶。每一个哈希桶内存储一哈希节点指针。在本实施例中,哈希节点指针为预定字节(例如,4字节),其中前预定位(例如,前9位)用于标识哈希节点所在的哈希节点数据块,后预定位(例如,后23位)用于标识哈希节点在哈希节点数据块内部的偏移。
具体来说,所有的哈希节点数据块的识别信息被记录在标识信息列表中,并可根据哈希节点指针的前预定位从标识信息列表的对应位置查询到对应的识别信息。在本实施例中,标识信息列表所能存储的识别信息的最大数量为29=512。
此外,哈希节点存储在对应的哈希节点数据块内,每个哈希节点占用预定字节(例如,20字节),分别包括关键字(例如,8个字节)、数据块识别信息(例如,2个字节)、数据项长度信息(例如,2个字节)、数据项偏移信息(例如,4个字节)以及下一哈希节点指针(例如,4个字节)。
在上述哈希容器的使用过程中,首先对接收的关键字进行哈希运算从哈希桶表中确定对应的哈希桶,并从哈希桶中获得哈希节点指针。随后,利用哈希节点指针的前预定位从标识信息列表中确定对应的哈希节点数据块的识别信息,并根据哈希节点指针的后预定位作为偏移量从识别信息对应的哈希节点数据块中获取对应的哈希节点,进而获取与该关键字相关的数据项位置信息,例如数据块识别信息、数据项偏移信息以及数据项长度信息。
在本实施例中,每个哈希节点数据块内能够存储的哈希节点的最大数量为223=8388608个,因此每个哈希容器可以支持的最大数据量为512×8388608=42亿,很好的满足了域名服务器(Domain Name Server,DNS)的需求。
此外,在该哈希容器中,空闲哈希节点用空闲链表维护。当数据被删除时,对应的哈希节点也会被回收。空闲哈希节点通过哈希节点中的下一哈希节点指针来串成一个回收链表。当接收到新的数据时,优先使用回收链表中的指针。因此,哈希节点数据块中的哈希节点数据总是紧凑的,在站点数量为3亿的情况下,占用的内存为300M×20bytes=6Gbytes。
请参阅图6,图6为本发明实施例中的数据块生命周期管理过程的示意图。
在本实施例中,首先,在内存中创建数据块。在创建数据块后,为该数据块分配唯一的数据块识别信息(ID),并将该数据块的数据块状态标记为“内存”。随后,更新第二索引,以记录该数据块的数据块信息,例如数据块识别信息、数据块长度信息、数据块状态以及内存指针等。其中,数据库在任一时刻最多只有一个数据块处于“内存”状态。
标记为“内存”的数据块可接收待写入数据项,并将该数据项追加到数据块末端。随后,更新第二索引,以记录有效数据项个数、数据项有效位图、内存数据块容量等。同时,根据待写入数据项的关键字及存储位置更新第一索引,在第一索引中记录该关键字与数据块识别信息、数据项偏移信息以及数据项长度信息的映射关系,以便后续可根据该关键字查询到对应的数据项。数据项一旦写入数据块后,就不可以更改,仅允许对该数据项进行读取和标记删除。当对该数据项进行标记删除时,在第二索引中对该数据块的数据块信息的数据项有效位图中的对应位进行标记,例如将对应位置0。
当数据项不断写入数据块后,可通过内存数据块容量与数据块长度信息的比较结果来判断该数据块是否写满。若数据块写满,将该数据块的数据块状态标记为“写入”,并更新第二索引,以记录数据项总数。随后,将该数据块写入到固态存储器中。优选地,在写入过程中,将内存中该数据块的数据项以受控的速率(例如,5MB/S)写入到固态存储器中,有效地防止了对读取性能造成过大影响。同时,在内存中重新创建数据块状态标记为“内存”的新数据块,以接收后续写入的数据项。
在“写入”状态的该数据块的数据项全部写入到固态存储器后,将该数据块的数据块状态标记为“固态存储”,并释放该数据块原先占用的内存缓冲空间。随后,更新第二索引,以记录该数据块的数据块信息,例如固态存储器文件描述符。
如果处于“内存”状态和“写入”状态的数据块中的空洞太多,也就是说,数据块中的有效数据项的个数低于阈值,则将该数据块的数据块状态标记为“重建”。随后,将标记为“重建”的数据块内的有效数据项转存到标记为“内存”的新数据块中,以实现对“重建”的数据块内的无效数据项的清除及重建。在重建完成后,将标记为“重建”的数据块的数据块状态标记为“删除”。此时,根据该数据块的引用计数判断是否有其他线程引用该数据块,如果没有其他线程引用该数据块,则删除该数据块。如果有其他线程引用该数据块,则保留该数据块,直到其他线程使用完成后,通过引用解除操作释放该引用计数,再将该数据块进行删除。
如果处于“固态存储”状态的数据块中的空洞太多,则将该数据块的数据块状态标记为“读取”,并将该数据块读取到内存中。在读取完成后,将该数据块的数据块状态标记为“重建”,并将该数据块的有效数据项转存到标记为“内存”的数据块中,以实现对“重建”的数据块内的无效数据项的清除及重建。在重建完成后,将标记为“重建”的数据块的数据块状态标记为“删除”。此时,根据该数据块的引用计数判断是否有其他线程引用该数据块,如果没有其他线程引用该数据块,则删除该数据块。
具体来说,如果数据块状态为“内存”、“写入”以及“重建”,则表示该数据块位于内存中。如果数据块状态为“固态存储”以及“读取”,则表示该数据块位于固态存储器中。透过上述操作,可有效管理数据块生命周期。
下面将结合具体实施例,描述本发明的各种操作过程。
请参阅图7,图7为本发明实施例中的数据库读取操作的流程示意图。
在步骤S701中,接收读取操作指令以及待读取数据项的关键字。
在步骤S702中,利用该关键字从第一索引查询对应的位置信息。若未查询到,则进行步骤S708;若查询到,则进行步骤S703。
在本实施例中,位置信息包括数据块识别信息、数据项偏移信息以及数据项长度信息。具体查询过程在上文中已经进行详细描述,在此不再赘述。
在步骤S703中,利用该位置信息中的数据块识别信息从第二索引查询对应的数据块信息。在本实施例中,数据块信息包括数据块状态、内存指针以及固态存储器文件描述符等。
在步骤S704中,根据数据块状态判定对应数据块是位于内存中还是位于固态存储器,若对应数据块位于内存中,则进行步骤S705,若对应数据块位于固态存储器中,则进行步骤S706。
如上文所描述的,如果数据块状态为“内存”、“写入”以及“重建”,则表示该数据块位于内存中。如果数据块状态为“固态存储”以及“读取”,则表示该数据块位于固态存储器中。
在步骤S705中,根据内存指针、数据项偏移信息以及数据项长度信息在内存中读取对应数据项。
在步骤S706中,根据固态存储器文件描述符、数据项偏移信息以及数据项长度信息在固态存储器中读取对应数据项。
在步骤S707中,判断对应数据项的关键字与待读取数据项的关键字是否一致,若不一致,则进行步骤S708;若一致,则进行步骤S709。
在步骤S708中,判定待读取数据项不存在。
在步骤S709中,判定读取成功,并将对应数据项的数据值作为待读取数据项的数据值。
请参阅图8,图8为本发明实施例的数据库写入操作的流程示意图。
在步骤S801中,接收写入操作指令以及待写入数据项的关键字及数据值。
在步骤S802中,利用该关键字从第一索引查询对应的位置信息。若查询到,则进行步骤S803;若没有查询到,则进行步骤S809。
在本实施例中,位置信息包括数据块识别信息、数据项偏移信息以及数据项长度信息。具体查询过程在上文中已经进行详细描述,在此不再赘述。
在步骤S803中,利用该位置信息中的数据块识别信息从第二索引查询对应的数据块信息。在本实施例中,数据块信息包括数据块状态、内存指针以及固态存储器文件描述符等。
在步骤S804中,根据数据块状态判定对应数据块位于内存中还是位于固态存储器中,若对应数据块位于内存中,则进行步骤S805,若对应数据块位于固态存储器中,则进行步骤S806。
如上文所描述的,如果数据块状态为“内存”、“写入”以及“重建”,则表示该数据块位于内存中。如果数据块状态为“固态存储”以及“读取”,则表示该数据块位于固态存储器中。
在步骤S805中,根据内存指针、数据项偏移信息以及数据项长度信息在内存中读取对应数据项。
在步骤S806中,根据固态存储器文件描述符、数据项偏移信息以及数据项长度信息在固态存储器中读取对应数据项;
在步骤S807中,判断对应的数据项的数据值与待写入数据项的数据值是否一致:若一致,则写入成功;若不一致,则进行步骤S808;
在步骤S808中,在对应数据项所属数据块的数据项有效位图中将该对应数据项标识删除。具体来说,在数据项有效位图中将对应位置0。
在步骤S809中,将待写入数据项写入位于内存中的用于接收待写入数据项的数据块内,即处于“内存”状态的数据块。随后,更新第一索引及第二索引以记录上述写入过程。
请参阅图9,图9是图8中的步骤S809的具体流程示意图。
在步骤S901中,判断内存中的处于“内存”状态的数据块是否已经写满,若未写满,则进行步骤S902,若写满,则进行步骤S903。具体来说,可通过数据块长度信息与内存数据块容量之间的比较结果来确定该数据块是否写满。
在步骤S902中,直接将待写入数据项写入到数据块的末端,并更新第一索引及第二索引。
在步骤S903中,将该数据块的数据块状态标记为“写入”状态。随后,进入步骤S904和步骤S905。
在步骤S904中,将该数据块写入固态存储器,同时进一步更新第一索引及第二索引。在写入完成后,将该数据块的数据块状态改为“固态存储”状态,同时在内存中释放该数据块。
在步骤S905中,创建标记为“内存”状态的新数据块,并将待写入数据项写入到新数据块的末端,并更新第一索引及第二索引。
通过上述方式,步骤S904和步骤S905可以并行进行,由此实现了读写分离。此外,处于“写入”状态的数据块中的数据项以受控的速率写入固态存储器,譬如受控的速率为5MB/S。本发明通过设置受控的速率,有效地防止了写入数据时对读取性能造成的影响。
请参阅图10,图10为本发明实施例的数据库导出操作的流程示意图。
在步骤S1001中,接收导出操作指令。
在步骤S1002中,对内存和固态存储器进行加锁,其中,在加锁状态下,禁止对内存和固态存储器进行修改。
在步骤S1003中,从内存的第二索引中复制待导出数据块对应的元信息。在本实施例中,待导出数据块可以是全部数据块或者预定数量的数据块。如上文所述的,元信息包括数据块识别信息、数据块长度信息、数据项总数、有效数据项个数以及数据项有效位图。
在步骤S1004中,对待导出数据块的引用计数进行引用标记操作,以避免待导出数据块被删除。例如,对引用计数加一或加特定步长。
在步骤S1005中,对内存和固态存储器进行解锁,其中,在解锁状态下,允许对内存和固态存储器进行修改。由于元信息的复制时间很短,数据块的后续导出可在后台进行,避免了影响数据块的读取及写入操作。
在步骤S1006中,将元信息写入元信息文件。
在步骤S1007中,根据元信息从内存或固态存储器上读取待导出数据块,并根据待导出数据块的关键字生成导出索引。
在步骤S1008中,将导出索引写入导出索引文件。
在步骤S1009中,将待导出数据块写入数据块文件。在本实施例中,元信息文件、导出索引文件以及数据块文件可在接到导出操作指令时创建,也可以在其他任意适当时刻创建。
在步骤S1010中,对待导出数据块的引用计数进行引用解除操作。例如,对引用计数减一或减特定步长。此时,如果数据块已经处于“删除”状态,且没有其他线程引用该数据块,则删除该数据块。
请参阅图11,图11为本发明实施例的数据库控制装置的结构示意图。该控制装置包括操作信息接收模块1101、索引信息查询模块1102以及数据块处理模块1103。
其中,操作信息接收模块1101用于接收上述操作信息。
索引信息查询模块1102用于根据上述操作信息在位于内存的索引中查询对应数据块的索引信息。在本实施例中,对应数据块包括多个数据项,每一数据项包括关键字与数据值,并且对应数据块可选择性位于内存及固态存储器中。
数据块处理模块1103用于根据上述操作信息及索引信息对对应数据块进行相应操作。
在具体实施过程中,索引包括上述的第一索引和第二索引。索引信息查询模块1102根据第一索引查询与关键字对应的位置信息,位置信息包括数据块识别信息、数据项偏移信息以及数据项长度信息。索引信息查询模块1102进一步根据第二索引查询与数据块识别信息对应的数据块信息,数据块信息包括数据块状态、内存指针以及固态存储器文件描述符等。
关于数据库控制装置的详细工作过程请参阅上文的描述,此处不再赘述。
由以上技术方案可以看出,本发明的数据库的控制方法及装置以数据块形式对多个数据项进行存储,并根据不同状态将数据块选择性存储于内存及固态存储中,进一步配合内存索引,可支持高性能读写操作,满足了对数据的高性能随机查询与更新需求。
在上述实施例中,仅对本发明进行了示范性描述,但是本领域技术人员在阅读本专利申请后可以在不脱离本发明的精神和范围的情况下对本发明进行各种修改。
Claims (9)
1.一种数据块处理方法,其特征在于,所述处理方法包括:
a.在内存中创建数据块,其中所述内存中存储有第一索引及第二索引;
b.为所述数据块分配唯一的数据块识别信息,并将所述数据块的数据块状态标记为内存状态,更新所述第二索引,以记录所述数据块的数据块信息,所述数据块信息包括所述数据块识别信息、所述数据块状态、数据块长度信息以及内存指针;
c.利用所述数据块接收待写入数据项,根据所述数据项的关键字及存储位置更新所述第一索引,以记录所述关键字与所述数据块识别信息、数据项偏移信息以及数据项长度信息的映射关系;
d.在所述数据块写满后,将所述数据块的数据块状态标记为写入状态,更新所述第二索引,以记录所述数据块的所述数据块信息,并将所述数据块写入到固态存储器中;
e.在所述数据块写入到所述固态存储器后,将所述数据块的数据块状态标记为固态存储状态,释放所述数据块占用的内存缓冲空间,并更新所述第二索引,以记录所述数据块的所述数据块信息,所述数据块信息进一步包括固态存储器文件描述符。
2.如权利要求1所述的方法,其特征在于,在所述步骤c中,更新所述第二索引,以记录所述数据块的所述数据块信息,所述数据块信息进一步包括有效数据项个数、数据项有效位图、内存数据块容量。
3.如权利要求2所述的方法,其特征在于,当对所述数据项进行标记删除时,在所述第二索引中对所述数据项有效位图中的对应位进行标记。
4.如权利要求2所述的方法,其特征在于,在所述步骤d中,通过所述内存数据块容量与所述数据块长度信息的比较结果来判断所述数据块是否写满。
5.如权利要求2所述的方法,其特征在于,在所述步骤c中,当所述数据块中的有效数据项个数低于阈值时,将所述数据块的数据块状态标记为重建状态,随后将所述数据块内的有效数据项转存到标记为内存状态的新数据块中,并在转存完成后将所述数据块的数据块状态标记为删除状态。
6.如权利要求2所述的方法,其特征在于,在所述步骤d中,当所述数据块中的有效数据项个数低于阈值时,将所述数据块的数据块状态标记为重建状态,随后将所述数据块内的有效数据项转存到标记为内存状态的新数据块中,并在转存完成后将所述数据块的数据块状态标记为删除状态。
7.如权利要求2所述的方法,其特征在于,在所述步骤e中,当所述数据块中的有效数据项个数低于阈值时,将所述数据块的数据块状态标记为读取状态,将所述数据块读取到所述内存中,并在读取完成后将所述数据块的数据块状态标记为重建状态,随后将所述数据块内的有效数据项转存到标记为内存状态的新数据块中,并在转存完成后将所述数据块的数据块状态标记为删除状态。
8.如权利要求5-7任意一项所述的方法,其特征在于,所述处理方法进一步包括:
f.判断标记为删除状态的所述数据块是否被引用,若未被引用则删除所述数据块。
9.如权利要求1所述的方法,其特征在于,在所述步骤e中,将所述数据块以受控的速率写入到所述固态存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110036318 CN102567434B (zh) | 2010-12-31 | 2010-12-31 | 一种数据块处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110036318 CN102567434B (zh) | 2010-12-31 | 2010-12-31 | 一种数据块处理方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010619673 Division CN102567415B (zh) | 2010-12-31 | 2010-12-31 | 一种数据库的控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567434A true CN102567434A (zh) | 2012-07-11 |
CN102567434B CN102567434B (zh) | 2013-04-10 |
Family
ID=46412863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110036318 Active CN102567434B (zh) | 2010-12-31 | 2010-12-31 | 一种数据块处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567434B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103403709A (zh) * | 2012-11-15 | 2013-11-20 | 华为技术有限公司 | 一种数据读写的方法、装置和*** |
CN103810246A (zh) * | 2013-12-27 | 2014-05-21 | 北京天融信软件有限公司 | 一种索引创建方法和装置以及索引查询方法和装置 |
CN103853766A (zh) * | 2012-12-03 | 2014-06-11 | 中国科学院计算技术研究所 | 一种面向流式数据的在线处理方法及*** |
CN105408883A (zh) * | 2013-04-30 | 2016-03-16 | 惠普发展公司,有限责任合伙企业 | 数据库表列注解 |
CN105426408A (zh) * | 2015-11-02 | 2016-03-23 | 北京锐安科技有限公司 | 一种多索引的数据处理方法及装置 |
CN102968498B (zh) * | 2012-12-05 | 2016-08-10 | 华为技术有限公司 | 数据处理方法及装置 |
CN106453674A (zh) * | 2016-09-09 | 2017-02-22 | 中国互联网络信息中心 | 一种dns多级域名查询方法 |
CN106484770A (zh) * | 2016-09-09 | 2017-03-08 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN106528650A (zh) * | 2016-10-14 | 2017-03-22 | 努比亚技术有限公司 | 一种资源查询方法及终端 |
CN108628969A (zh) * | 2018-04-24 | 2018-10-09 | 咪咕文化科技有限公司 | 一种空间关键字索引方法及平台、存储介质 |
CN108829740A (zh) * | 2018-05-23 | 2018-11-16 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN109885558A (zh) * | 2019-01-21 | 2019-06-14 | 南京国通智能科技有限公司 | 一种数据状态配置方法、***及存储介质 |
CN110059087A (zh) * | 2019-03-26 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 一种块链式账本中的数据属性标识方法、装置及设备 |
CN111124313A (zh) * | 2019-12-24 | 2020-05-08 | 宁波三星医疗电气股份有限公司 | 电力采集终端数据读写方法、装置和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02287875A (ja) * | 1989-04-28 | 1990-11-27 | Fuji Xerox Co Ltd | 計算機システムにおけるファイリング方式 |
JPH08235040A (ja) * | 1995-02-27 | 1996-09-13 | Hitachi Ltd | データファイル管理システム |
CN1270363A (zh) * | 1999-04-09 | 2000-10-18 | 英业达股份有限公司 | 数据库的管理方法 |
CN1538324A (zh) * | 2003-04-16 | 2004-10-20 | ��Ϊ��������˾ | 一种提高数据处理效率的方法 |
CN1645365A (zh) * | 2004-12-20 | 2005-07-27 | 浪潮电子信息产业股份有限公司 | 一种减少dbms字段存储冗余的方法 |
CN1908952A (zh) * | 2005-07-21 | 2007-02-07 | 富士施乐株式会社 | 信息处理服务器、信息处理***、信息处理方法、以及存储信息处理程序的存储介质 |
-
2010
- 2010-12-31 CN CN 201110036318 patent/CN102567434B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02287875A (ja) * | 1989-04-28 | 1990-11-27 | Fuji Xerox Co Ltd | 計算機システムにおけるファイリング方式 |
JPH08235040A (ja) * | 1995-02-27 | 1996-09-13 | Hitachi Ltd | データファイル管理システム |
CN1270363A (zh) * | 1999-04-09 | 2000-10-18 | 英业达股份有限公司 | 数据库的管理方法 |
CN1538324A (zh) * | 2003-04-16 | 2004-10-20 | ��Ϊ��������˾ | 一种提高数据处理效率的方法 |
CN1645365A (zh) * | 2004-12-20 | 2005-07-27 | 浪潮电子信息产业股份有限公司 | 一种减少dbms字段存储冗余的方法 |
CN1908952A (zh) * | 2005-07-21 | 2007-02-07 | 富士施乐株式会社 | 信息处理服务器、信息处理***、信息处理方法、以及存储信息处理程序的存储介质 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103403709A (zh) * | 2012-11-15 | 2013-11-20 | 华为技术有限公司 | 一种数据读写的方法、装置和*** |
CN103403709B (zh) * | 2012-11-15 | 2016-10-05 | 华为技术有限公司 | 一种数据读写的方法、装置和*** |
CN103853766A (zh) * | 2012-12-03 | 2014-06-11 | 中国科学院计算技术研究所 | 一种面向流式数据的在线处理方法及*** |
CN103853766B (zh) * | 2012-12-03 | 2017-04-05 | 中国科学院计算技术研究所 | 一种面向流式数据的在线处理方法及*** |
CN102968498B (zh) * | 2012-12-05 | 2016-08-10 | 华为技术有限公司 | 数据处理方法及装置 |
CN105408883B (zh) * | 2013-04-30 | 2018-09-11 | 安提特软件有限责任公司 | 数据库表列注解 |
CN105408883A (zh) * | 2013-04-30 | 2016-03-16 | 惠普发展公司,有限责任合伙企业 | 数据库表列注解 |
US10248620B2 (en) | 2013-04-30 | 2019-04-02 | Entit Software Llc | Database table column annotation |
CN103810246B (zh) * | 2013-12-27 | 2017-10-13 | 北京天融信软件有限公司 | 一种索引创建方法和装置以及索引查询方法和装置 |
CN103810246A (zh) * | 2013-12-27 | 2014-05-21 | 北京天融信软件有限公司 | 一种索引创建方法和装置以及索引查询方法和装置 |
CN105426408B (zh) * | 2015-11-02 | 2019-03-08 | 北京锐安科技有限公司 | 一种多索引的数据处理方法及装置 |
CN105426408A (zh) * | 2015-11-02 | 2016-03-23 | 北京锐安科技有限公司 | 一种多索引的数据处理方法及装置 |
CN106484770B (zh) * | 2016-09-09 | 2019-08-06 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN106453674A (zh) * | 2016-09-09 | 2017-02-22 | 中国互联网络信息中心 | 一种dns多级域名查询方法 |
CN106453674B (zh) * | 2016-09-09 | 2019-05-17 | 中国互联网络信息中心 | 一种dns多级域名查询方法 |
CN106484770A (zh) * | 2016-09-09 | 2017-03-08 | 中国互联网络信息中心 | 一种dns增量区域数据文件的处理方法 |
CN106528650B (zh) * | 2016-10-14 | 2019-06-21 | 努比亚技术有限公司 | 一种资源查询方法及终端 |
CN106528650A (zh) * | 2016-10-14 | 2017-03-22 | 努比亚技术有限公司 | 一种资源查询方法及终端 |
CN108628969A (zh) * | 2018-04-24 | 2018-10-09 | 咪咕文化科技有限公司 | 一种空间关键字索引方法及平台、存储介质 |
CN108628969B (zh) * | 2018-04-24 | 2022-05-06 | 咪咕文化科技有限公司 | 一种空间关键字索引方法及平台、存储介质 |
CN108829740A (zh) * | 2018-05-23 | 2018-11-16 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN108829740B (zh) * | 2018-05-23 | 2021-11-02 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN109885558A (zh) * | 2019-01-21 | 2019-06-14 | 南京国通智能科技有限公司 | 一种数据状态配置方法、***及存储介质 |
CN109885558B (zh) * | 2019-01-21 | 2024-06-04 | 南京国通智能科技有限公司 | 一种数据状态配置方法、***及存储介质 |
CN110059087A (zh) * | 2019-03-26 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 一种块链式账本中的数据属性标识方法、装置及设备 |
CN111124313A (zh) * | 2019-12-24 | 2020-05-08 | 宁波三星医疗电气股份有限公司 | 电力采集终端数据读写方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102567434B (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567434B (zh) | 一种数据块处理方法 | |
CN102541968A (zh) | 一种索引方法 | |
CN102567415B (zh) | 一种数据库的控制方法和装置 | |
US9858303B2 (en) | In-memory latch-free index structure | |
JP5996088B2 (ja) | 暗号ハッシュ・データベース | |
CN104246764B (zh) | 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置 | |
CN103080910B (zh) | 存储*** | |
CN110119425A (zh) | 固态驱动器、分布式数据存储***和利用键值存储的方法 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN105474196A (zh) | 用于管理集成数据对象的***及其方法 | |
CN106663047A (zh) | 用于优化的签名比较和数据复制的***和方法 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
JP2017504924A (ja) | ファイルシステムのコンテンツベースの編成 | |
CN102292720A (zh) | 用于管理数据存储***的数据对象的方法和设备 | |
CN103186617B (zh) | 一种存储数据的方法和装置 | |
CN101419571A (zh) | 基于Hash算法的在NOR FLASH中存储配置参数的方法 | |
CN103577513A (zh) | 藉延迟节点实例化以缓存xml信息集的***和/或方法 | |
WO2015093026A1 (ja) | 書き込み情報記憶装置、方法、及び、記録媒体 | |
CN103631937A (zh) | 构建列存储索引的方法、装置及*** | |
CN112131140A (zh) | 基于ssd的支持高效存储空间管理的键值分离存储方法 | |
CN110352410A (zh) | 跟踪索引节点的访问模式以及预提取索引节点 | |
US8239427B2 (en) | Disk layout method for object-based storage devices | |
US10146466B1 (en) | Merging mapping metadata to promote reference counting efficiency | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN110633261A (zh) | 一种图片存储方法、图片查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |