CN114584572A - 一种分布式对象存储中数据同步方法、装置、设备及介质 - Google Patents
一种分布式对象存储中数据同步方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114584572A CN114584572A CN202210316752.3A CN202210316752A CN114584572A CN 114584572 A CN114584572 A CN 114584572A CN 202210316752 A CN202210316752 A CN 202210316752A CN 114584572 A CN114584572 A CN 114584572A
- Authority
- CN
- China
- Prior art keywords
- bucket
- barrel
- log
- site
- secondary log
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 239000012634 fragment Substances 0.000 claims abstract description 98
- 230000008569 process Effects 0.000 claims abstract description 40
- 230000001360 synchronised effect Effects 0.000 claims abstract description 18
- 238000013467 fragmentation Methods 0.000 claims abstract description 17
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式存储领域,尤其涉及一种分布式对象存储中数据同步方法、装置、设备及介质。方法包括:在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;在主站点执行上传流程的完成阶段通过异步操作将桶分片上变化的对象写入二级日志;由主站点对二级日志的落盘状态进行检测,记录成功落盘的二级日志对应的桶分片信息;由主站点将桶分片信息发送给所有从站点;由持有竞争锁的从站点基于桶分片信息向主站点请求获取二级日志,并基于一级日志和二级日志更新从站点变化的对象。本发明解决了上传机制和同步机制结合出现数据漏同步的问题,优化了数据同步的功能,提高了数据同步的健壮性和精准度。
Description
技术领域
本发明涉及分布式存储领域,尤其涉及一种分布式对象存储中数据同步方法、装置、设备及介质。
背景技术
分布式存储是将数据分散存储在多台独立的设备上,采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。当前的分布式对象存储系统中,当配置多站点后,其中任何一个站点有数据变化,则其他所有站点都会监测到该变化,并执行相同的操作,从而保证所有数据中心的数据完全相同,以达到异地容灾的效果。
目前传统分布式存储采用上传机制结合数据同步机制,请结合图1所示,在执行上传流程时写入的区别是:一级日志用于记录发生数据变化的桶分片,二级日志用于记录桶分片上发生数据变化的对象,一级日志是一个同步操作,会判断操作的返回值;而二级日志是一个异步操作,不判断操作的返回值,针对同一个对象的两种日志的落盘时间没有严格顺序,且即使二级日志落盘失败也不会认为对象上传失败。在执行数据同步时通常一级日志落盘要比二级日志落盘更快,由于分布式存储中主站点和从站点都不能及时获知二级日志的写入状态,因此数据同步机制的主要策略有两种:一种策略是从站点收到通知后会发请求获取主站点上该桶分片上的二级日志,但可能会出现二级日志尚未落盘的异常,导致从站点无法及时同步此对象;另一种策略是从站点通过扫描主站点二级日志,进而发现发生数据变化的桶分片,同样会发请求获取主站点上该桶分片上的二级日志,如果定时时间达到时二级日志可能还没有完成落盘,因而同样存在对象漏同步的可能。
发明内容
有鉴于此,有必要针对一级日志落盘快、二级日志落盘慢或者落盘失败导致的数据漏同步问题,提供一种分布式对象存储中数据同步方法、装置、设备及介质。
根据本发明的第一方面,提供了一种分布式对象存储中数据同步方法,所述方法包括:
在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
由主站点将所述桶分片信息发送给所有从站点;
由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新从站点变化的对象。
在一些实施例中,所述由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息的步骤包括:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
在一些实施例中,所述由主站点将所述桶分片信息发送给所有从站点的步骤包括:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
在一些实施例中,所述方法还包括:
响应于持有竞争锁的从站点完成同步操作,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
根据本发明的第二方面,提供了一种分布式对象存储中数据同步装置,所述装置包括:
第一写入模块,配置用于在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
第二写入模块,配置用于在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
状态检测模块,配置用于由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
发送模块,配置用于由主站点将所述桶分片信息发送给所有从站点;
更新模块,配置用于由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新变化的对象。
在一些实施例中,所述状态检测模块进一步配置用于:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
在一些实施例中,所述检测模块进一步配置用于:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
在一些实施例中,所述装置还包括:
清空模块,配置用于响应于持有竞争锁的从站点完成更新,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的分布式对象存储中数据同步方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的分布式对象存储中数据同步方法。
上述一种分布式对象存储中数据同步方法,通过在上传流程结束阶段增加对二级日志写入状态的检测,并记录成功落盘的二级日志对应的桶分片信息,然后主站点再将桶分片信息发送给所有从站点,最后持有竞争锁的从站点基于所获取的桶分片信息向主站点请求获取二级日志执行数据同步,即从站点不再根据一级日志的完成状态主动获取二级日志或者定时主动获取二级日志,而是由主站点管理二级日志的写入状态并主动向从站点发送,解决了上传机制和同步机制结合出现数据漏同步的问题,优化了数据同步的功能,提高了数据同步的健壮性和精准度,给用户带来更好的使用体验,极大地提高了分布式存储的稳定性和可靠性。
此外,本发明还提供了一种分布式对象存储中数据同步装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为传统的分布式存储中数据同步的流程示意图;
图2为本发明一个实施例提供的一种分布式对象存储中数据同步方法100的流程示意图;
图3为本发明另一个实施例提供的上传流程和同步流程结合的示意图;
图4为本发明一个实施例提供的一种分布式对象存储中数据同步装置300的结构示意图;
图5为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图2所示,本发明提供了一种分布式对象存储中数据同步方法100,所述方法包括以下步骤:
步骤101,在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
步骤102,在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
步骤103,由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
步骤104,由主站点将所述桶分片信息发送给所有从站点;
步骤105,由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新从站点变化的对象。
上述一种分布式对象存储中数据同步方法,通过在上传流程结束阶段增加对二级日志写入状态的检测,并记录成功落盘的二级日志对应的桶分片信息,然后主站点再将桶分片信息发送给所有从站点,最后持有竞争锁的从站点基于所获取的桶分片信息向主站点请求获取二级日志执行数据同步,即从站点不再根据一级日志的完成状态主动获取二级日志或者定时主动获取二级日志,而是由主站点管理二级日志的写入状态并主动向从站点发送,解决了上传机制和同步机制结合出现数据漏同步的问题,优化了数据同步的功能,提高了数据同步的健壮性和精准度,给用户带来更好的使用体验,极大地提高了分布式存储的稳定性和可靠性。
在一些实施例中,步骤103,由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息具体包括:
步骤1031,调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
步骤1032,响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
步骤1033,基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
在一些实施例中,步骤104,由所述主站点将所述桶分片信息发送给所有从站点具体包括:
步骤1041,在主站点的业务网关中创建线程以定时读取所述网关全局变量;在具体实施过程中定时读取可以采用设置固定的读取时间,例如7:008:0、12:00,通过判断当前时间是否到达所设置的时间判断是否读取网关全局变量,此外定时读取还可以采用固定间隔时间的方式,例如线程启动后每间隔十分之读取一次关全局变量,用户可以根据分布式存储的具体业务及同步效率的需求设置。
步骤1042,响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
步骤1043,将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
在一些实施例中,所述方法还包括:
响应于持有竞争锁的从站点完成同步操作,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
在又一个实施例中,请结合图3所示,为了便于理解本发明的方案,下将从上传流程和同步流程的具体结合实例详细说明本发明的方案,本实施例提供了一种分布式对象存储中数据同步方法200,主要包括两方面:第一上传流程中利用异步操作特有的回调函数,判断出二级日志成功落盘后,构造当前对象所在的桶分片字符串信息,并保存至内存等待被处理;第二网关启动时开辟一个专门的线程,定时读取内存,当内存不为空时,将内存中保存的桶分片信息取出来,然后向从站点的每个从站点都发送通知。
下面将针对上传流程和同步流程进行详细说明:
执行上传流程:
步骤201:上传对象;
步骤202,在上传对象完成阶段用同步写入的方法写入一级日志;
步骤203,在上传对象完成阶段用异步写入的方法写入二级日志;
步骤204,调用异步写入的回调函数获得返回值;
步骤205,当判断返回值大于0时,说明二级日志已经成功落盘;
步骤206,构造字符串,字符串采用桶名+桶id+桶分片号构造,并将该字符串写入网关全局变量中,等待专门的定时线程发送给从站点;
执行同步流程:
步骤207,网关启动时创建一个专门读取线程,定时读取网关中的全局变量中的内容;
步骤208,启动步骤207中创建的专门读取线程;
步骤209,在专门的读取线程启动后会根据读取到的内容判断是否有待发送的桶分片,如果定时读取网关中的全局变量中的内容不为空,说明有已经完成二级日志落盘的桶分片;
步骤210,如果确定有待发送桶分片则获取桶分片;
步骤211,将已经完成二级日志落盘的桶分片信息向从站点的所有网关实例都发送一遍。成功发送之后,间隔一定的时间,继续读取网关中的全局变量中的内容,若不为空则继续处理。需要说明的是,对于存在多个从站点起多个网关实例的情况,网关实例之间会竞争锁,抢不到锁的同步网关是不会执行该桶分片的同步操作,通过向所有的站点都发送可以保证能够处理同步业务的从站点及时获取到所需信息完成同步,有助于提升分布式存储的同步效率。
在又一个实施例中,请结合图4所示,本发明还提供了一种分布式对象存储中数据同步装置300,所述装置包括:
第一写入模块301,配置用于在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
第二写入模块302,配置用于在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
状态检测模块303,配置用于由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
发送模块304,配置用于由主站点将所述桶分片信息发送给所有从站点;
更新模块305,配置用于由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新变化的对象。
上述一种分布式对象存储中数据同步装置,通过在上传流程结束阶段增加对二级日志写入状态的检测,并记录成功落盘的二级日志对应的桶分片信息,然后主站点再将桶分片信息发送给所有从站点,最后持有竞争锁的从站点基于所获取的桶分片信息向主站点请求获取二级日志执行数据同步,即从站点不再根据一级日志的完成状态主动获取二级日志或者定时主动获取二级日志,而是由主站点管理二级日志的写入状态并主动想从站点发送,解决了上传机制和同步机制结合出现数据漏同步的问题,优化了数据同步的功能,提高了数据同步的健壮性和精准度,给用户带来更好的使用体验,极大地提高了分布式存储的稳定性和可靠性。
在一些实施例中,所述状态检测模块303进一步配置用于:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
在一些实施例中,所述状态检测模块303进一步配置用于:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
在一些实施例中,所述装置还包括:
清空模块,配置用于响应于持有竞争锁的从站点完成更新,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
需要说明的是,关于分布式对象存储中数据同步装置的具体限定可以参见上文中对分布式对象存储中数据同步方法的限定,在此不再赘述。上述分布式对象存储中数据同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的分布式对象存储中数据同步方法,具体来说,所述方法包括以下步骤:
在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
由主站点将所述桶分片信息发送给所有从站点;
由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新从站点变化的对象。
在一些实施例中,所述由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息的步骤包括:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
在一些实施例中,所述由主站点将所述桶分片信息发送给所有从站点的步骤包括:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
在一些实施例中,所述方法还包括:
响应于持有竞争锁的从站点完成同步操作,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的分布式对象存储中数据同步方法,具体来说,包括执行以下步骤:
在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
由主站点将所述桶分片信息发送给所有从站点;
由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新从站点变化的对象。
在一些实施例中,所述由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息的步骤包括:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
在一些实施例中,所述由主站点将所述桶分片信息发送给所有从站点的步骤包括:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
在一些实施例中,所述方法还包括:
响应于持有竞争锁的从站点完成同步操作,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种分布式对象存储中数据同步方法,其特征在于,所述方法包括:
在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
由主站点将所述桶分片信息发送给所有从站点;
由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新从站点变化的对象。
2.根据权利要求1所述的分布式对象存储中数据同步方法,其特征在于,所述由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息的步骤包括:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
3.根据权利要求2所述的分布式对象存储中数据同步方法,其特征在于,所述由主站点将所述桶分片信息发送给所有从站点的步骤包括:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
4.根据权利要求1-3任意一项所述的分布式对象存储中数据同步方法,其特征在于,所述方法还包括:
响应于持有竞争锁的从站点完成同步操作,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
5.一种分布式对象存储中数据同步装置,其特征在于,所述装置包括:
第一写入模块,配置用于在主站点执行上传流程的完成阶段通过同步操作将发生变化的桶分片写入一级日志并同步到所有从站点;
第二写入模块,配置用于在主站点执行上传流程的完成阶段通过异步操作将所述桶分片上变化的对象写入二级日志;
状态检测模块,配置用于由主站点对所述二级日志的落盘状态进行检测,记录成功落盘的所述二级日志对应的桶分片信息;
发送模块,配置用于由主站点将所述桶分片信息发送给所有从站点;
更新模块,配置用于由持有竞争锁的从站点基于所述桶分片信息向主站点请求获取所述二级日志,并基于所述一级日志和所述二级日志更新变化的对象。
6.根据权利要求5所述的分布式对象存储中数据同步装置,其特征在于,所述状态检测模块进一步配置用于:
调用异步写入的回调函数获取返回值,并判断所述返回值是否大于预设值;
响应于所述返回值大于预设值,则确认所述二级日志落盘成功,并从上传流程中获取发生数据变化的桶名称、桶ID、以及桶分片号;
基于所述桶名称、所述桶ID和所述桶分片号构造字符串,并将所述字符串写入网关全局变量中。
7.根据权利要求6所述的分布式对象存储中数据同步装置,其特征在于,所述状态检测模块进一步配置用于:
在主站点的业务网关中创建线程以定时读取所述网关全局变量;
响应于读取到的所述网关全局变量不为空,则解析所述全局变量中的字符串确定桶名称、桶ID、以及桶分片号;
将所述桶名称、所述桶ID、以及所述桶分片号发送给所有从站点。
8.根据权利要求5-7任意一项所述的分布式对象存储中数据同步装置,其特征在于,所述装置还包括:
清空模块,配置用于响应于持有竞争锁的从站点完成更新,则由持有竞争锁的从站点通知所述主站点清空所述网关全局变量。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-4任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-4任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210316752.3A CN114584572B (zh) | 2022-03-29 | 2022-03-29 | 一种分布式对象存储中数据同步方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210316752.3A CN114584572B (zh) | 2022-03-29 | 2022-03-29 | 一种分布式对象存储中数据同步方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584572A true CN114584572A (zh) | 2022-06-03 |
CN114584572B CN114584572B (zh) | 2023-06-16 |
Family
ID=81782528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210316752.3A Active CN114584572B (zh) | 2022-03-29 | 2022-03-29 | 一种分布式对象存储中数据同步方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584572B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736985A (zh) * | 2020-05-29 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种加快日志落入磁盘的方法、系统、设备及介质 |
CN111913885A (zh) * | 2020-08-07 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 日志处理方法、装置、计算机可读存储介质及设备 |
CN113420082A (zh) * | 2021-05-28 | 2021-09-21 | 济南浪潮数据技术有限公司 | 一种数据同步的异常检测方法和装置 |
-
2022
- 2022-03-29 CN CN202210316752.3A patent/CN114584572B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736985A (zh) * | 2020-05-29 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种加快日志落入磁盘的方法、系统、设备及介质 |
CN111913885A (zh) * | 2020-08-07 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 日志处理方法、装置、计算机可读存储介质及设备 |
CN113420082A (zh) * | 2021-05-28 | 2021-09-21 | 济南浪潮数据技术有限公司 | 一种数据同步的异常检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114584572B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106878473B (zh) | 一种消息处理方法、服务器集群及系统 | |
CN110262929B (zh) | 一种保证复制事务一致性的方法以及相应的复制装置 | |
EP2434729A2 (en) | Method for providing access to data items from a distributed storage system | |
CN109308227B (zh) | 故障检测控制方法及相关设备 | |
CN107515874B (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
CN110768873B (zh) | 分布式心跳检测方法、系统、装置和计算机设备 | |
CN108965383B (zh) | 文件同步方法、装置、计算机设备和存储介质 | |
US9104717B2 (en) | Distributed storage object delete | |
CN111078451B (zh) | 分布式事务处理方法、装置、计算机设备及存储介质 | |
US20140244583A1 (en) | Method of Processing File changes and Electronic Device Thereof | |
WO2016177130A1 (zh) | 通讯节点的选择方法及装置 | |
CN112367149B (zh) | 消息获取方法、装置、设备及存储介质 | |
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
CN110602165B (zh) | 政务数据同步方法、装置、系统、计算机设备和存储介质 | |
CN110650164B (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN110019873B (zh) | 人脸数据处理方法、装置及设备 | |
CN113204530B (zh) | 分布式文件系统的数据写入方法、装置、设备以及介质 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111797172A (zh) | 数据迁移方法、装置、设备、分布式系统及存储介质 | |
CN113934745A (zh) | 数据同步处理方法、电子设备以及存储介质 | |
CN113553373B (zh) | 数据同步方法及装置、存储介质及电子设备 | |
CN114584572A (zh) | 一种分布式对象存储中数据同步方法、装置、设备及介质 | |
CN111291063A (zh) | 主备副本选举方法、系统、计算机设备和存储介质 | |
CN113535482B (zh) | 云备份链数据备份方法及装置、设备、可读介质 | |
CN110764697B (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 |