[发明专利]一种存储系统的数据更新方法在审
申请号: | 201811386532.8 | 申请日: | 2018-11-20 |
公开(公告)号: | CN109684338A | 公开(公告)日: | 2019-04-26 |
发明(设计)人: | 张婧垚 | 申请(专利权)人: | 深圳花儿数据技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F11/14 |
代理公司: | 深圳鼎合诚知识产权代理有限公司 44281 | 代理人: | 彭愿洁;彭家恩 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据更新 逻辑数据块 存储系统 更新 存储对象 更新数据 内容拷贝 备份 读取 节点存放 历史数据 日志区 数据区 恢复 保证 | ||
一种存储系统的数据更新方法,存储系统中的存储对象以块的形式被存放于至少一个节点上,每个节点存放一个逻辑数据块,各节点上的逻辑数据块共同组成一个完整的存储对象,该数据更新方法包括:获取待更新数据的更新块和备份块;然后将备份块的内容拷贝到逻辑数据块的日志区;继而将更新块的内容拷贝到数据区中待更新数据对应的位置。采用该数据更新方法能够精确地获取和恢复历史数据,并且可以根据版本号,恢复或读取指定版本的数据。此外更新时若发生异常,可以方便地退回到更新前的状态,从而保证了数据的一致性和更新的正确性。
技术领域
本发明涉及数据存储领域,具体涉及一种存储系统的数据更新方法,并且涉及一种基于该数据更新方法的异常处理方法、以及已更新数据的数据读取和回滚过程。
背景技术
由于科学技术的不断进步,特别是互联网等信息技术的飞速发展,使得现代社会每天产生的数据呈爆炸式增长,因此对海量数据存储技术的需求日渐突出。在这一科技背景下,大容量,可扩展,高可用和高可靠的分布式存储系统,正在取代传统的单节点存储系统成为业界的主流。与单节点存储系统相比,多节点的分布式存储系统面对很多复杂的新问题,不仅要有较高的数据存取效率,以满足大量用户同时访问的需求,还要保证数据的安全和正确性。特别是对于电信、金融等领域,对存储系统的可靠性要求更高,需要特别的技术手段来予以保障。
对于一个存储系统来说,发生错误的风险的可能性很大一部分存在于数据更新的过程中。如果在修改数据时系统发生了故障,例如网络中断,机器断电等等,有可能无法正常完成操作,此时不仅新的数据没能正确写入,旧的数据也可能被丢失或者损坏,甚至导致整块数据全部失效。在分布式存储系统中,一块数据的不同部分可能存放于不同的节点。而且分布式存储系统通常采用多副本或纠删码等冗余技术来保障数据的安全,这样即使整块数据都放在相同节点上,多副本中的备份数据,或者纠删码中的原始数据块与校验块(或称编码块),也会被分散于多个节点上。这使得分布式存储系统的数据更新操作变得更加复杂。假设一块数据相关的存储节点有N个,在修改数据时需要对全部N个节点的内容都正确更新,如果其中部分节点完成了更新,而另一部分由于故障等因素没能正确更新,这N个节点就会出现数据版本不一致的情况,由此可能导致整块数据被破坏。在这种情形下,需要对失败的节点再次执行更新操作,直到所有相关节点都被正确更新。但有时故障不能很快地排除,只能将已经更新的节点恢复到未更新之前的状态。也就是说,在任何时刻,都要保证节点间数据的“一致性”,这是分布式存储系统要解决的基本问题。
除了保证数据的正确性,历史数据的可追溯性也是一个高质量存储系统的必备特征。例如查询数据的修改记录,利用快照技术进行数据备份,灾难恢复,误操作的取消等应用场景,都需要准确地记录数据的变化。现代存储系统通常采用日志的方式来实现这一功能。根据用途和性能,日志的层次和粒度可以有多种选择。有整个系统级的日志,记录整个系统的状态变化。亦有文件或对象级的日志,记录文件或存储对象的创建、属性修改、删除等操作,但不会记录数据内容的具体变化,例如Ceph就采用这种日志方式。还有数据内容级的日志,会记录数据内容的具体变化,包括修改位置,修改内容,修改时间等。前两种属于较粗粒度的日志,实现较为简单,但无法对数据内容进行回溯。最后一种属于精细粒度的日志,可以精确地追溯历史数据,但也面对实现复杂度,空间效率和访问效率等难题。
目前数据内容级的更新策略主要有以下几种:
1)全覆盖(Full Overwrite,FO),即直接在待更新的位置用新数据覆盖旧数据。这种方式相当于没有日志,其实现简单,但风险较大,无法满足数据一致性要求,且更新之后无法恢复旧的数据。
2)全日志(Full Logging,FL),把新数据作为日志,存放在系统中专门的日志空间里,同时记录修改的位置(相对数据块起始位置的偏移)和长度。当需要读取数据时,首先读取原始的数据块,然后将被更新的部分用新数据代替。这种方式相对第1)种全覆盖式的策略安全可靠得多。如果更新失败,旧数据仍得以保留。如果要恢复历史数据,只要将新数据删除即可。但采用这种方式每次读取都需要用新数据替换旧数据,影响访问速度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳花儿数据技术有限公司,未经深圳花儿数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811386532.8/2.html,转载请声明来源钻瓜专利网。