[发明专利]共享数据同步方法及装置有效
申请号: | 201810962289.3 | 申请日: | 2018-08-22 |
公开(公告)号: | CN110895545B | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 张友东;杨成虎;朱一聪;刘鑫 | 申请(专利权)人: | 阿里云计算有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/176;G06F16/18 |
代理公司: | 北京同钧律师事务所 16037 | 代理人: | 吴梅锡 |
地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享 数据 同步 方法 装置 | ||
本申请公开了一种共享数据同步方法,应用于备节点,其中,共享数据存储在共享存储空间中,共享存储空间采用日志结构合并LSM树的方式进行数据的存储,方法包括:获取数据操作日志及其执行序号,获取元数据操作日志及其执行序号;按照数据操作日志和元数据操作日志的执行序号,在本地重放数据操作日志和元数据操作日志。相对应的,本申请还公开了应用于主节点的共享数据同步方法。采用这种方式,备节点通过对日志的本次重放,能得到和主节点一致的内存视图和磁盘视图,从而实现了主备节点之间的数据同步。
技术领域
本申请涉及计算机技术领域,尤其涉及共享数据同步方法及装置。
背景技术
目前,部分开源数据库采用本地存储的方式,数据库的主节点和备节点各自维护一份数据,这种方式被称为“Shared-nothing”。采用这种“Shared-nothing”方式搭建的数据库,扩展难度较大。这是因为,新建一个只读实例时需要重新拷贝读写实例上的全量数据。当数据量较大时,整个过程将非常慢,而且增加一个只读实例就需要增加一份额外的存储开销。
为了解决上述问题,可以采用共享存储的架构(Shared-storage),数据库的主节点和备节点共享一份数据,从而能够更方便的增加只读实例(备节点)。
因此,如何在共享存储上实现主节点与备节点间的数据同步,成为了一个亟待解决的问题。
发明内容
本申请实施例提供了共享数据同步方法,分别应用于主节点和备节点,从而对于采用LSM树这种数据存储结构实现的数据库中,在共享存储上实现了主节点与备节点间共享数据的数据同步。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种共享数据同步方法,应用于备节点,其中,所述共享数据存储在共享存储空间中,所述共享存储空间采用日志结构合并LSM树的方式进行数据的存储,所述方法包括:
获取数据操作日志及其执行序号,获取元数据操作日志及其执行序号;
按照所述数据操作日志和所述元数据操作日志的执行序号,在本地重放所述数据操作日志和所述元数据操作日志。
优选的,本申请实施例第一方面提供的方法中,所述数据操作日志中包括:主节点将第一目标数据写入主节点内存表MemTable的操作日志;
则在本地重放所述数据操作日志,包括:
备节点将所述第一目标数据写入备节点内存表MemTable中,以得到与所述主节点相同的内存视图。
优选的,本申请实施例第一方面提供的方法中,所述数据操作日志中还包括:所述主节点在所述主节点MemTable的大小达到预设阈值时,将所述主节点MemTable置为只读状态、并创建新的主节点MemTable用于继续写入所述第一目标数据的操作日志;
则在本地重放所述数据操作日志,还包括:
所述备节点在所述备节点MemTable的大小达到预设阈值时,将所述备节点MemTable置为只读状态,并创建新的备节点MemTable用于继续写入所述第一目标数据,以得到与所述主节点相同的内存视图。
优选的,本申请实施例第一方面提供的方法中,所述元数据操作日志中包括:主节点执行磁盘写入操作和合并操作的操作日志;
在本地重放所述元数据操作日志,包括:
根据所述磁盘写入操作和合并操作的结果,在本地更改存储在所述备节点中的本地元数据以及本地元数据版本信息。
优选的,本申请实施例第一方面提供的方法中,所述方法还包括:
向主节点发送所述备节点的本地元数据版本信息,供所述主节点判断是否删除待删除队列中的无效数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里云计算有限公司,未经阿里云计算有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810962289.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置