CN112965858B - 一种组网分布式存储数据冲突处理的实现方法 - Google Patents
一种组网分布式存储数据冲突处理的实现方法 Download PDFInfo
- Publication number
- CN112965858B CN112965858B CN202110239917.7A CN202110239917A CN112965858B CN 112965858 B CN112965858 B CN 112965858B CN 202110239917 A CN202110239917 A CN 202110239917A CN 112965858 B CN112965858 B CN 112965858B
- Authority
- CN
- China
- Prior art keywords
- data
- check value
- data check
- character
- ensured
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Abstract
本发明公开了一种组网分布式存储数据冲突处理的实现方法,应用于数据经过数据采集、数据清洗与数据转换后,管理节点对每条数据独立计算其校验值,并将数据检验值和该条数据的关联字段分别存储在同一分布式存储系统下的物理隔离的不同节点中;当执行数据写入操作时,须保证数据和数据校验值同时写入成功,如果数据和数据校验值只有一个写入成功,则重新执行数据和数据校验值写入操作,直到数据和数据校验值同时写入成功。本发明能够有效防止其他人通过控制单一节点对数据进行恶意篡改,保证了数据更新的可靠性,通过存储数据和数据校验值能够有效防止数据被轻易修改;数据校验值计算简单,校验快捷;具有数据恢复功能。
Description
技术领域
本发明属于数据同步和大数据分析技术领域,尤其涉及一种组网分布式存储数据冲突处理的实现方法。
背景技术
分布式存储系统在存储数据的过程中,经常性出现生节点间通信异常。在通信异常的情况下,多个节点可离线进行数据采集并录入系统,当网络通信恢复正常后,将不可避免的出现数据冲突,在多数据节点的分布式环境下,很多重要数据在实时性和准确性上有一定要求,不允许存在数据不一致的问题。
现有分布式存储系统存储数据时,会根据数据特性对数据采取不同的存储策略。在底层存储设计时,采用列存储及其衍生的RCFile存储的模式占据了绝对的主流。这些数据存储在分布式存储系统中,系统会按照数据存储逻辑对这些数据进行校验,并将校验值存储在相应的逻辑单元里,如索引单元、逻辑页单元等等。当用户读取数据时,系统本身会对数据进行校验和比对,将正确的数据返回给用户,满足用户的查询检索需求。当用户更新数据时,只需要在任一可用数据节点,对数据进行更新操作,就可以完成所有节点对数据的更新操作。如果系统中单一节点被数据篡改,会导致数据冲突、软件报错甚至是系统崩溃。
分布式系统自身进行数据恢复需要对数据进行数据快照,数据恢复只能恢复到某一时间点的数据,这一时间点之后录入的数据会无法恢复,在海量数据下,数据快照本身占磁盘空间很大,数据恢复也需要花费大量的人力成本及时间成本。
分布式存储系统有很多个数据节点和管理节点组成,这些节点间的网络通信很难保证一直正常,尤其是异地的节点间通信,很多时候异地的网络通信正常延时都可能超过2秒,异常情况下,甚至达到数小时。如果在异地间节点通信异常情况下,在其中一个节点对数据进行数据更新,就可能带来极大的安全隐患;此外,由于市面上的大多数分布式存储系统的代码都是开源的,因此不法分子很容易找到其中的漏洞。如果不法分子跳过了应用设计过程中各种权限障碍,直接入侵底层数据库,对数据进行恶意篡改将会对企业带来极大的损失。不法分子对节点进行攻击,常用的方法是阻碍节点间网络通信,对单一节点进行端口扫描,带宽恶意占用等操作。
由于分布式存储系统存储的数据量巨大,如果校验方式过于复杂,则数据存储和数据恢复速度会很慢;现有分布式存储系统往往需要通过数据快照的方式对数据进行恢复,但是数据快照本身占用很大资源,且进行数据快照数据恢复只能恢复某一时间点之前的数据,这个时间点之后的数据无法恢复。
发明内容
本发明的目的就在于为了解决上述问题而提供一种组网分布式存储数据冲突处理的实现方法,应用于数据经过数据采集、数据清洗与数据转换后,管理节点对每条数据独立计算其校验值,并将数据检验值和该条数据的关联字段分别存储在同一分布式存储系统下的物理隔离的不同节点中;当执行数据写入操作时,须保证数据和数据校验值同时写入成功,如果数据和数据校验值只有一个写入成功,则重新执行数据和数据校验值写入操作,直到数据和数据校验值同时写入成功。
本发明的有益效果在于:
1.如果用户想要对数据进行更新,必须要同时获得数据和数据校验值,并且对数据和数据校验值同时执行更新操作,能够有效防止其他人通过控制单一节点对数据进行恶意篡改,保证了数据更新的可靠性,通过存储数据和数据校验值能够有效防止数据被轻易修改;
2.数据校验值计算简单,校验快捷;
3.具有数据恢复功能:如果单一节点的数据发生篡改导致数据冲突,致使系统无法服务,可以通过数据副本和数据校验值对数据进行有效恢复。
附图说明
图1是本发明数据存储逻辑图;
图2是本发明数据更新流程图;
图3是数据校验值的示意图;
图4是数据恢复流程图。
具体实施方式
下面结合附图对本发明作进一步说明:
如附图1所示,本发明一种组网分布式存储数据冲突处理的实现方法,应用于数据经过数据采集、数据清洗与数据转换后,管理节点对每条数据独立计算其校验值,并将数据检验值和该条数据的关联字段分别存储在同一分布式存储系统下的物理隔离的不同节点中;当执行数据写入操作时,须保证数据和数据校验值同时写入成功,如果数据和数据校验值只有一个写入成功,则重新执行数据和数据校验值写入操作,直到数据和数据校验值同时写入成功。
优选的,所述数据校验值为不可逆的单向数据结构。
优选的,设n为字符的序号,m为随机数的序号,所述数据校验值第n个字符记录数据长度,第n+1个字符根据数据长度产生第m随机数,第n+2个字符存储第m随机数的位置的字符,第n+3个字符是根据数据长度产生的第m+1随机数,第n+4个字符存储第m+1个随机数位置的字符;抽样一组随机数的位置的字符作为数据校验值。
优选的,所述管理节点还用于数据恢复,获得发生冲突的数据和校验值,检测该数据是数据被篡改还是数据校验值被篡改导致的数据冲突,如果是数据被篡改,删除错误数据副本,保留正确数据副本。如果是数据校验值发生篡改,删除错误数据校验值,重新计算数据校验值,更新数据校验值。
本发明采用数据和数据校验值分开存储的方式对数据进行存储。数据经过数据采集、数据清洗、数据转换过程后,对每条数据独立计算其校验值,并将数据检验值和该条数据的关联字段,分别存储在同一分布式存储系统下的物理隔离的不同节点中。数据副本数量不限,数据和数据校验值存储节点保持物理隔离。若数据的大小小于设定阈值范围,则对每条数据独立计算其校验值,否则对数据的关联字段计算其校验值。
当数据执行写入操作时,保证数据和数据校验值同时写入成功。如果单一写入成功,则进行业务层指令回滚,重新执行数据和数据校验值写入,直到二者同时写入成功,保证了数据的完整性和安全性。
本发明数据存储逻辑如福图1所示,当数据执行写入操作时,计算每条数据的校验值。将数据存储在系统的数据节点中,将数据校验值存储在数据校验节点上。
在对数据进行更新操作时,必须同时对已有数据和其数据检验值进行数据更新操作,如果只存在数据更新完成而其对应的数据校验值未更新完成,则代表更新失败,需要重新更新。这种更新方式保证了用户必须从正确的方式进行数据更新。如果不法分子控制了集群的单一节点,对数据进行了恶意篡改,便会被管理节点发现并及时改正。
本发明数据更新流程图如福图2所示,用户通过客户端下发数据更新请求,然后从数据源获得数据和数据校验值,然后对数据和数据校验值同时进行数据更新,检测数据和数据校验值是否都更新成功,如果二者同时更新成功,则将结果反馈给用户;如果更新失败,则重新对数据和数据校验值进行更新。
数据校验值采用不可逆的单向数据结构,不能根据数据校验值反推回数据内容,数据校验值逻辑简单,计算校验值速度快,同时根据校验值校验数据速度快。
数据校验值的示意图如附图3所示,校验值首字符记录数据长度,第二个字符是根据数据长度产生的随机数1,第三个字符存储随机数1位置的字符,第四个字符是根据数据长度产生的随机数2,第五个字符存储随机数2位置的字符,依次类推,从原始数据抽样一组字符作为数据校验值。
本发明针对单一节点的数据恶意篡改,能够进行有效的数据恢复,除非对方对所有节点的数据都进行了数据篡改,则无法进行数据恢复。当单个数据节点的数据发生数据篡改时,分布式存储系统会发生数据冲突导致系统报错。由于分布式系统设置有副本策略,当某一数据节点的数据与其他节点的数据存在差异,则把校验值不符合的数据删除,保留系统中正确的数据副本。当单个数据校验值节点的数据校验值发生篡改时,分布式存储系统设置有副本策略,如果系统中所有数据内容一致,则数据校验值发生了篡改,则需根据数据内容重新更新数据校验值。
当系统发生数据冲突导致系统服务出错时,管理节点启动数据恢复服务,数据恢复服务获得发生冲突的数据和校验值,然后检测该数据是数据被篡改还是数据校验值被篡改导致的数据冲突;如果是数据被篡改,删除错误数据副本,保留正确数据副本;如果是数据校验值发生篡改,删除错误数据校验值,重新计算数据校验值,更新数据校验值。
本发明具有以下优点:
1.如果用户想要对数据进行更新,必须要同时获得数据和数据校验值,并且对数据和数据校验值同时执行更新操作,能够有效防止其他人通过控制单一节点对数据进行恶意篡改,保证了数据更新的可靠性,通过存储数据和数据校验值能够有效防止数据被轻易修改;
2.数据校验值计算简单,校验快捷;
3.具有数据恢复功能:如果单一节点的数据发生篡改导致数据冲突,致使系统无法服务,可以通过数据副本和数据校验值对数据进行有效恢复。
本发明的技术方案不限于上述具体实施例的限制,凡是根据本发明的技术方案做出的技术变形,均落入本发明的保护范围之内。
Claims (1)
1.一种组网分布式存储数据冲突处理的实现方法,应用于数据经过数据采集、数据清洗与数据转换后,其特征在于,管理节点对每条数据独立计算其校验值,并将数据检验值和该条数据的关联字段分别存储在同一分布式存储系统下的物理隔离的不同节点中;当执行数据写入操作时,须保证数据和数据校验值同时写入成功,如果数据和数据校验值只有一个写入成功,则重新执行数据和数据校验值写入操作,直到数据和数据校验值同时写入成功;
所述数据校验值为不可逆的单向数据结构;
设n为字符的序号,m为随机数的序号,所述数据校验值第n个字符记录数据长度,第n+1个字符根据数据长度产生第m随机数,第n+2个字符存储第m随机数的位置的字符,第n+3个字符是根据数据长度产生的第m+1随机数,第n+4个字符存储第m+1个随机数位置的字符;抽样一组随机数的位置的字符作为数据校验值;
所述管理节点还用于数据恢复,获得发生冲突的数据和校验值,检测该数据是数据被篡改还是数据校验值被篡改导致的数据冲突,如果是数据被篡改,删除错误数据副本,保留正确数据副本;如果是数据校验值发生篡改,删除错误数据校验值,重新计算数据校验值,更新数据校验值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110239917.7A CN112965858B (zh) | 2021-03-04 | 2021-03-04 | 一种组网分布式存储数据冲突处理的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110239917.7A CN112965858B (zh) | 2021-03-04 | 2021-03-04 | 一种组网分布式存储数据冲突处理的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965858A CN112965858A (zh) | 2021-06-15 |
CN112965858B true CN112965858B (zh) | 2023-07-18 |
Family
ID=76276449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110239917.7A Active CN112965858B (zh) | 2021-03-04 | 2021-03-04 | 一种组网分布式存储数据冲突处理的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965858B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892153B2 (en) * | 2014-12-19 | 2018-02-13 | Oracle International Corporation | Detecting lost writes |
JP2018073312A (ja) * | 2016-11-04 | 2018-05-10 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR102444421B1 (ko) * | 2017-10-31 | 2022-09-16 | 아브 이니티오 테크놀로지 엘엘시 | 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리 |
CN108196985A (zh) * | 2017-12-29 | 2018-06-22 | 中国电子科技集团公司信息科学研究院 | 一种基于智能预测的存储系统故障预测方法与装置 |
CN111382007A (zh) * | 2018-12-28 | 2020-07-07 | 深圳市茁壮网络股份有限公司 | 一种数据恢复方法、装置及电子设备 |
CN111078662B (zh) * | 2019-11-22 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种区块链数据存储方法与装置 |
CN111209341B (zh) * | 2020-01-07 | 2023-03-14 | 北京众享比特科技有限公司 | 区块链的数据存储方法、装置、设备及介质 |
CN112181722A (zh) * | 2020-09-16 | 2021-01-05 | 济南浪潮数据技术有限公司 | 一种数据备份及恢复方法、装置、设备及可读存储介质 |
CN111930723B (zh) * | 2020-09-25 | 2024-02-02 | 国网冀北电力有限公司经济技术研究院 | 基于大数据的科技成果数据融合方法 |
-
2021
- 2021-03-04 CN CN202110239917.7A patent/CN112965858B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112965858A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220327026A1 (en) | Partial database restoration | |
US7363444B2 (en) | Method for taking snapshots of data | |
US8868512B2 (en) | Logging scheme for column-oriented in-memory databases | |
US8806264B2 (en) | Methods for detecting split brain in a distributed system | |
US20080301200A1 (en) | Log file amnesia detection | |
US8396840B1 (en) | System and method for targeted consistency improvement in a distributed storage system | |
CN108255647B (zh) | 一种samba服务器集群下的高速数据备份方法 | |
EP2976714B1 (en) | Method and system for byzantine fault tolerant data replication | |
US7801867B2 (en) | Optimizing backup and recovery utilizing change tracking | |
CN110018989B (zh) | 一种快照比对的方法和装置 | |
US8468134B1 (en) | System and method for measuring consistency within a distributed storage system | |
US10013312B2 (en) | Method and system for a safe archiving of data | |
CN106844089B (zh) | 一种用于恢复树形数据存储的方法与设备 | |
US20220318095A1 (en) | Using a storage log to generate an incremental backup | |
CN106682193A (zh) | 基于缓存的数据持久化存储方法及装置 | |
CN109918386B (zh) | 一种数据恢复方法和装置、计算机可读存储介质 | |
CN109241004B (zh) | 元数据文件大小恢复方法、系统、装置及可读存储介质 | |
CN110555055A (zh) | 针对Oracle数据库重做日志文件的数据挖掘方法 | |
US11880290B2 (en) | Scalable exactly-once data processing using transactional streaming writes | |
CN112965858B (zh) | 一种组网分布式存储数据冲突处理的实现方法 | |
US20220413971A1 (en) | System and Method for Blockchain Based Backup and Recovery | |
WO2017067397A1 (zh) | 一种数据恢复方法和装置 | |
US10620872B2 (en) | Replicating data in a data storage system | |
US20230214301A1 (en) | Copy Data Management System and Method for Modern Application | |
CN115408200A (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 |