CN102799583B - 一种面向对象的存取方法及系统 - Google Patents

一种面向对象的存取方法及系统 Download PDF

Info

Publication number
CN102799583B
CN102799583B CN201110134795.1A CN201110134795A CN102799583B CN 102799583 B CN102799583 B CN 102799583B CN 201110134795 A CN201110134795 A CN 201110134795A CN 102799583 B CN102799583 B CN 102799583B
Authority
CN
China
Prior art keywords
data
instruction
data object
memory block
parameter
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.)
Active
Application number
CN201110134795.1A
Other languages
English (en)
Other versions
CN102799583A (zh
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.)
Shanghai Eisoo Information Technology Co Ltd
Original Assignee
Shanghai Eisoo Software 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 Shanghai Eisoo Software Co Ltd filed Critical Shanghai Eisoo Software Co Ltd
Priority to CN201110134795.1A priority Critical patent/CN102799583B/zh
Publication of CN102799583A publication Critical patent/CN102799583A/zh
Application granted granted Critical
Publication of CN102799583B publication Critical patent/CN102799583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明提供了一种面向对象的存取方法,该方法包括:A、根据数据管理指令和待处理数据对象的全局名字空间GNS信息,获得所述待处理数据对象的类别标识符CID,查找与所述CID对应的分类数据存储区;B、按照与所述CID对应的分类数据存储区上保存的优化性能参数和空间配额参数,对待处理数据对象进行数据管理;所述优化性能参数至少包含数据管理指令的优先级及数据管理参数;所述空间配额参数包含可用空间参数和已用空间参数。本发明还提供了一种面向对象的存取系统。采用本发明的方法及系统,能够对不同类别的数据进行统一管理,节省系统的资源,并能够使关键数据获得较优的读写性能。

Description

一种面向对象的存取方法及系统
技术领域
本发明涉及数据存取方法,特别涉及一种面向对象的存取方法及系统。
背景技术
现有文件系统是按照文件形式对数据进行存储的,换句话说,文件为该文件系统的基本存储单元。现有的文件系统仅能对文件形式的数据进行管理和优化,并且对文件形式的数据采用统一的性能优化配置,无法直接保存如数据库对象、邮件对象等非文件形式的数据,比如,邮件服务器存放邮件对象时,只能从内容级上对邮件对象的读写进行管理和优化,文件系统无法对邮件形成统一的读写管理和优化。现有的文件系统在对文件形式的数据进行存储时,采用的是卷级配额管理,即在文件形式的数据所存储的卷上设置可用空间的大小,但无法对非文件形式的数据设置可用空间,因此,现有的文件系统在对不同形式的数据的管理上还存在一定的局限性。
随着技术的发展,出现了一种面向对象的存取系统,该系统的基本存储单元是对象形式的数据而不单单是文件形式的数据,该系统中的对象形式的数据既可以是文件形式的数据,也可以是邮件对象、数据库对象等其他非文件形式的数据对象。但是,现有的面向对象的存取系统对对象形式的数据仍采用统一的性能优化配置,同样无法实现不同类别数据的空间配额管理,即为不同类别数据设置相应的可用空间。
综上所述,现有的面向对象的存取系统无法对不同类别的数据进行统一的管理,浪费系统的资源,且无法设置相应的性能优化配置,进而无法保证在系统负载较大时,该系统的关键数据能够获得较优的读写性能。
发明内容
有鉴于此,本发明的目的在于提供一种面向对象的存取方法,该方法能够对不同类别的数据进行统一管理,节省系统的资源,并能够使关键数据获得较优的读写性能。
本发明的目的在于提供一种面向对象的存取系统,该系统能够对不同类别的数据进行统一管理,节省系统的资源,并能够使关键数据获得较优的读写性能。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种面向对象的存取方法,该方法包括:
A、根据数据管理指令和待处理数据对象的全局名字空间GNS信息,获得所述待处理数据对象的类别标识符CID,查找与所述CID对应的分类数据存储区;
B、按照与所述CID对应的分类数据存储区上保存的优化性能参数和空间配额参数,对待处理数据对象进行数据管理;
所述优化性能参数至少包含数据管理指令的优先级及数据管理参数;所述空间配额参数包含可用空间参数和已用空间参数。
较佳地,步骤A之前进一步包括:
A’、根据存储区创建指令及数据对象的CID,在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区,在分类数据存储区上保存该分类数据存储区的优化性能参数和空间配额参数。
较佳地,步骤A’所述在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区之前,进一步包括:
A”、判断介质池属性中的可用空间是否小于待创建的分类数据存储区所需存储空间,如果是,则对介质池进行扩展,并更新介质池属性中的可用空间。
上述方法中,所述步骤A’包括:
A1’、根据数据对象的CID,判断所述介质池的任一数据介质上是否存在与所述数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,执行步骤A2’;
A2’、判断所述介质池是否存在一个数据介质的介质属性的可用空间大于或等于待创建的分类数据存储区所需存储空间,如果是,则在所述一个数据介质上创建对应于所述CID的分类数据存储区,否则在所述介质池的多个数据介质上创建对应于所述CID的分类数据存储区;
A3’、在所述对应于CID的分类数据存储区覆盖的第一个数据介质上保存预设的该分类数据存储区的优化性能参数和空间配额参数。
上述方法中,步骤A所述数据管理指令为创建数据对象指令时,所述数据管理指令的优先级为第一位,所述数据管理参数为待处理数据对象所需存储空间,所述可用空间参数为存储区的可用空间,所述已用空间参数为存储区的已用空间;
所述步骤B包括:
B1、根据所述优化性能参数及优先级插入算法,将创建数据对象指令插入指令队列的第一位;
B2、在按照优先级由高至低的顺序,从指令队列中读取创建数据对象指令时,判定存储区的可用空间大于或等于待处理数据对象所需存储空间,在与所述CID对应的分类数据存储区内创建待处理数据对象,生成待处理数据对象的名称。
上述方法中,步骤A所述数据管理指令为删除数据对象指令时,所述数据管理指令的优先级为第一位,所述数据管理参数为待处理数据对象的名称,所述可用空间参数为存储区的可用空间,所述已用空间参数为存储区的已用空间;
所述步骤B包括:
B3、根据所述优化性能参数及优先级插入算法,将删除数据对象指令插入指令队列的第一位;
B4、在按照优先级由高至低的顺序,从指令队列中读取删除数据对象指令时,根据待处理数据对象的名称,删除与所述CID对应的分类数据存储区中的待处理数据对象。
上述方法中,步骤A所述数据管理指令为浏览数据对象指令时,所述数据管理指令的优先级为第二位,所述数据管理参数为待处理数据对象的名称;
所述步骤B包括:
B5、根据所述优化性能参数及优先级插入算法,将浏览数据对象指令插入指令队列的第二位;
B6、在按照优先级由高至低的顺序,从指令队列中读取浏览数据对象指令时,根据待处理数据对象的名称,读取或打开与所述CID对应的分类数据存储区中的待处理数据对象。
上述方法中,步骤A所述数据管理指令为写数据对象指令时,所述数据管理指令的优先级为第三位,所述数据管理参数为待处理数据对象名称、写数据缓存区大小及连续写数据块个数,
所述可用空间参数为存储区的可用空间和数据对象可用空间,所述已用空间参数为存储区的已用空间和数据对象已用空间;
所述步骤B包括:
B7、根据写数据对象指令及写数据缓存区大小,判断写数据缓存区是否已满,如果是,释放写数据缓存区,执行步骤B8,否则直接执行步骤B8;
B8、按照所述优化性能参数及优先级插入算法,将写数据对象指令插入指令队列的第三位;
B9、在按照优先级由高至低的顺序,从指令队列中读取写数据对象指令时,根据待处理对象的名称,判断存储区的可用空间和数据对象可用空间是否都大于或等于待处理数据对象所需存储空间,如果是,执行步骤B10,否则,返回写入失败响应;
B10、根据连续写数据块个数,将待处理数据对象包含的数据块存入写数据缓存区中,并在写数据缓存区被写满时,将写数据缓存区中暂存的待处理数据对象包含的数据块写入已创建的分类数据存储区中,更新所述可用空间参数和所述已用空间参数。
上述方法中,步骤A所述数据管理指令为读数据对象指令时,所述数据管理指令的优先级为第三位,所述数据管理参数为待处理数据对象名称、读数据缓存区大小及连续读数据块个数;
所述步骤B包括:
B11、根据所述优化性能参数及优先级插入算法,将读数据对象指令插入指令队列的第三位;
B12、在按照优先级由高至低的顺序,从指令队列中读取写数据对象指令后,执行步骤B13;
B13、判断是否从读数据缓存区中读取待处理数据对象,如果是,则根据连续读数据块个数,从待处理数据对象所属的分类数据存储区中,读取待处理数据对象包含的数据块至读数据缓存区中,否则,执行步骤B14;
B14、判断读数据缓存区是否已满,如果是,则根据连续读数据块个数,从读数据缓存区中读取数据块,否则,产生从读数据缓存区中读取待处理数据对象的指令,并执行B13。
上述方法中,所述GNS的格式为gns://CID/objectName,所述objectName是数据对象的名称。
一种面向对象的存取系统,该系统包括:包含多个数据介质的介质池及管理模块;
所述管理模块根据数据管理指令和待处理数据对象的GNS信息,获得所述待处理数据对象的类别标识符CID,查找与所述CID对应的分类数据存储区,按照与所述CID对应的分类数据存储区的优化性能参数和空间配额参数,对待处理数据对象进行数据管理;
所述优化性能参数至少包含数据管理指令的优先级及数据管理参数;所述空间配额参数包含可用空间参数和已用空间参数。
较佳地,所述管理模块进一步根据存储区创建指令及数据对象的类别标识符CID,在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区,在分类数据存储区上保存该分类数据存储区的优化性能参数和空间配额参数。
较佳地,所述管理模块进一步用于判断介质池属性中的可用空间是否大于或等于待创建的分类数据存储区所需存储空间,如果是,则在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区,否则,对介质池进行扩展,并更新介质池属性中的可用空间。
上述系统中,所述管理模块包括:
数据管理单元,根据存储区创建指令及数据对象的CID,判断所述介质池的任一数据介质上是否存在与所述数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,输入容量查询指令至容量管理单元;根据容量管理单元反馈的信息,在介质池的一个或多个数据介质上创建对应于所述CID的分类数据存储区,在所述对应于CID的分类数据存储区覆盖的第一个数据介质上保存预设的该分类数据存储区的优化性能参数和空间配额参数;将所述CID作为查找所述分类数据存储区的第一级子目录名称,生成所述数据对象的GNS信息;
所述数据管理单元根据数据管理指令和待处理数据对象的GNS信息,获得所述待处理数据对象的CID,查找与所述CID对应的分类数据存储区,按照与所述CID对应的分类数据存储区的优化性能参数和空间配额参数,对待处理数据对象进行数据管理;
容量管理单元,根据容量查询指令,判断所述介质池是否存在一个数据介质的介质属性中的可用空间大于或等于待创建的分类数据存储区所需存储空间,如果是,则将所述一个数据介质的信息反馈给数据管理单元,否则,将所述介质池的多个数据介质的信息反馈给数据管理单元。
上述系统中,所述数据管理单元包括:
存储区创建子单元,根据数据对象的CID,判断所述介质池的任一数据介质上是否存在与所述数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,输入容量查询指令至容量管理单元;根据容量管理单元反馈的信息,在介质池的一个或多个数据介质上创建对应于所述CID的分类数据存储区,在所述对应于CID的分类数据存储区覆盖的第一个数据介质上保存预设的该分类数据存储区的优化性能参数和空间配额参数;将所述CID作为查找所述分类数据存储区的第一级子目录名称,生成所述数据对象的GNS信息;
数据管理子单元,根据数据管理指令和待处理数据对象的GNS信息,获得所述待处理数据对象的CID,查找与所述CID对应的分类数据存储区,按照与所述CID对应的分类数据存储区的优化性能参数和空间配额参数,对待处理数据对象进行数据管理。
上述系统中,所述数据管理子单元包括:
命令队列,用于保存数据管理指令及优化性能参数的队列;所述数据管理指令为创建数据对象指令、删除数据对象指令、浏览数据对象指令、写数据对象指令或读数据对象指令;
结果队列,用于保存数据管理指令的执行结果的队列;
对象存取线程,用于根据优化性能参数包含的数据管理指令的优先级,按照优先级的高低,将输入的数据管理指令及优化性能参数插入命令队列中;用于按照优先级的高低,从结果队列中读取数据管理指令的执行结果并输出;
数据管理线程,根据数据管理指令和待处理数据对象的GNS信息,获得所述待处理数据对象的CID,查找与所述CID对应的分类数据存储区;按照优先级的高低,从命令队列中读取数据管理指令及其优化性能参数,并从容量管理单元获取空间配额参数,根据数据管理指令,创建数据对象、删除数据对象、浏览数据对象、写数据对象或读数据对象,对待处理数据对象进行数据管理;按照优先级的高低,将数据管理指令的执行结果写入结果队列。
由上述的技术方案可见,本发明提供了一种面向对象的存取方法及系统,在介质池的至少一个数据介质上创建用以保存不同类别数据的分类数据存储区,并采用GNS信息来标识分类数据存储区,采用CID来对数据对象所属数据类别进行标识,实现了对不同类别数据对象的统一管理,节省了资源;按照包含数据管理指令的优先级的优化性能参数及数据管理指令,对待处理数据对象进行数据管理,能够使关键数据获得较优的读写性能。
附图说明
图1为本发明一种面向对象的存取方法的流程图。
图2为本发明写数据对象的方法流程图。
图3为本发明读数据对象的方法流程图。
图4为本发明一种面向对象的存取系统的结构示意图。
图5为本发明数据管理子单元的结构示意图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明提供了一种面向对象的存储方法及系统,该系统在介质池的至少一个数据介质上创建用以保存不同类别数据的分类数据存储区,并采用全局名字空间(Global Namespace,GNS)信息来标识分类数据存储区,采用类别标识符(Class Identifier,CID)来对数据对象所属数据类别进行标识,实现了对不同类别数据的统一管理;该系统对于不同的数据管理指令设置了不同的优先级,并对同一数据管理指令下的不同类别的数据设置了不同的优先级,使得关键数据能够获得较优的读写性能。
本发明的数据对象为基本存储单元,它可以为文件、数据库或邮件等;在本发明中,每一个数据对象都包含若干个数据块和用以标识数据对象的属性信息的元数据。其中,数据块为对本发明的数据对象进行数据管理的操作粒度,即进行数据管理的操作对象;元数据的格式和内容可根据数据对象进行预先定义,在本发明的下述实施例中,不再对元数据的具体含义进行说明。
图1为本发明一种面向对象的存取方法的流程图。现结合图1,对本发明一种面向对象的存取方法进行说明,具体如下:
步骤101:根据CID创建分类数据存储区,并生成GNS信息;
该步骤包括:步骤1011,根据存储区创建指令,判断介质池属性中的可用空间是否小于待创建的分类数据存储区所需存储空间,如果是,则对介质池进行扩展并更新介质池属性,执行步骤1012,否则直接执行步骤1012;步骤1012,根据数据对象的CID,判断介质池的任一数据介质上是否存在与CID对应的分类数据存储区,如果是则忽略存储区创建指令,否则执行步骤1013;步骤1013,判断介质池是否存在一个数据介质的介质属性中的可用空间大于或等于待创建的分类数据存储区所需存储空间,如果是,则在一个数据介质上创建对应于CID的分类数据存储区,否则,根据待创建的分类数据存储区所需存储空间,选择介质池中的多个数据介质来创建对应于CID的分类数据存储区;步骤1014,在对应于CID的分类数据存储区所覆盖的第一个数据介质上保存预设的该分类数据存储区的性能优化参数和空间配额参数;步骤1015,将CID作为查找分类数据存储区的第一级子目录名称,生成数据对象的GNS信息。
其中,优化性能参数至少包含数据管理指令的优先级及数据管理参数;空间配额参数包含可用空间参数和已用空间参数。本发明中的优化性能参数和空间配额参数包含的参数是与具体的数据管理指令相关的,需要根据不同的数据管理指令预先设置。
步骤1011中,对介质池进行扩展的方法为增加介质池所包含的用以创建分类数据存储区的数据介质,这里可以增加数据介质的个数,也可以扩展介质池已包含的多个数据介质的存储空间。
步骤1013中,根据待创建的分类数据存储区所需存储空间,选择介质池中的多个数据介质来创建对应于CID的分类数据存储区,在选择多个数据介质时,按照介质池中各个数据介质的添加先后顺序进行选择,在添加在先的数据介质的可用空间为0时,选择添加于该数据介质之后的一个数据介质进行可用空间的判断。
步骤1014中,对应于CID的分类数据存储区所覆盖的第一个数据介质为最早添加至介质池的数据介质。
本发明中的GNS可采用的格式为gns://CID/extensionName/objectName;CID为该数据对象所属的类别ID;extensionName是该数据对象的扩展名称,可省略;objectName是该数据对象本身的名称。其中,CID可采用GUID算法,其值可由一个32字符的十六进制数值组成。
步骤102:根据数据管理指令和待处理数据的GNS信息,查找与CID对应的分类数据存储区;
该步骤包括:步骤1021,根据数据管理指令,从待处理数据的GNS信息中获取待处理对象的CID;步骤1022,根据待处理对象的CID,判断介质池包含的数据介质上是否存在与CID对应的分类数据存储区,如果是,则寻址至与CID对应的分类数据存储区,否则,忽略本次的数据管理指令,并输出CID查找失败消息,以提示用户尚未建立与CID对应的分类数据存储区。
其中,数据管理指令为创建数据对象指令、删除数据对象指令、浏览数据对象指令、写数据对象指令或读数据对象指令。
步骤103:按照优化性能参数和空间配合参数,对待处理数据对象进行数据管理。
在数据管理指令为创建数据对象指令时,优化性能参数包含的数据管理指令的优先级为第一位,数据管理参数为待处理数据对象所需存储空间,空间配额参数包含的可用空间参数为存储区的可用空间,已用空间参数为存储区的已用空间,步骤103包括:
步骤1031,根据优化性能参数及优先级插入算法,将创建数据对象指令插入指令队列的第一位;步骤1032,在按照优先级由高至低的顺序,从指令队列中读取创建数据对象指令时,判定存储区的可用空间大于或等于待处理数据对象所需存储空间,在与CID对应的分类数据存储区内创建待处理数据对象,生成待处理数据对象的名称。
在步骤1032之后,还可进一步包括:将待处理数据对象的名称作为CID的下一级目录名称,更新待处理数据对象的GNS信息。
步骤1031中的优先级插入算法包括:步骤10311,判断当前的数据管理指令的优先级是否小于待插入的数据管理指令的优先级,如果是,则将待插入的数据管理指令向优先级高的方向,移动一个指令,执行步骤10311,否则执行步骤10312,将带插入的数据管理指令插入当前的数据管理指令之后。
在数据管理指令为除创建数据对象指令之外的其他指令时,也需要执行优先级插入算法,在下述说明中,不再对优先级插入算法进行说明。
数据管理指令为删除数据对象指令时,优化性能参数包含的数据管理指令的优先级为第一位,数据管理参数为待处理数据对象的名称,空间配额参数包含的可用空间参数为存储区的可用空间,已用空间参数为存储区的已用空间。步骤103包括:
步骤1033,根据优化性能参数及优先级插入算法,将删除数据对象指令插入指令队列的第一位;步骤1034,在按照优先级由高至低的顺序,从指令队列中读取删除数据对象指令时,根据待处理数据对象的名称,删除与CID对应的分类数据存储区中的待处理数据对象。
在步骤1034之后,还可进一步包括:删除CID的下一级目录名称中的待处理数据对象的名称,更新待处理数据对象的GNS信息、存储区的可用空间和存储区的已用空间。
数据管理指令为浏览数据对象指令时,优化性能参数包含的数据管理指令的优先级为第二位,数据管理参数为待处理数据对象的名称。步骤103包括:
步骤1035,根据优化性能参数及优先级插入算法,将浏览数据对象指令插入指令队列的第二位;步骤1036,在按照优先级由高至低的顺序,从指令队列中读取浏览数据对象指令时,根据待处理数据对象的名称,读取或打开与CID对应的分类数据存储区中的待处理数据对象。
数据管理指令为写数据对象指令时,优化性能参数包含的数据管理指令的优先级为第三位,数据管理参数为待处理数据对象名称、写数据缓存区大小及连续写数据块个数;可用空间参数为存储区的可用空间和数据对象可用空间,已用空间参数为存储区的已用空间和数据对象已用空间。
图2为本发明写数据对象的方法流程图。现结合图2,对本发明步骤103中写数据对象的具体方法进行说明,具体如下:
本实施例中的写数据缓存区进一步包括内存数据缓存区和缓存介质。
2031,根据写数据对象指令,判断与待处理数据对象对应的内存数据缓存区是否已满,如果是,执行步骤2032,否则执行步骤2034;
步骤2032,判断与待处理数据对象对应的缓存介质是否已满,如果是,执行步骤2033,否则执行步骤2034;
步骤2033,清空内存数据缓存区和缓存介质;
步骤2034,按照优化性能参数及优先级插入算法,将写数据对象指令插入指令队列的第三位;
步骤2035,按照优先级由高至低的顺序,从指令队列中读取写数据对象指令;
步骤2036,根据待处理对象的名称,判断存储区的可用空间和数据对象可用空间是否都大于或等于待处理数据对象所需存储空间,如果是,执行步骤2037,否则,执行步骤2039;
步骤2037,根据连续写数据块个数,将待处理数据对象包含的数据块存入未被写满的内存数据缓存区或未被写满的缓存介质中;
步骤2038,在写数据缓存区或缓存介质被写满时,将写数据缓存区或缓存介质中暂存的待处理数据对象包含的数据块写入已创建的分类数据存储区中,更新可用空间参数和已用空间参数;
步骤2039,返回写入失败响应。
其中,步骤2037中,在完成对待处理数据对象包含的一个数据块的写入后,就可更新可用空间参数中数据对象的可用空间及已用空间参数中数据对象的已用空间;在完成对待处理数据对象包含的所有数据块的写入后,就可更新可用空间参数中存储区的可用空间及已用空间参数中存储区的已用空间。
数据管理指令为读数据对象指令时,数据管理指令的优先级为第三位,数据管理参数为待处理数据对象名称、读数据缓存区大小及连续读数据块个数。
图3为本发明读数据对象的方法流程图。现结合图3,对本发明步骤103中读数据对象的方法进行说明,具体如下:
本实施例的读数据缓存区包含内存数据缓存区和缓存介质。
步骤3031,根据优化性能参数及优先级插入算法,将读数据对象指令插入指令队列的第三位;
步骤3032,按照优先级由高至低的顺序,从指令队列中读取写数据对象指令;
步骤3033,判断是否从读数据缓存区中读取待处理数据对象,如果是,则执行3037,否则执行步骤3034;
步骤3034,判断读数据缓存区是否已满,如果是,则执行步骤3035,否则执行步骤3036;
步骤3035,根据连续读数据块个数,从读数据缓存区中读取数据块;
步骤3036,产生从读数据缓存区中读取待处理数据对象的指令,并执行步骤3033;
步骤3037,根据连续读数据块个数,从待处理数据对象所属的分类数据存储区中,读取待处理数据对象包含的数据块至读数据缓存区中。
其中,步骤3033中判断是否从读数据缓存区中读取待处理数据对象的依据是接收到的读取写数据对象指令的属性,接收到的读区写数据对象指令可能是外部输入的数据管理指令的一种,也可能是步骤3036中产生的从读数据缓存区中读取待处理数据对象的指令。
由于多个数据管理指令可能具有相同的优先级,在利用优先级插入算法进行指令排队时,可进一步根据预设的待处理数据对象的优先级进行指令排队,比如,具有较高优先级的待处理数据对象的创建数据对象指令排列在具有较低优先级的待处理数据对象的删除数据对象指令之前;在对同一优先级的多个待处理数据对象执行同一优先级的数据管理指令时,可按照先入先出算法进行指令排队,比如,先加入指令队列的数据管理指令被先执行。
图4为本发明一种面向对象的存取系统的结构示意图。现结合图4,对本发明一种面向对象的存取系统的结构进行说明,具体如下:
本发明一种面向对象的存储系统包括:介质池40和管理模块41。其中,介质池40包含多个数据介质401。
管理模块41根据存储区创建指令及数据对象的CID,在介质池40包含的至少一个数据介质401上创建对应于CID的分类数据存储区,在分类数据存储区上保存该分类数据存储区的优化性能参数和空间配额参数,并根据CID生成数据对象的GNS信息。
管理模块41根据数据管理指令和待处理数据对象的GNS信息,获得待处理数据对象的CID,查找与CID对应的分类数据存储区,按照与CID对应的分类数据存储区的优化性能参数和空间配额参数,对待处理数据对象进行管理。
管理模块41进一步用于判断介质池40的属性中记录的介质池的可用空间是否大于或等于待创建的分类数据存储区所需存储空间,如果是,则在介质池40包含的至少一个数据介质401上创建对应于CID的分类数据存储区,否则,对介质池40进行扩展,并更新介质池40的属性中记录的介质池的可用空间。其中,管理模块41可将已有的介质作为介质池40的数据介质401,添加至本发明的存取系统中,以对介质池40的可用空间进行扩展。
其中,管理模块41包含数据管理单元411和容量管理单元412。
数据管理单元411根据存储区创建指令及数据对象的CID,判断介质池40的任一数据介质401上是否存在与数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,输入容量查询指令至容量管理单元412;根据容量管理单元412反馈的信息,在介质池40的一个或多个数据介质401上创建对应于所述CID的分类数据存储区,在对应于CID的分类数据存储区覆盖的第一个数据介质401上保存预设的该分类数据存储区的优化性能参数和空间配额参数;将CID作为查找分类数据存储区的第一级子目录名称,生成数据对象的GNS信息。
数据管理单元411根据数据管理指令和待处理数据对象的GNS信息,获得待处理数据对象的CID,查找与CID对应的分类数据存储区,按照与CID对应的分类数据存储区的优化性能参数和空间配额参数,对待处理数据对象进行数据管理。
容量管理单元412用于根据数据管理单元411输出的容量查询指令,判断介质池40是否存在一个数据介质401的可用空间大于或等于创建分类数据存储区所需存储空间,如果是,则将该数据介质401的信息反馈给数据管理单元411,否则,将介质池40的多个数据介质401的信息反馈给数据管理单元411。容量管理单元412可从介质池40、数据介质401或分类数据存储区上保存的用以记载属性的文件中,获得其可用空间和已用空间,进而根据数据管理单元411输出的容量查询指令,判断介质池40、数据介质401或分类数据存储区的可用空间是否满足需求;容量管理单元412可在数据管理单元411完成对介质池40的任何操作,对介质池40、数据介质401或分类数据存储区的属性中的可用空间和已用空间进行更新,实现对上述存储介质的有效管理。
其中,数据管理单元411包括存储区创建子单元4111和数据管理子单元4112。
存储区创建子单元4111根据数据对象的CID,判断介质池40的任一数据介质401上是否存在与数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,输入容量查询指令至容量管理单元412;根据容量管理单元412反馈的信息,在介质池40的一个或多个数据介质401上创建对应于CID的分类数据存储区,在对应于CID的分类数据存储区覆盖的第一个数据介质401上保存预设的该分类数据存储区的优化性能参数和空间配额参数;将CID作为查找分类数据存储区的第一级子目录名称,生成数据对象的GNS信息。
数据管理子单元4112根据数据管理指令和待处理数据对象的GNS信息,获得所述待处理数据对象的CID,查找与所述CID对应的分类数据存储区,按照与所述CID对应的分类数据存储区的优化性能参数和空间配额参数,对待处理数据对象进行数据管理。
图5为本发明数据管理子单元的结构示意图。现结合图5,对本发明数据管理子单元的结构进行说明,具体如下:
本发明的数据管理子单元4112包含:命令队列501、结果队列502、对象存取线程503和数据管理线程504。
命令队列501用于保存数据管理指令及优化性能参数的队列;数据管理指令为创建数据对象指令、删除数据对象指令、浏览数据对象指令、写数据对象指令或读数据对象指令。
结果队列502用于保存数据管理指令的执行结果的队列。其中,数据管理指令的执行结果包含:创建数据对象成功、创建数据对象失败、删除数据对象成功、删除数据对象失败、待浏览数据对象包含的数据块、写数据对象成功、写数据对象失败、待读取的数据对象包含的数据块或读数据对象失败等结果。
对象存取线程503用于根据优化性能参数包含的数据管理指令的优先级,按照优先级的高低,将输入的数据管理指令及优化性能参数插入命令队列501中;用于按照优先级的高低,从结果队列502中读取数据管理指令的执行结果并输出。
数据管理线程504根据数据管理指令和待处理数据对象的GNS信息,获得所述待处理数据对象的CID,查找与所述CID对应的分类数据存储区;按照优先级的高低,从命令队列501中读取数据管理指令及其优化性能参数,并从容量管理单元412获取空间配额参数,根据数据管理指令,创建数据对象、删除数据对象、浏览数据对象、写数据对象或读数据对象,对待处理数据对象进行数据管理;按照优先级的高低,将数据管理指令的执行结果写入结果队列502。
其中,数据管理线程504再根据具体的数据管理指令,对待处理数据对象进行数据管理的过程中,可按照图1中的步骤103的方法,对命令队列501、结果队列502、数据介质401、介质池40包含的缓存介质(图4中未示出)及内存数据缓存区(图4中未示出)进行具体的操作,实现对待处理数据对象执行具体的数据管理,在此不再赘述。
本发明的上述较佳实施例中,使用GNS和CID对数据对象进行标识,而可以将不同平台、不同协议、不同类型的数据对象命名同一,并且保证了在全局范围内进行唯一标识;通过GNS,可以对多个数据对象进行有效的管理和访问,且多个数据对象可以属于不同类别的数据,节约了系统资源。本发明中每一类数据对象的CID是不同的,且相同的CID所对应的分类数据存储区具有不同的性能优化参数,在使用本发明的方法及系统进行数据对象的存取时,用于保存关键数据的分类数据存储区的性能优化参数的优先级可以设置地高一些,从而使该分类数据存储区上保存的关键数据获得较优的读写性能,换句话说,本发明的系统和方法对于不同的数据管理指令设置了不同的优先级,并对同一数据管理指令下的不同类别的数据设置了不同的优先级,使得关键数据能够获得较优的读写性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (12)

1.一种面向对象的存取方法,其特征在于,该方法包括:
A、根据数据管理指令和待处理数据对象的全局名字空间GNS信息,获得所述待处理数据对象的类别标识符CID,查找与所述CID对应的分类数据存储区;
B、按照与所述CID对应的分类数据存储区上保存的优化性能参数和空间配额参数,对待处理数据对象进行数据管理;
所述优化性能参数至少包含数据管理指令的优先级及数据管理参数;所述空间配额参数包含可用空间参数和已用空间参数;
在步骤A之前进一步包括:
A’、根据存储区创建指令及数据对象的CID,在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区,在分类数据存储区上保存该分类数据存储区的优化性能参数和空间配额参数;
步骤A’所述在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区之前,进一步包括:
A”、判断介质池属性中的可用空间是否小于待创建的分类数据存储区所需存储空间,如果是,则对介质池进行扩展,并更新介质池属性中的可用空间;
所述步骤A’包括:
A1’、根据数据对象的CID,判断所述介质池的任一数据介质上是否存在与所述数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,执行步骤A2’;
A2’、判断所述介质池是否存在一个数据介质的介质属性的可用空间大于或等于待创建的分类数据存储区所需存储空间,如果是,则在所述一个数据介质上创建对应于所述CID的分类数据存储区,否则在所述介质池的多个数据介质上创建对应于所述CID的分类数据存储区;
A3’、在所述对应于CID的分类数据存储区覆盖的第一个数据介质上保存预设的该分类数据存储区的优化性能参数和空间配额参数;
其中,所述GNS的格式为gns://CID/objectName,所述objectName是数据对象的名称。
2.根据权利要求1所述的方法,其特征在于,步骤A所述数据管理指令为创建数据对象指令时,所述数据管理指令的优先级为第一位,所述数据管理参数为待处理数据对象所需存储空间,所述可用空间参数为存储区的可用空间,所述已用空间参数为存储区的已用空间;
所述步骤B包括:
B1、根据所述优化性能参数及优先级插入算法,将创建数据对象指令插入指令队列的第一位;
B2、在按照优先级由高至低的顺序,从指令队列中读取创建数据对象指令时,判定存储区的可用空间大于或等于待处理数据对象所需存储空间时,在与所述CID对应的分类数据存储区内创建待处理数据对象,生成待处理数据对象的名称。
3.根据权利要求1所述的方法,其特征在于,步骤A所述数据管理指令为删除数据对象指令时,所述数据管理指令的优先级为第一位,所述数据管理参数为待处理数据对象的名称,所述可用空间参数为存储区的可用空间,所述已用空间参数为存储区的已用空间;
所述步骤B包括:
B3、根据所述优化性能参数及优先级插入算法,将删除数据对象指令插入指令队列的第一位;
B4、在按照优先级由高至低的顺序,从指令队列中读取删除数据对象指令时,根据待处理数据对象的名称,删除与所述CID对应的分类数据存储区中的待处理数据对象。
4.根据权利要求1所述的方法,其特征在于,步骤A所述数据管理指令为浏览数据对象指令时,所述数据管理指令的优先级为第二位,所述数据管理参数为待处理数据对象的名称;
所述步骤B包括:
B5、根据所述优化性能参数及优先级插入算法,将浏览数据对象指令插入指令队列的第二位;
B6、在按照优先级由高至低的顺序,从指令队列中读取浏览数据对象指令时,根据待处理数据对象的名称,读取或打开与所述CID对应的分类数据存储区中的待处理数据对象。
5.根据权利要求1所述的方法,其特征在于,步骤A所述数据管理指令为写数据对象指令时,所述数据管理指令的优先级为第三位,所述数据管理参数为待处理数据对象名称、写数据缓存区大小及连续写数据块个数,
所述可用空间参数为存储区的可用空间和数据对象可用空间,所述已用空间参数为存储区的已用空间和数据对象已用空间;
所述步骤B包括:
B7、根据写数据对象指令及写数据缓存区大小,判断写数据缓存区是否已满,如果是,释放写数据缓存区,执行步骤B8,否则直接执行步骤B8;
B8、按照所述优化性能参数及优先级插入算法,将写数据对象指令插入指令队列的第三位;
B9、在按照优先级由高至低的顺序,从指令队列中读取写数据对象指令时,根据待处理对象的名称,判断存储区的可用空间和数据对象可用空间是否都大于或等于待处理数据对象所需存储空间,如果是,执行步骤B10,否则,返回写入失败响应;
B10、根据连续写数据块个数,将待处理数据对象包含的数据块存入写数据缓存区中,并在写数据缓存区被写满时,将写数据缓存区中暂存的待处理数据对象包含的数据块写入已创建的分类数据存储区中,更新所述可用空间参数和所述已用空间参数。
6.根据权利要求1所述的方法,其特征在于,步骤A所述数据管理指令为读数据对象指令时,所述数据管理指令的优先级为第三位,所述数据管理参数为待处理数据对象名称、读数据缓存区大小及连续读数据块个数;
所述步骤B包括:
B11、根据所述优化性能参数及优先级插入算法,将读数据对象指令插入指令队列的第三位;
B12、在按照优先级由高至低的顺序,从指令队列中读取读数据对象指令后,执行步骤B13;
B13、判断是否从读数据缓存区中读取待处理数据对象,如果是,则根据连续读数据块个数,从待处理数据对象所属的分类数据存储区中,读取待处理数据对象包含的数据块至读数据缓存区中,否则,执行步骤B14;
B14、判断读数据缓存区是否已满,如果是,则根据连续读数据块个数,从读数据缓存区中读取数据块,否则,产生从读数据缓存区中读取待处理数据对象的指令,并执行B13。
7.一种面向对象的存取系统,其特征在于,该系统包括:
模块A”,用于判断介质池属性中的可用空间是否小于待创建的分类数据存储区所需存储空间,如果是,则对介质池进行扩展,并更新介质池属性中的可用空间;
模块A’,用于根据存储区创建指令及数据对象的CID,在介质池包含的至少一个数据介质上创建对应于所述CID的分类数据存储区,在分类数据存储区上保存该分类数据存储区的优化性能参数和空间配额参数;
模块A,用于根据数据管理指令和待处理数据对象的全局名字空间GNS信息,获得所述待处理数据对象的类别标识符CID,查找与所述CID对应的分类数据存储区;
模块B,按照与所述CID对应的分类数据存储区上保存的优化性能参数和空间配额参数,对待处理数据对象进行数据管理;
其中,所述模块A’包括:
模块A1’、用于根据数据对象的CID,判断所述介质池的任一数据介质上是否存在与所述数据对象的CID对应的分类数据存储区,如果是,则忽略存储区创建指令,否则,执行模块A2’的操作;
模块A2’,用于判断所述介质池是否存在一个数据介质的介质属性的可用空间大于或等于待创建的分类数据存储区所需存储空间,如果是,则在所述一个数据介质上创建对应于所述CID的分类数据存储区,否则在所述介质池的多个数据介质上创建对应于所述CID的分类数据存储区;
模块A3’,用于在所述对应于CID的分类数据存储区覆盖的第一个数据介质上保存预设的该分类数据存储区的优化性能参数和空间配额参数;
其中,所述优化性能参数至少包含数据管理指令的优先级及数据管理参数;所述空间配额参数包含可用空间参数和已用空间参数;所述GNS的格式为gns://CID/objectName,所述objectName是数据对象的名称。
8.根据权利要求7所述的系统,其特征在于,模块A中所述数据管理指令为创建数据对象指令时,所述数据管理指令的优先级为第一位,所述数据管理参数为待处理数据对象所需存储空间,所述可用空间参数为存储区的可用空间,所述已用空间参数为存储区的已用空间;
所述模块B包括:
模块B1,用于根据所述优化性能参数及优先级插入算法,将创建数据对象指令插入指令队列的第一位;
模块B2,用于在按照优先级由高至低的顺序,从指令队列中读取创建数据对象指令时,判定存储区的可用空间大于或等于待处理数据对象所需存储空间时,在与所述CID对应的分类数据存储区内创建待处理数据对象,生成待处理数据对象的名称。
9.根据权利要求7所述的系统,其特征在于,模块A中所述数据管理指令为删除数据对象指令时,所述数据管理指令的优先级为第一位,所述数据管理参数为待处理数据对象的名称,所述可用空间参数为存储区的可用空间,所述已用空间参数为存储区的已用空间;
所述模块B包括:
模块B3,用于根据所述优化性能参数及优先级插入算法,将删除数据对象指令插入指令队列的第一位;
模块B4,用于在按照优先级由高至低的顺序,从指令队列中读取删除数据对象指令时,根据待处理数据对象的名称,删除与所述CID对应的分类数据存储区中的待处理数据对象。
10.根据权利要求7所述的系统,其特征在于,模块A中所述数据管理指令为浏览数据对象指令时,所述数据管理指令的优先级为第二位,所述数据管理参数为待处理数据对象的名称;
所述模块B包括:
模块B5,用于根据所述优化性能参数及优先级插入算法,将浏览数据对象指令插入指令队列的第二位;
模块B6,用于在按照优先级由高至低的顺序,从指令队列中读取浏览数据对象指令时,根据待处理数据对象的名称,读取或打开与所述CID对应的分类数据存储区中的待处理数据对象。
11.根据权利要求7所述的系统,其特征在于,模块A中所述数据管理指令为写数据对象指令时,所述数据管理指令的优先级为第三位,所述数据管理参数为待处理数据对象名称、写数据缓存区大小及连续写数据块个数,
所述可用空间参数为存储区的可用空间和数据对象可用空间,所述已用空间参数为存储区的已用空间和数据对象已用空间;
所述模块B包括:
模块B7,用于根据写数据对象指令及写数据缓存区大小,判断写数据缓存区是否已满,如果是,释放写数据缓存区,执行模块B8的操作,否则直接执行模块B8的操作;
模块B8,用于按照所述优化性能参数及优先级插入算法,将写数据对象指令插入指令队列的第三位;
模块B9,用于在按照优先级由高至低的顺序,从指令队列中读取写数据对象指令时,根据待处理对象的名称,判断存储区的可用空间和数据对象可用空间是否都大于或等于待处理数据对象所需存储空间,如果是,执行模块B10的操作,否则,返回写入失败响应;
模块B10,用于根据连续写数据块个数,将待处理数据对象包含的数据块存入写数据缓存区中,并在写数据缓存区被写满时,将写数据缓存区中暂存的待处理数据对象包含的数据块写入已创建的分类数据存储区中,更新所述可用空间参数和所述已用空间参数。
12.根据权利要求7所述的系统,其特征在于,模块A中所述数据管理指令为读数据对象指令时,所述数据管理指令的优先级为第三位,所述数据管理参数为待处理数据对象名称、读数据缓存区大小及连续读数据块个数;
所述模块B包括:
模块B11,用于根据所述优化性能参数及优先级插入算法,将读数据对象指令插入指令队列的第三位;
模块B12,用于在按照优先级由高至低的顺序,从指令队列中读取读数据对象指令后,执行模块B13的操作;
模块B13,用于判断是否从读数据缓存区中读取待处理数据对象,如果是,则根据连续读数据块个数,从待处理数据对象所属的分类数据存储区中,读取待处理数据对象包含的数据块至读数据缓存区中,否则,执行模块B14的操作;
模块B14,用于判断读数据缓存区是否已满,如果是,则根据连续读数据块个数,从读数据缓存区中读取数据块,否则,产生从读数据缓存区中读取待处理数据对象的指令,并执行模块B13的操作。
CN201110134795.1A 2011-05-23 2011-05-23 一种面向对象的存取方法及系统 Active CN102799583B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110134795.1A CN102799583B (zh) 2011-05-23 2011-05-23 一种面向对象的存取方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110134795.1A CN102799583B (zh) 2011-05-23 2011-05-23 一种面向对象的存取方法及系统

Publications (2)

Publication Number Publication Date
CN102799583A CN102799583A (zh) 2012-11-28
CN102799583B true CN102799583B (zh) 2015-01-14

Family

ID=47198695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110134795.1A Active CN102799583B (zh) 2011-05-23 2011-05-23 一种面向对象的存取方法及系统

Country Status (1)

Country Link
CN (1) CN102799583B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064639B (zh) * 2012-12-28 2016-08-03 华为技术有限公司 数据存储方法及装置
CN110019361B (zh) * 2017-10-30 2021-10-15 北京国双科技有限公司 一种数据的缓存方法及装置
CN112214351A (zh) * 2020-10-12 2021-01-12 珠海格力电器股份有限公司 备份数据的恢复方法和装置、电子设备和存储介质
WO2023093761A1 (zh) * 2021-11-29 2023-06-01 华为云计算技术有限公司 处理数据的方法和相关装置
CN115587228B (zh) * 2022-11-10 2024-05-14 百度在线网络技术(北京)有限公司 对象查询方法、对象存储方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005598A (zh) * 2006-01-16 2007-07-25 深圳Tcl新技术有限公司 用于电视机的多媒体信息分类管理浏览方法
CN101271428A (zh) * 2008-02-25 2008-09-24 北京理工大学 一种对象数据存储管理的装置和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036645A1 (en) * 2004-08-10 2006-02-16 International Business Machines Corporation System and method for automated data storage management
CN101661594A (zh) * 2008-08-28 2010-03-03 阿里巴巴集团控股有限公司 一种在互联网上提供对象信息的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005598A (zh) * 2006-01-16 2007-07-25 深圳Tcl新技术有限公司 用于电视机的多媒体信息分类管理浏览方法
CN101271428A (zh) * 2008-02-25 2008-09-24 北京理工大学 一种对象数据存储管理的装置和方法

Also Published As

Publication number Publication date
CN102799583A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102110146B (zh) 基于键值key-value存储的分布式文件系统元数据管理方法
CN101187901B (zh) 一种实现文件访问的高速缓存系统和方法
CN102799583B (zh) 一种面向对象的存取方法及系统
CN102214109B (zh) 一种加载插件的方法及装置
US20100146213A1 (en) Data Cache Processing Method, System And Data Cache Apparatus
CN100507919C (zh) 一种fat文件系统及其处理方法
CN101707633B (zh) 一种基于文件系统的消息中间件持久消息的存储方法
CN101072178A (zh) 一种交换机路由表的管理方法
CN103383690B (zh) 分布式数据存储方法及系统
CN101916290B (zh) 内存数据库的管理方法和装置
CN106407355A (zh) 一种数据存储方法及装置
CN102708197A (zh) 一种多媒体文件管理方法及装置
CN101464901A (zh) 一种对象存储设备中的对象查找方法
CN109726175A (zh) 一种基于HBase的海量文件离线分区管理方法
CN102541969B (zh) 基于fat文件系统的文件保护方法、系统及存储器
WO2022083287A1 (zh) 存储空间管理方法、装置、设备及存储介质
CN104484460A (zh) 一种分布式文件系统元数据热度统计方法
CN106326040A (zh) 一种快照元数据管理方法和装置
CN103500206A (zh) 基于文件存储数据的存储方法及装置
CN102339318A (zh) 一种文件系统管理方法及系统
CN102169497B (zh) 一种通过位图方式管理元数据的方法及装置
CN100543748C (zh) 一种利用文件分配表进行文件寻道的方法及系统
CN103246718B (zh) 文件访问方法、装置和设备
CN103116652A (zh) 一种基于拉链信息的索引存储管理方法
CN110008188B (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
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: Unit A-1 1188 No. 8 Building second layer 201315 Shanghai LIANHANG road 201112

Patentee after: SHANGHAI EISOO INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 201315, room 25, 204 Zhenkang Road, Cambridge, Nanhui, Shanghai

Patentee before: EISOO SOFTWARE Co.,Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: An object-oriented access method and system

Effective date of registration: 20231115

Granted publication date: 20150114

Pledgee: Bank of Shanghai Limited by Share Ltd. Pudong branch

Pledgor: SHANGHAI EISOO INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2023310000743