CN108519862B - 区块链系统的存储方法、装置、系统和存储介质 - Google Patents

区块链系统的存储方法、装置、系统和存储介质 Download PDF

Info

Publication number
CN108519862B
CN108519862B CN201810292477.XA CN201810292477A CN108519862B CN 108519862 B CN108519862 B CN 108519862B CN 201810292477 A CN201810292477 A CN 201810292477A CN 108519862 B CN108519862 B CN 108519862B
Authority
CN
China
Prior art keywords
data
performance
storage unit
low
storage
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
CN201810292477.XA
Other languages
English (en)
Other versions
CN108519862A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201810292477.XA priority Critical patent/CN108519862B/zh
Publication of CN108519862A publication Critical patent/CN108519862A/zh
Application granted granted Critical
Publication of CN108519862B publication Critical patent/CN108519862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种区块链系统的存储方法、装置、系统和存储介质,该方法应用于混盘存储系统,所述混盘存储系统包括至少一个高性能存储单元和至少一个低性能存储单元,其中,该方法包括:当获取到交易数据或处理产生区块数据时,将所述交易数据或区块数据写入所述高性能存储单元中;在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移。本发明实施例的技术方案解决了只从提高硬件性能的角度改善存储性能导致成本增高的问题,以提升区块链系统中节点的存储性能,且兼顾节点的硬件成本。

Description

区块链系统的存储方法、装置、系统和存储介质
技术领域
本发明实施例涉及计算机数据存储技术,尤其涉及一种区块链系统的存储方法、装置、系统和存储介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
由于区块链的典型特点是区块链系统中所有节点共同存储完整的交易账本,所以对每个节点的存储量要求非常高。一方面是要求存储空间容量大,另一方面是要求数据读写速度快,以方便进行查询和更新等操作。
现有技术中,若只从提高硬件性能的角度来改善存储性能,必然导致成本增高。例如,若选用固态硬盘(Solid State Drives,SSD),那么能提高容量和读写速度,但成本显著上升。例如,八个SSD盘构成的节点,相比于八个SAS(Serial Attached SCSI,即串行连接SCSI)盘的成本高9倍。
所以,需要通过从存储架构、存储算法方面进行改进,以便兼顾存储性能和成本。
发明内容
本发明实施例提供了一种区块链系统的存储方法、装置、系统和存储介质,以提升区块链系统的存储性能,且兼顾存储系统的硬件成本。
第一方面,本发明实施例提供了一种区块链系统的存储方法,应用于混盘存储系统,所述混盘存储系统包括至少一个高性能存储单元和至少一个低性能存储单元,该方法包括:
当获取到交易数据或处理产生区块数据时,将所述交易数据或区块数据写入所述高性能存储单元中;
在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移。
第二方面,本发明实施例还提供了一种区块链系统的存储装置,配置于混盘存储系统,所述混盘存储系统包括至少一个高性能存储单元和至少一个低性能存储单元,该装置包括:
数据写入模块,用于当获取到交易数据或处理产生区块数据时,将所述交易数据或区块数据写入所述高性能存储单元中;
数据迁移模块,用于在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移。
第三方面,本发明实施例还提供了一种区块链存储系统,包括:
一个或多个处理器;
至少一个高性能存储单元和至少一个低性能存储单元,用于存储一个或多个程序,以及用于存储数据;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的区块链系统的存储方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的区块链系统的存储方法。
本发明实施例通过在产生迁移触发条件时,将依据数据存储性能确定的待迁移数据在高性能存储单元和低性能存储单元之间进行迁移,从而利用了不同性能存储单元来存储对应性能的数据,解决了只从提高硬件性能的角度改善存储性能导致成本增高的问题,以提升区块链系统中节点的存储性能,且兼顾节点的硬件成本。
附图说明
图1是本发明实施例一提供的一种区块链系统的存储方法的流程图;
图2是本发明实施例二提供的一种区块链系统的存储方法的流程图;
图3是本发明实施例三提供的一种区块链系统的存储方法中针对事务的数据进行更新方法的流程图;
图4是本发明实施例四提供的一种区块链系统的存储装置的结构框图;
图5是本发明实施例五提供的一种区块链存储系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明各实施例之前,先对本发明实施例的应用场景进行说明,区块链系统是一种防篡改的、共享的数字化分布式记账系统,按照区块链的规模和运行模式可分为公共链、私有链以及共同区域链。每个区块链系统中包括若干节点,若干节点之间可发生不同的交易,产生交易数据。区块链系统中通过共识机制确定出记账节点,从而对交易数据进行处理,形成账本数据,也称区块数据。而后账本记账节点将区块数据传输给其他节点进行验证,验证通过后确认这些交易。区块链系统中的每个节点都需要进行大量的数据存储,每个节点所要处理和存储的数据主要是:对获取的交易数据的存储,对生成的区块数据的存储;以及交易和区块数据对应关系的存储。本发明各实施例的技术方案即涉及节点中的数据存储技术。
实施例一
图1是本发明实施例一提供的一种区块链系统的存储方法的流程图,本实施例可适用于混盘存储系统,混盘存储系统是区块链系统中任一节点所采用的存储系统,当然,若利用云端进行区块存储,则混盘存储系统也可以应用于云端服务器中。该混盘存储系统中存在至少一个高性能存储单元和至少一个低性能存储单元,即不同存储性能的存储单元混合构成的存储系统。所谓高性能和低性能是指存储单元一个方面的性能或多个方面性能的组合,例如存储空间和/读写速度。存储单元通常是指物理独立的硬盘,也可以是具备独立存储性能的存储单位,例如,高性能存储单元为SSD盘,低性能存储单元为SAS盘。常见的SSD盘的存储空间可达到4TB,其读写速度可超过500MB/s;而常见的SAS盘的存储空间可达到320GB,其随机读写速度一般为1800KB/s左右,其顺序读写速度一般为200MB/s左右。可见,SSD盘有非常好的随机读写能力,而SAS盘虽然随机读写能力很差,但顺序读写能力不错,将两者配合使用,发挥不同性能的优势,在节约成本的同时保证了存储性能。高性能存储单元和低性能存储单元的数量不限,优选是低性能存储单元的数量更多,以降低整个混盘存储系统的成本。例如一个SSD盘配合八个SAS盘。
该方法可以由本发明实施例提供的区块链系统的存储装置来执行,该装置可采用硬件和/或软件的方式实现,配置于混盘存储系统中。该方法具体包括:
S101,当获取到交易数据或处理产生区块数据时,将交易数据或区块数据写入高性能存储单元中。
其中,交易数据(Transcation)是区块链系统中每笔交易产生的数据,例如,可以包括每笔交易的金额、交易商品信息或交易双方账户等数据,该数据可以是在交易发生时以全网广播的形式发送给区块链系统中的所有节点。区块数据是对待记账处理的所有交易数据进行记账处理后产生的数据,也就是账本数据。
当区块链系统中的节点接收到交易数据后,需要对接收到的交易数据进行存储,存储时会建立交易标识与交易数据之间的对应索引,即Transcation ID到Transcation的存储。刚获取的交易数据和区块数据,往往会很快被处理,频繁读写,因此可将接收到的交易数据存储在性能高的存储单元中。
当拥有记账权的节点将其处理得到的区块数据(Block)发送给各节点的同时,会将处理得到的区块数据对应于区块标识(Block ID)进行存储(即Block ID到Block的存储过程)。新产生的区块数据也属于读写频繁的数据,所以存储至高性能存储单元中。
需要说明的是,为了保证存储数据的准确性,其余节点在接收到记账节点发送的区块数据后,会根据交易数据对区块数据进行验证,所以记账节点和其他节点可以采用类似的存储策略。
S102,在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在高性能存储单元和低性能存储单元之间进行迁移。
由于S101中将交易数据和区块数据都存储在了高性能存储单元,随着网络交易的进行,已存储数据也在不断增加。为了保证区块链系统能够高性能的运行,要利用该系统特有的存储架构,将数据按照一定的规则在高性能存储单元和低性能存储单元之间迁移,从而保证较高的存储性能。
可选的,迁移触发条件为高性能存储单元的已用存储空间达到设定界限值。当高性能存储单元的可用存储空间较小时,就会影响系统的存储性能,因此,可以为高性能的已用存储空间设定一个界限值,用来作为迁移触发条件。其中,界限值可以是预先根据高性能存储单元的存储性能和已用存储空间的关系提前设定的,可以根据实际情况进行修改。例如,可以将该界限值设置设70%,当高性能存储单元的已用存储空间达到70%时,即达到迁移触发条件。
当高性能存储单元达到迁移触发条件时,需要在已存储数据中按照数据存储性能先确定出待迁移的数据,然后再进行高性能存储单元和低性能存储单元之间的数据迁移操作。
其中,数据的存储性能是评判已存数据的某种属性,该属性是更适合由低性能存储单元进行存储的属性。可选的,数据存储性能包括下述至少一个:数据读写频繁度、数据重要性和数据存储时间。
以选择存储时间作为数据存储性能为例进行介绍。区块链系统(也就是智能合约的存储系统),其可以为比特币系统或以太坊系统,对于比特币系统来说是以未花费的输出(Unspent Transaction Output,UTXO)作为索引的存储,而对于以太坊系统来说是以KV(Key-Value)索引的多版本存储;但两种系统的最终落地方式还是KV存储。这种存储方式存储的数据有个显著特点就是新数据高频、旧数据低频。因此可以选择数据存储时间作为数据存储性能的一种判断标准,将数据存储时间早于设定时刻的数据作为待迁移数据。根据当前高性能存储单元已用存储空间设定的界限值,来判断是否达到迁移条件,若达到迁移条件,则自动进行高性能存储单元与低性能存储单元之间数据的迁移。
数据读写频繁度是反应数据使用频率的特征,数据重要性是数据对于整个区块链系统的重要程度的特征,数据存储时间是反应数据时效性的一个重要特征。数据存储性能可以是其中的一个,也可以是几个的组合。可以将读写频繁、或更重要的、或更新的数据存储在高性能存储单元中,反之其他数据存储在低性能存储单元中。因为通常低性能存储单元的读写速度更慢些。
需要说明的是,以数据读写频繁度、数据重要性和数据存储时间形成的数据存储性能,可以快速准确的从高性能存储单元确定对近期读写可能性小的冷数据,将其从高性能存储单元迁移至低性能存储单元,也可以快速准确的从低性能存储单元中确定出近期读写可能性大的热数据,将其从低性能存储单元迁移至高性能存储单元。
在本发明各实施例中,在整个区块链数据存储中,可以对底层的存储系统做统一的抽象,即KV存储(KVStroage)。KVStroage支持多存储架构,通过参数,能够便利切换存储引擎。即为不同的存储单元中,和/或存储单元内部都建立数据内容和数据标识的索引,统一存储在索引表中,索引的格式可以为KV。
本实施例提供了一种区块链系统的存储方法,通过在产生迁移触发条件时,将依据数据存储性能确定的待迁移数据在高性能存储单元和低性能存储单元之间进行迁移,解决了只从提高硬件性能的角度改善存储性能导致成本增高的问题,以提升区块链系统中节点的存储性能,且兼顾节点的硬件成本。
进一步地,从高性能存储单元迁移到低性能存储单元中的数据相比未迁移的数据,可能只是数据读写频繁度相对较低,但并不代表这些数据不再被读写,因此S102在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在高性能存储单元和低性能存储单元之间进行迁移的另一种形式是包括:将低性能存储单元中数据读写频繁度达到设定值的数据,确定为待迁移数据;将待迁移数据迁移至高性能存储单元的缓存区域中,并在低性能存储单元中保留待迁移数据。
其中,当低性能存储单元中的某一数据被频繁读写时,由于低性能存储单元随机读写能力很差,频繁在低性能存储单元中读写该数据会影响整个区块链系统的读写性能,所以可借助高性能存储单元作为缓存使用。频繁读写可以按照设定时间的读写次数来确定。高性能存储单元的缓存区可以是高性能存储单元存储区域的一部分,该部分可用于存储一些近期频繁使用的数据。
具体的,将低性能存储单元中数据读写频率达到设定值的数据,确定为待迁移数据,由于该数据可能并不是一直都被频繁读写的数据,可能只是近期被频繁读写(即低性能存储单元只读的高频数据),因此可以将该数据迁移到高性能存储单元的缓存区,且在原来的低性能存储单元中仍然保留该数据。
实施例二
图2本发明实施例二提供的一种区块链系统的存储方法的流程图,该方法在上述实施例的基础上进一步的优化,具体给出从高性能存储单元向低性能存储单元迁移数据的具体情况介绍。如图2所示,该方法包括:
S201,当获取到交易数据或处理产生区块数据时,将交易数据或区块数据写入所述高性能存储单元中。
S202,在产生已存储数据的迁移触发条件时,确定高性能存储单元中数据存储性能满足迁移条件的数据,作为待迁移数据。
其中,迁移条件是根据数据存储性能(即数据读写频繁度、数据重要性和数据存储时间种的至少一个)设置的,用来确定待迁移数据的具体条件。例如,数据存储时间早于2天的数据。
当高性能存储单元的已用存储空间达到设定的界限值时,则触发产生以存储数据的迁移触发条件,此时要在高性能存储单元中,选出满足迁移条件的数据,作为本次待迁移的数据。
S203,将待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中。
将S202中确定的待迁移数据作为一份,或者按照一定的规则分为至少两份,可选的,如何将待迁移数据分为多份,可以依据待迁移数据的大小来定,本发明实施例对此不限。
可选的,当待迁移数据为一份时,可以直接将其写入在一个低性能存储单元中,可以任选或按设定规则选择一个低性能存储单元;当待迁移数据为至少两份时,为了缩短迁移拷贝的写入时间,可以并行同时将至少两份待迁移数据写入多个低性能存储单元中。
可选的,将待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中可以是:将待迁移数据分为一份或至少两份;针对每份待迁移数据,按照待迁移数据中的各区块的区块标识符编码顺序,将各区块顺序存储至低性能存储单元中。
具体的,由于区块数据都有对应的区块标识符,但产生区块标识符时并不是顺序编码,所以初次存储在高性能存储单元中时,所存储的区块并不是按照区块标识符的编码顺序排列的。本实施例中,为了保证下次从低性能存储单元中查找区块数据能够快速准确,优选的,可以在低性能存储单元存储待迁移数据时,按照待迁移数据中的各区块的区块标识编码(该区块标识编码即为区块中数据编码的顺序)进行排序,按照排序后的顺序依次将各区块存储到低性能存储单元中,从而提高遍历和检索数据的效率。即迁移后对数据存储结构进行重组。
可选的,由于数据是按照时间维度进行存储的,导致当需要读写存储在低性能存储单元的数据时,无法准确计算出数据存储在哪个低性能存储单元的具体位置,需要遍历每个低性能存储单元的各存储位置来找到需要的数据,这使得查询性能慢了好几倍。所以为了方便快速查找到数据所在位置,在将待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中之后,还可以:获取数据在低性能存储单元中存储地址,并在低性能存储单元中将数据标识和存储地址记录在盘中索引表;将数据标识和数据所在低性能存储单元的标识对应记录在高性能存储单元的全局索引表中。
具体的,可以在高性能存储单元中专门设置一个全局索引表,用于存储低性能存储单元中数据的索引信息,在将待迁移数据存储在低性能存储单元后,由于待迁移数据可以是一个或多个,因此获取各存储数据在低性能存储单元中的存储地址和该数据的数据标识(可以是数据的名称、编号等),一同记录在高性能存储单元的全局索引表中,便于二次查找时进行精确定位。可选的,待迁移数据的存储地址可以是该数据中的区块存储地址。
S204,在迁移成功时,将待迁移数据从高性能存储单元中删除。
当S203中将待迁移数据迁移到低性能存储单元后,此时即可将待迁移数据从原来的高性能存储单元中删除,从而释放高性能存储单元的存储空间。优选的,可以是当待迁移数据写入低性能存储单元后,会产生一指令发送到高性能存储单元,高性能存储单元接收到该指令后,即可将该指令对应的待迁移数据从高性能存储单元中删除。
本实施例提供了一种区块链系统的存储方法,通过将待迁移数据分为一份或多份后,分别将其存储在一个或多个低性能存储单元中,能够缩短迁移时间。通过重组迁移后数据的存储架构能够使数据查询时遍历更快速准确。
实施例三
图3为本发明实施例三提供的一种区块链系统的存储方法的流程图,本实施例以前述实施例为基础,提供了一优选实例,适用于针对事务的数据进行更新的情况,如图3所示,该方法包括:
S301,获取针对事务的数据更新请求;
其中,事务是区块链中的一个数据处理单位,是单个逻辑工作单元执行的一系列操作,例如,在一次交易中,一个事务可以是三个操作:1)更新客户购买商品的库存信息;2)保存客户付款信息;3)生成订单进行保存三个事务,由于三个操作是并发控制的,任何一个发生异常,都会导致事务的失败。
当执行事务时,获取针对该事务的数据更新请求。可选的,当执行事务时,通常会产生该事务对应的多个数据更新请求,例如,在一次交易中,针对事务的数据更新请求包括:更新商品库存信息的请求、更新付款信息的请求以及更新总订单的请求。因此,获取的针对事务的数据更新请求通常为多个数据更新请求。
S302,如果根据数据更新请求识别出待更新数据分布存储在至少两个低性能存储单元时,采用多版本并发控制技术,对各低性能存储单元中的数据进行更新。
当识别出不同的待更新数据存储在不同的低性能存储单元中时,由于在实际操作中,无论是采用比特币系统存储还是以太坊系统存储,一旦支持将数据分为高性能存储单元和低性能存储单元两种存储方式后,就意味着打破了事务性,因此KVStroage需要采用多版本并发控制技术(Multi-Version Concurrency Control,MVCC)来实现,即在对各低性能存储单元中的数据进行更新时采用多版本并发控制技术进行数据的更新操作,从而满足事务的相关属性(即原子性、一致性、隔离性以及持久性)。采用MVCC技术监测更新到各个低性能存储单元中操作成功的版本号,当版本号匹配时才确定整个更新操作成功,否则报错处理。该技术可保证当向部分低性能存储单元更新数据不成功时,会及时发现,而不会产生数据不一致的现象。
本实施例提供了一种区块链系统的存储方法中针对事务的数据进行更新的方法,通过获取针对事务的数据更新请求,根据数据更新请求识别出待更新数据存储的多个低性能存储单元,采用多版本并发控制技术,对各低性能存储单元中的数据进行更新。以提升区块链系统中节点的存储性能,且兼顾节点的硬件成本。
实施例四
图4为本发明实施例四提供的一种区块链系统的存储装置的结构框图,该装置可执行本发明任意实施例所提供的区块链系统的存储方法,具备执行方法相应的功能模块和有益效果。如图4所示,该装置可配置于混盘存储系统,所述混盘存储系统包括至少一个高性能存储单元和至少一个低性能存储单元,该装置包括:
数据写入模块401,用于当获取到交易数据或处理产生区块数据时,将所述交易数据或区块数据写入所述高性能存储单元中;
数据迁移模块402,用于在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在高性能存储单元和低性能存储单元之间进行迁移。
其中,所述迁移触发条件为高性能存储单元的已用存储空间达到设定界限值。数据存储性能包括下述至少一个:数据读写频繁度、数据重要性和数据存储时间。
本实施例提供了一种区块链系统的存储装置,通过在产生迁移触发条件时,将依据数据存储性能确定的待迁移数据在高性能存储单元和低性能存储单元之间进行迁移,解决了只从提高硬件性能的角度改善存储性能导致成本增高的问题,以提升区块链系统中节点的存储性能,且兼顾节点的硬件成本。
进一步地,上述数据迁移模块402包括:
迁移数据确定单元,用于确定高性能存储单元中数据存储性能满足迁移条件的数据,作为待迁移数据;
迁移数据存储单元,用于将待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中;
迁移数据删除单元,用于在迁移成功时,将待迁移数据从高性能存储单元中删除。
进一步地,上述迁移数据存储单元具体用于:
将待迁移数据分为一份或至少两份;
针对每份待迁移数据,按照待迁移数据中的各区块的区块标识符编码顺序,将各区块顺序存储至低性能存储单元中。
进一步地,上述装置还包括:
更新请求获取模块,用于获取针对事务的数据更新请求;
数据更新模块,用于如果根据数据更新请求识别出待更新数据分布存储在至少两个低性能存储单元时,采用多版本并发控制技术,对各低性能存储单元中的数据进行更新。
进一步地,上述迁移数据存储单元还可以用于:
将待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中,获取数据在低性能存储单元中存储地址,并在低性能存储单元中将数据标识和存储地址记录在盘中索引表;
将数据标识和数据所在低性能存储单元的标识对应记录在高性能存储单元的全局索引表中。
进一步地,上述数据迁移模块402中,
迁移数据确定单元,还用于将低性能存储单元中数据读写频繁度达到设定值的数据,确定为待迁移数据;
迁移数据存储单元,用于将待迁移数据迁移至高性能存储单元的缓存区域中,并在低性能存储单元中保留所述待迁移数据。
实施例五
图5为本发明实施例五提供的一种区块链存储系统的结构示意图。图5示出了适于用来实现本发明实施方式的示例性区块链存储系统12的框图。图5显示的区块链存储系统12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。可选的,区块链存储系统12为计算机节点,即可以是区块链系统中的任一节点。高性能存储单元30优选为SSD盘;低性能存储单元32优选为SAS盘;所述SAS盘的数量多于所述SSD盘的数量。SSD盘可以为1个,SAS盘可以为8个。
如图5所示,区块链存储系统12以通用计算设备的形式表现。区块链存储系统12的组件可以包括但不限于:一个或者多个处理器或者处理器16,系统存储单元28,需要说明的是系统存储单元28是由至少一个高性能存储单元和至少一个低性能存储单元组成的。连接不同系统组件(包括系统存储单元28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
区块链存储系统12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被区块链存储系统12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储单元28可以包括易失性存储器形式的计算机系统可读介质,例如至少一个高性能存储单元30和至少一个低性能存储单元32。区块链存储系统12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储单元28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储单元28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
区块链存储系统12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该区块链存储系统12交互的设备通信,和/或与使得该区块链存储系统12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,区块链存储系统12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与区块链存储系统12的其它模块通信。应当明白,尽管图中未示出,可以结合区块链存储系统12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16通过运行存储在系统存单元28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块链系统的存储方法。
实施例六
本发明实施例六还提供了一种计算机可读存储介质。其上存储有计算机程序,该程序被处理器执行时可实现上述实施例的区块链系统的存储方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (11)

1.一种区块链系统的存储方法,其特征在于,应用于混盘存储系统,所述混盘存储系统包括至少一个高性能存储单元和至少一个低性能存储单元,所述方法包括:
当获取到交易数据或处理产生区块数据时,将所述交易数据或区块数据写入所述高性能存储单元中;
在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移;
其中,在所述高性能存储单元和低性能存储单元之间进行迁移,包括:
按照所述待迁移数据中的各区块的区块标识符编码顺序,将各区块顺序存储至低性能存储单元中。
2.根据权利要求1所述的方法,其特征在于,所述迁移触发条件为所述高性能存储单元的已用存储空间达到设定界限值。
3.根据权利要求1所述的方法,其特征在于,所述数据存储性能包括下述至少一个:数据读写频繁度、数据重要性和数据存储时间。
4.根据权利要求1-3任一所述的方法,其特征在于,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移包括:
确定所述高性能存储单元中数据存储性能满足迁移条件的数据,作为待迁移数据;
将所述待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中;
在迁移成功时,将所述待迁移数据从所述高性能存储单元中删除。
5.根据权利要求4所述的方法,其特征在于,还包括:
获取针对事务的数据更新请求;
如果根据所述数据更新请求识别出待更新数据分布存储在至少两个低性能存储单元时,采用多版本并发控制技术,对各低性能存储单元中的数据进行更新。
6.根据权利要求4所述的方法,其特征在于,将所述待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中包括:
将所述待迁移数据分为一份或至少两份,分别存储至一个或多个低性能存储单元中,获取数据在低性能存储单元中存储地址,并在所述低性能存储单元中将数据标识和存储地址记录在盘中索引表;
将数据标识和数据所在低性能存储单元的标识对应记录在高性能存储单元的全局索引表中。
7.根据权利要求1所述的方法,其特征在于,在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移包括:
将所述低性能存储单元中数据读写频繁度达到设定值的数据,确定为待迁移数据;
将所述待迁移数据迁移至所述高性能存储单元的缓存区域中,并在所述低性能存储单元中保留所述待迁移数据。
8.一种区块链系统的存储装置,其特征在于,配置于混盘存储系统,所述混盘存储系统包括至少一个高性能存储单元和至少一个低性能存储单元,所述装置包括:
数据写入模块,用于当获取到交易数据或处理产生区块数据时,将所述交易数据或区块数据写入所述高性能存储单元中;
数据迁移模块,用于在产生已存储数据的迁移触发条件时,根据数据存储性能确定待迁移数据,在所述高性能存储单元和低性能存储单元之间进行迁移;
其中,所述数据迁移模块还用于:按照所述待迁移数据中的各区块的区块标识符编码顺序,将各区块顺序存储至低性能存储单元中。
9.一种区块链存储系统,其特征在于,包括:
一个或多个处理器;
至少一个高性能存储单元和至少一个低性能存储单元,用于存储一个或多个程序,以及用于存储数据;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的区块链系统的存储方法。
10.根据权利要求9所述的系统,其特征在于,所述存储系统为计算机节点,所述高性能存储单元为SSD;所述低性能存储单元为SAS盘;所述SAS盘的数量多于所述SSD盘的数量。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的区块链系统的存储方法。
CN201810292477.XA 2018-03-30 2018-03-30 区块链系统的存储方法、装置、系统和存储介质 Active CN108519862B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810292477.XA CN108519862B (zh) 2018-03-30 2018-03-30 区块链系统的存储方法、装置、系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810292477.XA CN108519862B (zh) 2018-03-30 2018-03-30 区块链系统的存储方法、装置、系统和存储介质

Publications (2)

Publication Number Publication Date
CN108519862A CN108519862A (zh) 2018-09-11
CN108519862B true CN108519862B (zh) 2020-03-17

Family

ID=63431178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810292477.XA Active CN108519862B (zh) 2018-03-30 2018-03-30 区块链系统的存储方法、装置、系统和存储介质

Country Status (1)

Country Link
CN (1) CN108519862B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829350B (zh) * 2018-05-31 2020-02-21 阿里巴巴集团控股有限公司 基于区块链的数据迁移方法和装置
CN111897498A (zh) * 2018-07-27 2020-11-06 创新先进技术有限公司 区块链数据的多级存储方法和装置
CN109492049B (zh) * 2018-09-21 2021-05-04 上海点融信息科技有限责任公司 用于区块链网络的数据处理、区块生成及同步方法
CN109274752A (zh) * 2018-10-10 2019-01-25 腾讯科技(深圳)有限公司 区块链数据的访问方法及装置、电子设备、存储介质
CN111078126B (zh) * 2018-10-19 2023-09-15 阿里巴巴集团控股有限公司 分布式存储系统及其存储方法
CN109521962A (zh) * 2018-11-14 2019-03-26 郑州云海信息技术有限公司 一种元数据查询方法、装置、设备及计算机可读存储介质
CN109558337B (zh) * 2018-11-30 2023-09-19 北京同有飞骥科技股份有限公司 高速缓存的动态访问方法、装置及存储介质
CN109819013B (zh) * 2018-12-11 2021-10-12 上海大学 一种基于云存储的区块链存储容量优化方法
CN109710190B (zh) * 2018-12-26 2022-03-08 百度在线网络技术(北京)有限公司 一种数据存储方法、装置、设备及存储介质
CN109766312A (zh) * 2019-01-07 2019-05-17 深圳大学 一种区块链存储方法、系统、装置及计算机可读存储介质
CN111447055B (zh) * 2019-01-17 2022-02-25 华为技术有限公司 区块链账本的存储方法及装置
CN109800599A (zh) * 2019-01-18 2019-05-24 深圳市威赫科技有限公司 一种区块链分布式存储方法及系统
CN111461585B (zh) * 2019-01-22 2024-04-16 北京京东振世信息技术有限公司 库存管理方法、装置、存储介质及电子设备
CN111506489B (zh) * 2019-01-30 2023-05-30 斑马智行网络(香港)有限公司 测试方法、系统、设备、服务器及存储介质
CN110069222A (zh) * 2019-04-30 2019-07-30 北京百度网讯科技有限公司 应用数据迁移方法、装置、新存储系统及介质
CN110347497B (zh) * 2019-06-03 2020-07-21 阿里巴巴集团控股有限公司 一种将多个存储设备划分设备组的方法及装置
CN110362272A (zh) * 2019-06-03 2019-10-22 阿里巴巴集团控股有限公司 一种区块链数据存储方法及装置
US11099759B2 (en) 2019-06-03 2021-08-24 Advanced New Technologies Co., Ltd. Method and device for dividing storage devices into device groups
CN111837101A (zh) * 2019-09-12 2020-10-27 创新先进技术有限公司 日志结构存储系统
US10942852B1 (en) 2019-09-12 2021-03-09 Advanced New Technologies Co., Ltd. Log-structured storage systems
WO2019228569A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
SG11202002364TA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
CN111295649B (zh) * 2019-09-12 2024-04-19 创新先进技术有限公司 日志结构存储系统
EP3673376B1 (en) 2019-09-12 2022-11-30 Advanced New Technologies Co., Ltd. Log-structured storage systems
WO2019228575A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
CN110866828A (zh) * 2019-10-15 2020-03-06 北京海益同展信息科技有限公司 处理区块链数据的方法、装置、计算机设备和存储介质
CN112799585B (zh) * 2019-11-14 2024-05-24 百度在线网络技术(北京)有限公司 数据处理方法、装置、电子设备及可读存储介质
CN111651426B (zh) * 2020-04-30 2024-06-25 平安科技(深圳)有限公司 数据迁移方法、装置及计算机可读存储介质
CN111880735B (zh) * 2020-07-24 2023-07-14 北京浪潮数据技术有限公司 一种存储系统中数据迁移方法、装置、设备及存储介质
CN114518848B (zh) * 2022-02-15 2023-01-20 北京百度网讯科技有限公司 存储数据的处理方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991334A (zh) * 2016-11-24 2017-07-28 阿里巴巴集团控股有限公司 一种数据存取的方法、系统及装置
CN107423426A (zh) * 2017-08-02 2017-12-01 众安信息技术服务有限公司 一种区块链块数据的数据归档方法及电子设备
CN107577427A (zh) * 2017-08-31 2018-01-12 上海保险交易所股份有限公司 用于区块链系统的数据迁移方法、设备和存储介质
CN108345685A (zh) * 2018-03-07 2018-07-31 物数(上海)信息科技有限公司 区块链下的多粒度数据处理方法、系统、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
CN103106050A (zh) * 2013-02-22 2013-05-15 浪潮电子信息产业股份有限公司 一种实现存储系统数据分层存储复制的方法
CN103914516B (zh) * 2014-02-25 2017-09-08 深圳市中博科创信息技术有限公司 一种存储系统分层管理的方法与系统
CN104503924B (zh) * 2014-12-16 2018-02-13 华为技术有限公司 一种分层存储系统中的区域分配方法及装置
JP2017027301A (ja) * 2015-07-21 2017-02-02 富士通株式会社 ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法
CN106777342A (zh) * 2017-01-16 2017-05-31 湖南大学 一种基于可靠性的高性能文件系统混合节能存储系统及方法
CN107193500A (zh) * 2017-05-26 2017-09-22 郑州云海信息技术有限公司 一种分布式文件系统分层存储方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991334A (zh) * 2016-11-24 2017-07-28 阿里巴巴集团控股有限公司 一种数据存取的方法、系统及装置
CN107423426A (zh) * 2017-08-02 2017-12-01 众安信息技术服务有限公司 一种区块链块数据的数据归档方法及电子设备
CN107577427A (zh) * 2017-08-31 2018-01-12 上海保险交易所股份有限公司 用于区块链系统的数据迁移方法、设备和存储介质
CN108345685A (zh) * 2018-03-07 2018-07-31 物数(上海)信息科技有限公司 区块链下的多粒度数据处理方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN108519862A (zh) 2018-09-11

Similar Documents

Publication Publication Date Title
CN108519862B (zh) 区块链系统的存储方法、装置、系统和存储介质
US11119678B2 (en) Transactional operations in multi-master distributed data management systems
US8954408B2 (en) Allowing writes to complete without obtaining a write lock to a file
US20160179581A1 (en) Content-aware task assignment in distributed computing systems using de-duplicating cache
US9086818B2 (en) Source-target relations mapping
US10162746B2 (en) Allocating additional requested storage space for a data set in a first managed space in a second managed space
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
US9646033B2 (en) Building a metadata index from source metadata records when creating a target volume for subsequent metadata access from the target volume
US10346362B2 (en) Sparse file access
US10853389B2 (en) Efficient snapshot activation
US20180349422A1 (en) Database management system, database server, and database management method
US11977520B2 (en) Recovering from a pending uncompleted reorganization of a data set
US10346077B2 (en) Region-integrated data deduplication
US11789622B2 (en) Method, device and computer program product for storage management
US10592530B2 (en) System and method for managing transactions for multiple data store nodes without a central log
US20220011948A1 (en) Key sorting between key-value solid state drives and hosts
US20180307565A1 (en) Storage control apparatus and storage control method
CN115981559A (zh) 分布式数据存储方法、装置、电子设备和可读介质
US9703497B2 (en) Storage system and storage control method
CN112084141A (zh) 一种全文检索系统扩容方法、装置、设备及介质
JPS61286920A (ja) ロ−カルエリア・ネツトワ−クのフアイル管理方式

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