[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN102331973A - 一种内存数据存储系统和内存数据的插入、删除方法 - Google Patents

一种内存数据存储系统和内存数据的插入、删除方法 Download PDF

Info

Publication number
CN102331973A
CN102331973A CN201110066129A CN201110066129A CN102331973A CN 102331973 A CN102331973 A CN 102331973A CN 201110066129 A CN201110066129 A CN 201110066129A CN 201110066129 A CN201110066129 A CN 201110066129A CN 102331973 A CN102331973 A CN 102331973A
Authority
CN
China
Prior art keywords
data
data block
free list
internal memory
memory field
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
Application number
CN201110066129A
Other languages
English (en)
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.)
BEIJING DIGITAL CHINA SI-TECH INFORMATION TECHNOLOGY Co Ltd
Original Assignee
BEIJING DIGITAL CHINA SI-TECH INFORMATION 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 BEIJING DIGITAL CHINA SI-TECH INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING DIGITAL CHINA SI-TECH INFORMATION TECHNOLOGY Co Ltd
Priority to CN201110066129A priority Critical patent/CN102331973A/zh
Publication of CN102331973A publication Critical patent/CN102331973A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种内存数据存储系统及其数据的插入和删除方法。其中,该系统包括设置于内存中的数据块和与所述数据块对应的空闲列表;所述数据块用于存储多条数据记录,当对所述数据块中存储的某条数据记录进行删除操作时,不释放该数据记录所占用的内存区,只对该数据记录作删除标记;所述空闲列表用于存储所述数据块中未被数据记录占用的以及打上删除标记的内存区坐标信息。所述插入和删除方法利用该系统通过所述空闲列表进行内存空间管理,大大降低了内存的频繁申请与释放,又提高了应用程序对内存数据的插入和删除速度,比直接扫描所有数据区快5倍以上。

Description

一种内存数据存储系统和内存数据的插入、删除方法
技术领域
本发明涉及一种内存数据存储方式,涉及对内存数据的动态存储和快速查找。
背景技术
对于内存中动态数据存储,一般采用下列两种方式:
A.随时申请,随时释放的机制,当需要插入数据,则申请一块新的内存用于存放数据;当删除数据时,则释放这块内存。
B.插入数据时,处理方式同A;不同的是,删除数据时,不是直接释放内存,而是在对于内存位置打上删除标记,当再有新数据插入时,则从头至尾扫描整个数据区,发现有删除标记的内存区,则把新的数据放在此位置。
方式A处理简单,但是一旦遇到频繁的插入删除操作,则会造成内存的频繁申请与释放,频繁的系统调用会降低插入、删除等操作的效率。
方式B虽然可以避免频繁的内存申请与释放,但是,随着数据量的增大,每次插入数据时,都要扫描整个数据区,才可以确定哪块数据区是打了删除标记的,这将极大的消耗CPU资源,大幅降低插入操作的效率。
发明内容
本发明所要解决的技术问题是提供一种新的内存数据存储系统以及内存数据的插入和删除方法,以减小对内存的频繁申请与释放,并降低CPU资源的消耗,提高对内存数据的操作效率。
本发明为解决上述技术问题所提供的内存数据存储系统,包括设置于内存中的数据块和与所述数据块对应的空闲列表;所述数据块用于存储多条数据记录,当对所述数据块中存储的某条数据记录进行删除操作时,不释放该数据记录所占用的内存区,只对该数据记录作删除标记;所述空闲列表用于存储所述数据块中未被数据记录占用的以及打上删除标记的内存区坐标信息。
上述数据存储系统的有益效果是:利用空闲列表记录数据块中的哪些位置被打了删除标记,当插入新数据时,可以通过空闲列表快速找到一个空闲位置,避免扫描整个数据区,从而既可以有效降低内存的频繁申请与释放,又可以提高应用程序对内存数据的插入和删除速度。
进一步,所述数据记录的第一个字节为删除标记位,当对所述数据块中存储的某条数据记录进行删除操作时,只在该数据记录的删除标记位上作删除标记。
采用上述进一步方案的有益效果是,便于对数据记录进行删除操作。
进一步,所述数据块存储数据记录的容量为100000条。
采用上述进一步方案的有益效果是,每次数据块申请100000条数据记录的存储空间,当进行插入或者删除操作时,仅对该100000条数据的记录空间进行扫描,待该100000条数据记录的存储空间占满之后,再申请新的100000条数据记录的存储空间,对新的存储空间进行扫描和操作,从而避免了对整个内存数据区进行扫描,降低了CPU的资源消耗,提高了操作效率。
本发明提供的内存数据的插入方法包括如下步骤:
步骤1:查询空闲列表中是否有一条内存区坐标信息,如果有则执行步骤2,否则执行步骤3;
步骤2:将新数据记录存储于该条内存区坐标信息所对应的数据块的内存区中,并将该条内存区坐标信息从空闲列表中删除;
步骤3:从内存中申请新的数据块,并建立与新的数据块对应的空闲列表,将新的数据记录存储于该新的数据块中并更新所述空闲列表。
上述内存数据插入方法的有益效果是:利用空闲列表记录可以使用的内存区坐标信息,通过对空闲列表的查询替代对内存的扫描,从而节省了CPU资源,提高了插入操作的效率。
进一步,所述步骤3包括:从内存中申请新的数据块,将新数据记录存储于该数据块的第一个内存区中,建立与新的数据块对应的空闲列表,并将除了该第一个内存区以外的其他内存区坐标信息写入该空闲列表。
进一步,所述步骤3包括:从内存中申请新的数据块,建立与该新的数据块对应的空闲列表,并将新的数据块中所有的内存区坐标信息写入该空闲列表,将新数据记录存储于该空闲列表的第一条坐标记录所对应的数据块的内存区中,并将空闲列表的第一条坐标记录从空闲列表中删除。
本发明提供的内存数据的删除方法,包括:对数据块中所要删除的数据记录作删除标记;将数据块中所要删除的数据记录所占用的内存区的坐标信息写入该数据块所对应的空间列表。
上述内存数据删除方法的有益效果是:节省了内存操作时间,从而加快了内存数据删除速度。
附图说明
图1为本发明内存数据存储系统中数据块组成的数据存储区结构示意图;
图2为本发明内存数据存储系统中空闲列表的结构示意图;
图3为本发明内存数据插入方法的一个实施方式的流程图;
图4为本发明内存数据删除方法的一个实施方式的流程图。
 具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明的内存数据存储系统包括设置于内存中的数据块和与所述数据块对应的空闲列表;所述数据块用于存储多条数据记录,当对所述数据块中存储的某条数据记录进行删除操作时,不释放该数据记录所占用的内存区,只对该数据记录作删除标记;所述空闲列表用于存储所述数据块中未被数据记录占用的以及打上删除标记的内存区坐标信息。
作为一个具体实施方式,如图1所示,每个数据块可以存储10万条数据记录,多个数据块组成了一个大的数据存储区。数据块中,每条数据记录的第1个字节是删除标记位,后面紧接每个字段的值,当删除数据记录时,不释放其所占的内存空间,只在该删除标记位上作标记(如删除标记位置0表示删除,删除标记位置1表示在用),待后续插入数据时可以重用该部分内存空间。
图2表示了本发明具体实施方式中与所述数据块对应的空闲列表结构。数据存储区的空间进行成块申请(如图1所示),每次申请一个数据块来存储10万条记录,数据块中暂时未用到的空间所对应的数据区坐标填到图2所示的空闲列表中。当数据块中的某条数据记录被删除的时候,其对应的数据区坐标也将填到空闲列表中。在添加数据记录的时候,首先检查空闲列表是否为空,如果不为空,则从空闲列表中取出一个数据区坐标,并将新添的数据记录写入该坐标对应的数据区中。当图1中的一个数据块记录满了之后,其所对应的图2中的一个空闲列表也将变空;当再次申请一个新的数据块时,将通过图2中的指针指向一个新的与再次申请的数据块相对应的空闲列表。
针对上述内存数据存储系统,本发明还提供了一种内存数据的插入方法和删除方法。
本发明提供的内存数据插入方法步骤包括:
步骤1:查询空闲列表中是否有一条内存区坐标信息,如果有则执行步骤2,否则执行步骤3;
步骤2:将新数据记录存储于该条内存区坐标信息所对应的数据块的内存区中,并将该条内存区坐标信息从空闲列表中删除;
步骤3:从内存中申请新的数据块,并建立与新的数据块对应的空闲列表,将新的数据记录存储于该新的数据块中并更新所述空闲列表。
图3为上述内存数据插入方法的一个实施方式的流程图(其中申请的内存块可存储10万条数据记录),其中,步骤3的实现方式为:从内存中申请新的数据块,将新数据记录存储于该数据块的第一个内存区中,建立与新的数据块对应的空闲列表,并将除了该第一个内存区以外的其他内存区坐标信息写入该空闲列表。
另外,步骤3还可以通过以下方式实现:从内存中申请新的数据块,建立与该新的数据块对应的空闲列表,并将新的数据块中所有的内存区坐标信息写入该空闲列表,将新数据记录存储于该空闲列表的第一条坐标记录所对应的数据块的内存区中,并将空闲列表的第一条坐标记录从空闲列表中删除。
如图4所示,本发明提供的内存数据的删除方法包括:对数据块中所要删除的数据记录作删除标记;将数据块中所要删除的数据记录所占用的内存区的坐标信息写入该数据块所对应的空间列表。
利用上述内存数据存储系统采用上述内存数据的插入和删除方法,一次申请10万条数据记录的空间,可以有效避免对内存的频繁申请和释放,防止由于内存碎片的增多而浪费内存;另外,通过空闲列表来管理数据区中没有使用的内存空间,当插入新数据记录时,能够从空闲列表上快速取得一个空闲记录的位置,比直接扫描所有数据区快5倍以上。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种内存数据存储系统,其特征在于:包括设置于内存中的数据块和与所述数据块对应的空闲列表;所述数据块用于存储多条数据记录,当对所述数据块中存储的某条数据记录进行删除操作时,不释放该数据记录所占用的内存区,只对该数据记录作删除标记;所述空闲列表用于存储所述数据块中未被数据记录占用的以及打上删除标记的内存区坐标信息。
2.根据权利要求1所述的内存数据存储系统,其特征在于:所述数据记录的第一个字节为删除标记位,当对所述数据块中存储的某条数据记录进行删除操作时,只在该数据记录的删除标记位上作删除标记。
3.根据权利要求1或2所述的内存数据存储系统,其特征在于:所述数据块存储数据记录的容量为100000条。
4.一种内存数据的插入方法,其特征在于,包括如下步骤:
步骤1:查询空闲列表中是否有一条内存区坐标信息,如果有则执行步骤2,否则执行步骤3;
步骤2:将新数据记录存储于该条内存区坐标信息所对应的数据块的内存区中,并将该条内存区坐标信息从空闲列表中删除;
步骤3:从内存中申请新的数据块,并建立与新的数据块对应的空闲列表,将新的数据记录存储于该新的数据块中并更新所述空闲列表。
5.根据权利要求4所述的内存数据的插入方法,其特征在于,所述步骤3包括:从内存中申请新的数据块,将新数据记录存储于该数据块的第一个内存区中,建立与新的数据块对应的空闲列表,并将除了该第一个内存区以外的其他内存区坐标信息写入该空闲列表。
6.根据权利要求4所述的内存数据的插入方法,其特征在于,所述步骤3包括:从内存中申请新的数据块,建立与该新的数据块对应的空闲列表,并将新的数据块中所有的内存区坐标信息写入该空闲列表,将新数据记录存储于该空闲列表的第一条坐标记录所对应的数据块的内存区中,并将空闲列表的第一条坐标记录从空闲列表中删除。
7.一种内存数据的删除方法,其特征在于,包括:对数据块中所要删除的数据记录作删除标记;将数据块中所要删除的数据记录所占用的内存区的坐标信息写入该数据块所对应的空间列表。
CN201110066129A 2011-03-18 2011-03-18 一种内存数据存储系统和内存数据的插入、删除方法 Pending CN102331973A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110066129A CN102331973A (zh) 2011-03-18 2011-03-18 一种内存数据存储系统和内存数据的插入、删除方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110066129A CN102331973A (zh) 2011-03-18 2011-03-18 一种内存数据存储系统和内存数据的插入、删除方法

Publications (1)

Publication Number Publication Date
CN102331973A true CN102331973A (zh) 2012-01-25

Family

ID=45483755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110066129A Pending CN102331973A (zh) 2011-03-18 2011-03-18 一种内存数据存储系统和内存数据的插入、删除方法

Country Status (1)

Country Link
CN (1) CN102331973A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014056398A1 (zh) * 2012-10-11 2014-04-17 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN104461923A (zh) * 2014-10-31 2015-03-25 深圳市锐明视讯技术有限公司 一种硬盘物理块管理方法及系统
CN104572323A (zh) * 2015-01-28 2015-04-29 深圳市锐明视讯技术有限公司 一种硬盘读取方法及装置
CN113568581A (zh) * 2021-07-29 2021-10-29 武汉天喻信息产业股份有限公司 一种嵌入式设备的多应用资源回收方法及系统
CN114153395A (zh) * 2021-11-30 2022-03-08 浙江大华技术股份有限公司 一种对象存储数据生命周期管理方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427342A (zh) * 2001-12-21 2003-07-02 上海贝尔有限公司 一种内存管理系统及其分配方法
JP2003248620A (ja) * 2002-02-25 2003-09-05 Kyocera Corp 動的メモリ管理方法及び動的メモリ管理情報処理装置
CN1622055A (zh) * 2003-11-25 2005-06-01 日本电气株式会社 用于移动终端的应用数据管理方法和其中使用的移动终端
CN1764981A (zh) * 2003-03-27 2006-04-26 皇家飞利浦电子股份有限公司 播放列表校准
CN1848118A (zh) * 2005-04-14 2006-10-18 三星电子株式会社 管理文件系统的设备和方法
CN101051317A (zh) * 2007-05-11 2007-10-10 北京中星微电子有限公司 一种fat文件系统及其处理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427342A (zh) * 2001-12-21 2003-07-02 上海贝尔有限公司 一种内存管理系统及其分配方法
JP2003248620A (ja) * 2002-02-25 2003-09-05 Kyocera Corp 動的メモリ管理方法及び動的メモリ管理情報処理装置
CN1764981A (zh) * 2003-03-27 2006-04-26 皇家飞利浦电子股份有限公司 播放列表校准
CN1622055A (zh) * 2003-11-25 2005-06-01 日本电气株式会社 用于移动终端的应用数据管理方法和其中使用的移动终端
CN1848118A (zh) * 2005-04-14 2006-10-18 三星电子株式会社 管理文件系统的设备和方法
CN101051317A (zh) * 2007-05-11 2007-10-10 北京中星微电子有限公司 一种fat文件系统及其处理方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014056398A1 (zh) * 2012-10-11 2014-04-17 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN104461923A (zh) * 2014-10-31 2015-03-25 深圳市锐明视讯技术有限公司 一种硬盘物理块管理方法及系统
WO2016065695A1 (zh) * 2014-10-31 2016-05-06 深圳市锐明视讯技术有限公司 一种硬盘物理块管理方法及系统
CN104461923B (zh) * 2014-10-31 2018-07-03 深圳市锐明技术股份有限公司 一种硬盘物理块管理方法及系统
CN104572323A (zh) * 2015-01-28 2015-04-29 深圳市锐明视讯技术有限公司 一种硬盘读取方法及装置
CN104572323B (zh) * 2015-01-28 2017-12-12 深圳市锐明技术股份有限公司 一种硬盘读取方法及装置
CN113568581A (zh) * 2021-07-29 2021-10-29 武汉天喻信息产业股份有限公司 一种嵌入式设备的多应用资源回收方法及系统
CN113568581B (zh) * 2021-07-29 2023-08-01 武汉天喻信息产业股份有限公司 一种嵌入式设备的多应用资源回收方法及系统
CN114153395A (zh) * 2021-11-30 2022-03-08 浙江大华技术股份有限公司 一种对象存储数据生命周期管理方法、装置及设备
CN114153395B (zh) * 2021-11-30 2024-05-14 浙江大华技术股份有限公司 一种对象存储数据生命周期管理方法、装置及设备

Similar Documents

Publication Publication Date Title
US10303596B2 (en) Read-write control method for memory, and corresponding memory and server
CN104462141B (zh) 一种数据存储与查询的方法、系统及存储引擎装置
CN103425435B (zh) 磁盘存储方法及磁盘存储系统
CN103370691A (zh) 管理缓冲器溢出状况
CN107256196A (zh) 基于闪存阵列的支持零拷贝的缓存系统及方法
CN107015763A (zh) 混合存储系统中ssd管理方法及装置
CN103838830A (zh) 一种HBase数据库的数据管理方法及系统
CN107463447A (zh) 一种基于远程直接非易失内存访问的b+树管理方法
CN102331973A (zh) 一种内存数据存储系统和内存数据的插入、删除方法
JP2006235960A (ja) ガーベッジコレクション高速化方法
CN102682108B (zh) 一种行列混合的数据库存储方法
US20190220443A1 (en) Method, apparatus, and computer program product for indexing a file
CN101799788B (zh) 一种分级管理存储资源的方法及系统
CN104281528A (zh) 一种数据存储方法及装置
CN110750372B (zh) 基于共享内存的日志系统及日志管理方法
CN102799660A (zh) 一种java卡对象管理方法
CN106156301A (zh) 一种大字段数据的处理方法及装置
CN105138282A (zh) 一种存储空间回收的方法及存储系统
CN102339318A (zh) 一种文件系统管理方法及系统
CN105469173A (zh) 一种静态内存进行优化管理的方法
CN102799583B (zh) 一种面向对象的存取方法及系统
CN102073690B (zh) 一种支持历史Key信息的内存数据库的构建方法
CN116257359A (zh) 数据处理方法及装置、存储介质及电子设备
CN106201918A (zh) 一种基于大数据量和大规模缓存快速释放的方法和系统
CN102270179B (zh) 用于cad系统的基于片元的数据存储和处理方法及其系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 100085 Haidian District, Zhongguancun, South Street, No. 6,, building information, floor, No. 16

Applicant after: SI-TECH Information Technology Ltd.

Address before: 100085, Beijing, Haidian District on the nine Street 9 digital science and Technology Plaza, two floor

Applicant before: Beijing Digital China SI-TECH Information Technology Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: BEIJING DIGITAL CHINA SI-TECH INFORMATION TECHNOLOGY LTD. TO: BEIJING SI-TECH INFORMATION TECHNOLOGY LTD.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120125