CN111858602B - 区块链的数据读取更新方法及系统 - Google Patents
区块链的数据读取更新方法及系统 Download PDFInfo
- Publication number
- CN111858602B CN111858602B CN202010717510.6A CN202010717510A CN111858602B CN 111858602 B CN111858602 B CN 111858602B CN 202010717510 A CN202010717510 A CN 202010717510A CN 111858602 B CN111858602 B CN 111858602B
- Authority
- CN
- China
- Prior art keywords
- file
- page
- data
- read
- record
- 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
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/22—Indexing; Data structures therefor; Storage structures
-
- 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/23—Updating
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了区块链的数据读取更新方法及系统,涉及区块链技术领域,方法包括:根据需要读取更新数据的key(record id)计算page id;根据page id计算逻辑文件id;根据逻辑文件id和映射关系找到磁盘中物理文件id;执行数据读取更新操作。本发明针对区块链的特点,在数据读取更新时通过映射的方式快速找到磁盘内的目标位置,大大提高了数据读取更新性能。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及区块链的数据读取更新方法及系统。
背景技术
目前主流的数据库存储技术有Access数据库、MySQL数据库、SqlServer数据库和Oracle数据库,其中Access数据库是由微软发布的,是一款关联式数据管理型系统的数据库,通常是被用来开发Web应用程序。MySQL数据库是一款小型数据库管理系统的数据库,其开发公司是瑞典MySQLAB公司,MySQL被广泛地应用在Internet上的中小型网站中。SqlServer数据库的特点是真正的客户/服务器体系结构,并且是图形化的用户界面,使数据库管理方式更加直观和简单。Oracle数据库是一款比较典型的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
然而,上述数据库管理技术应用在区块链中存在效率不高的问题,因为区块链系统不需要支持删除操作,而上述数据库管理技术均支持删除操作,使得当前的存储技术应用在区块链中时存在很多无用的设计,导致存储性能不高。
发明内容
本发明实施例提供了区块链的数据读取更新方法及系统,可以解决现有技术中存在的问题。
本发明提供了区块链的数据读取更新方法,区块链中的数据存储在磁盘中,所述磁盘分成多个大小相同的文件file,该些文件file根据需要被分配给对应的业务,在业务内以及磁盘内进行连续编号后分别得到逻辑文件id和物理文件id,所述物理文件id和逻辑文件id存在映射关系,所述文件file包含多个大小相同的页page,所述页page包含多个大小相同的记录record;
所述方法包括以下步骤:
根据需要读取更新数据的record id计算page id;
根据page id计算逻辑文件id;
根据逻辑文件id和映射关系找到磁盘中物理文件id;
执行数据读取更新操作。
本发明还提供了区块链的数据读取更新系统,所述系统包括:
page id计算模块,用于根据需要读取更新数据的record id计算page id;
file id计算模块,用于根据page id计算逻辑文件id;
磁盘位置确定模块,用于根据逻辑文件id和映射关系找到磁盘中物理文件id;以及
读取更新执行模块,用于执行数据读取更新操作。
本发明中的区块链的数据读取更新方法及系统,方法包括:根据需要读取更新数据的record id计算page id;根据page id计算逻辑文件id;根据逻辑文件id和映射关系找到磁盘中物理文件id;执行数据读取更新操作。本发明针对区块链的特点,在数据读取更新时通过映射的方式快速找到磁盘内的目标位置,大大提高了数据读取更新性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为磁盘存储结构图。
图2为本发明中区块链的数据读取更新方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明的数据读取更新方法前,首先对实施该方法的存储系统磁盘存储结构进行说明。
如图1所示,磁盘存储结构的形成过程如下:
1、磁盘格式化:对每个磁盘进行格式化,把磁盘分成大小相同的若干个文件(file),这些文件都是未分配状态(如图中的磁盘C,被分成7文件),这些文件的大小相同,因此文件个数与磁盘空间成正比。
2、磁盘文件分配:根据业务需要把文件分配给对应的业务。如图中磁盘D把file0,file 1,file 3分配给了A业务,把file 2,file 4分配给了B业务,把file 5分配给C业务。
逻辑文件id:在业务(例如A,B,C)内,从0开始连续编号。
物理文件id:在磁盘内(例如磁盘D,磁盘E,磁盘F),从0开始连续编号,多个磁盘间通过磁盘群管理,把物理文件id与逻辑文件id建立映射。例如业务A5文件映射到磁盘E的file 4。
3、文件分页:把文件按照固定大小分成若干页(page),page按照固定大小分成若干记录(record)。
例如业务A的file分10个page,一个page分成5个record。所以根据record id可以直接计算出page id,根据page id可以直接计算出逻辑文件id,根据逻辑文件id和物理文件id的映射关系即可找到磁盘位置,非常高效。
根据上述过程,本发明提供的API接口如下:
template<typename RECORD_TYPE>
ACE_INT32 Update(const ACE_UINT64 nRecordID,RECORD_TYPE&rRecord)
其中该API接口对应的更新操作为:
const ACE_UINT64 nRecordID:记录id是必须是已经append过的nRecordID,
RECORD_TYPE&rRecord:参数是需要存储的数据,数据类型是使用者自己定义,需要与append操作中的数据类型保持一致
template<typename RECORD_TYPE>
ACE_INT32 Read(RECORD_TYPE&rRecord,const ACE_UINT64nRecordID)
对应的读取操作为:
nRecordID:记录id是必须是已经append过的nRecordID RECORD_TYPE&rRecord:与Append操作的数据结构保持一致,不然会有内存越界的风险
下面对本发明的数据读取更新方法进行详细说明。
参照图2,本发明的区块链数据读取更新方法包括以下步骤:
1、判断需要读取更新数据的record id是否合法,如果该record id没有写入过数据,则读取更新操作失败。
2、根据record id计算page id。
3、根据page id计算file id。
4、根据file id和file type找到磁盘的位置。
5、执行数据读取更新操作。
其中,page id=record id/n,file id=page id/m,其中n为一个page中record的数量,m为一个file中page的数量。
基于相同的发明构思,本发明还提供了区块链的数据读取更新系统,该系统的实施可参照上述方法的实施,重复之处不再赘述。所述系统包括:
数据key合法性判断模块,用于判断需要读取更新数据的record id是否合法。
page id计算模块,用于在需要读取更新数据的record id合法时,根据record id计算page id。
file id计算模块,用于根据page id计算file id。
磁盘位置确定模块,用于根据file id和file type确定对应的物理文件id的位置。
读取更新执行模块,用于根据对应的偏移和长度,在物理文件id位置进行数据读取更新操作。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.区块链的数据读取更新方法,其特征在于,区块链中的数据存储在磁盘中,所述磁盘分成多个大小相同的文件file,该些文件file根据需要被分配给对应的业务,在业务内以及磁盘内进行连续编号后分别得到逻辑文件id和物理文件id,所述物理文件id和逻辑文件id存在映射关系,所述文件file包含多个大小相同的页page,所述页page包含多个大小相同的记录record;
所述方法包括以下步骤:
根据需要读取更新数据的record id计算page id;
根据page id计算逻辑文件id;
根据逻辑文件id和映射关系找到磁盘中物理文件id;
执行数据读取更新操作。
2.如权利要求1所述的区块链的数据读取更新方法,其特征在于,在计算所述page id之前,所述方法还包括判断需要读取更新数据的record id是否合法,在确定需要读取更新数据的record id合法后,再计算page id。
3.如权利要求1所述的区块链的数据读取更新方法,其特征在于,所述page id和逻辑文件id分别通过下式计算获得:
page id=record id/n
逻辑文件id=page id/m
其中n为一个页page中记录record的数量,m为一个文件file中页page的数量。
4.如权利要求1所述的区块链的数据读取更新方法,其特征在于,得到物理文件id后,根据对应的偏移和长度,在物理文件id位置进行数据读取更新操作。
5.应用权利要求1中区块链的数据读取更新方法的区块链的数据读取更新系统,其特征在于,所述系统包括:
page id计算模块,用于根据需要读取更新数据的record id计算page id;
file id计算模块,用于根据page id计算逻辑文件id;
磁盘位置确定模块,用于根据逻辑文件id和映射关系找到磁盘中物理文件id;以及
读取更新执行模块,用于执行数据读取更新操作。
6.如权利要求5所述的区块链的数据读取更新系统,其特征在于,还包括数据key合法性判断模块,所述数据key合法性判断模块用于判断需要读取更新数据的record id是否合法,在所述数据key合法性判断模块确定需要读取更新数据的record id合法之后,由所述page id计算模块计算page id。
7.如权利要求5所述的区块链的数据读取更新系统,其特征在于,所述page id计算模块和file id计算模块分别通过下式计算page id和逻辑文件id:
page id=record id/n
逻辑文件id=page id/m
其中n为一个页page中记录record的数量,m为一个文件file中页page的数量。
8.如权利要求5所述的区块链的数据读取更新系统,其特征在于,所述读取更新执行模块在得到物理文件id后,根据对应的偏移和长度,在物理文件id位置进行数据读取更新操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010717510.6A CN111858602B (zh) | 2020-07-23 | 2020-07-23 | 区块链的数据读取更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010717510.6A CN111858602B (zh) | 2020-07-23 | 2020-07-23 | 区块链的数据读取更新方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858602A CN111858602A (zh) | 2020-10-30 |
CN111858602B true CN111858602B (zh) | 2023-04-21 |
Family
ID=72949819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010717510.6A Active CN111858602B (zh) | 2020-07-23 | 2020-07-23 | 区块链的数据读取更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858602B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628942A (zh) * | 2018-03-27 | 2018-10-09 | 深圳市网心科技有限公司 | 区块链节点设备、分布式数据库的数据读取及写入方法 |
CN110011800A (zh) * | 2018-11-07 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种区块链数据读取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10567320B2 (en) * | 2017-10-17 | 2020-02-18 | American Express Travel Related Services Company, Inc. | Messaging balancing and control on blockchain |
-
2020
- 2020-07-23 CN CN202010717510.6A patent/CN111858602B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628942A (zh) * | 2018-03-27 | 2018-10-09 | 深圳市网心科技有限公司 | 区块链节点设备、分布式数据库的数据读取及写入方法 |
CN110011800A (zh) * | 2018-11-07 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种区块链数据读取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111858602A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8135688B2 (en) | Partition/table allocation on demand | |
CN107026881B (zh) | 业务数据的处理方法、装置及系统 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
CN110765076B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
US20100312749A1 (en) | Scalable lookup service for distributed database | |
US10552460B2 (en) | Sensor data management apparatus, sensor data management method, and computer program product | |
US20200026647A1 (en) | Method, apparatus and computer program product for managing cache | |
CN103399823A (zh) | 业务数据的存储方法、设备和系统 | |
CN106970937B (zh) | 一种基于本地缓存快速建立索引的方法及系统 | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN115934583B (zh) | 分级缓存方法、装置及系统 | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
CN109614411B (zh) | 数据存储方法、设备和存储介质 | |
CN115203211A (zh) | 一种唯一哈希序号生成方法和系统 | |
CN111858602B (zh) | 区块链的数据读取更新方法及系统 | |
CN110941587A (zh) | 基于附加文件的空间矢量数据存储方法及坐标系转换系统 | |
CN111737303B (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN111858603B (zh) | 区块链的数据写入方法及系统 | |
CN111506628B (zh) | 数据处理方法及装置 | |
US11194836B2 (en) | Distributed data storage | |
US7949632B2 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
CN113220992B (zh) | 一种信息流内容推荐方法、系统及介质 | |
CN115454781A (zh) | 基于企业架构系统的数据可视化展现方法及系统 | |
CN111209304B (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 | ||
PP01 | Preservation of patent right |
Effective date of registration: 20231026 Granted publication date: 20230421 |
|
PP01 | Preservation of patent right | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20240307 Granted publication date: 20230421 |
|
PD01 | Discharge of preservation of patent |