CN106708911A - 一种云环境下数据文件同步的方法和装置 - Google Patents
一种云环境下数据文件同步的方法和装置 Download PDFInfo
- Publication number
- CN106708911A CN106708911A CN201510801737.8A CN201510801737A CN106708911A CN 106708911 A CN106708911 A CN 106708911A CN 201510801737 A CN201510801737 A CN 201510801737A CN 106708911 A CN106708911 A CN 106708911A
- Authority
- CN
- China
- Prior art keywords
- server
- data file
- new record
- fresh information
- update
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- 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/2358—Change logging, detection, and notification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种云环境下数据文件同步的方法和装置,在所述云环境下设置有第一服务器,第二服务器和第三服务器,所述第一服务器中存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述方法包括:获取所述第二服务器中的第二更新记录;采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的最新数据文件更新所述第一服务器中的数据文件。本申请实施例可以在单机环境读写数据文件,保持数据文件的一致性。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种云环境下数据文件同步的方法和一种云环境下数据文件同步的装置。
背景技术
现在的互联网随着用户访问量的不断增加,单一的服务器无法承担巨大的访问量,故需要实现各个服务器之间数据文件的同步,以分散访问量。然而,在互联网中传输的数据文件,有些大小可达十几甚至上百兆,很可能由于延时或者网络故障等其他情况,导致在互联网中各个网元的数据文件并非都是最新的。针对分布式、集群的PHP(HypertextPreprocessor,超文本预处理语言)运行环境而言,应用服务器对于本地数据文件的更新操作,需要在多个实例环境中同步。可以理解,在大型云环境下,通常是使用由许多服务器组成的分布式集群环境,已经不能仅从单台服务器的角度去考虑数据文件的同步问题,应用服务器应有更高的可用性、稳定性、性能、扩展性。
目前,在云环境下实现数据文件同步的技术方案的缺点是:1、并发写冲突的问题。当集群内多个应用服务器同时写同一个数据文件时,可能产生数据覆盖丢失的问题。2、写性能相对不高的问题。应用服务器对于较大的数据文件的更新,只能进行全量更新,而不能进行增量更新,由于只能将一个数据文件全部替换来实现更新,那么对于较大的数据文件的更新效率会呈线性降低。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种云环境下数据文件同步的方法和相应的一种云环境下数据文件同步的装置。
为了解决上述问题,本申请实施例公开了一种云环境下数据文件同步的方法,在所述云环境下设置有第一服务器,第二服务器和第三服务器,所述第一服务器中存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述方法包括:
获取所述第二服务器中的第二更新记录;
采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;
当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的最新数据文件更新所述第一服务器中的数据文件。
优选地,所述获取第二服务器中的第二更新记录的步骤为:
在所述第一服务器处理任何请求之前,获取所述第二服务器中的第二更新记录。
优选地,所述第一更新记录中包括数据文件对应的第一更新信息,所述第二更新记录中包括最新数据文件对应的第二更新信息,所述采用第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件的步骤包括:
当所述第一更新记录与所述第二更新记录不一致时,确定为需要更新所述第一服务器中的数据文件;
当所述第一更新记录与所述第二更新记录一致时,采用所述第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件。
优选地,所述第一更新信息与所述第二更新信息互相对应,所述采用第三服务器中的最新数据文件更新所述第一服务器中的数据文件的步骤包括:
从所述第一更新记录和所述第二更新记录中,查找出没有互相对应的第一更新信息和/或第二更新信息;
删除所述第一服务器中所述没有互相对应的第一更新信息对应的数据文件,和/或,在所述第一服务器中增加所述没有互相对应的第二更新信息对应的数据文件。
优选地,所述第一更新信息包括数据文件对应的第一更新时间,所述第二更新信息包括数据文件对应的第二更新时间,所述采用第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件的步骤包括:
当所述第一更新时间晚于所述第二更新时间时,确定为需要更新所述第一服务器中的数据文件;
当所述第一更新时间早于或等于所述第二更新时间时,确定为无需更新所述第一服务器中的数据文件。
优选地,所述调用第三服务器中的最新数据文件更新所述第一服务器中的数据文件的步骤包括:
从所述第三服务器中获取所述第二更新时间对应的最新数据文件;
采用所述第二更新时间对应的最新数据文件,更新所述第一服务器中第一更新时间对应的数据文件。
优选地,所述第二更新信息包括数据文件对应的操作类型和重命名目标文件名,所述方法还包括:
确定所述第二更新记录中数据文件对应的操作类型是否为重命名操作;
若是,则在所述第一服务器将所述数据文件的文件名修改为重命名目标文件名。
优选地,所述第二更新信息包括目录操作信息,所述方法还包括:
确定所述第二更新记录中是否存在目录操作信息;
若是,则采用所述目录操作信息更新所述第一服务器上的目录。
优选地,所述的方法还包括:
采用所述第二更新记录更新所述第一服务器上的第一更新记录。
优选地,所述第一服务器为应用服务器,所述第二服务器为OCS开放缓存服务器,所述第三服务器为OSS分布存储服务器。
本申请实施例还公开了一种云环境下数据文件同步的装置,在所述云环境下设置有第一服务器,第二服务器和第三服务器,所述第一服务器中存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述装置包括:
获取模块,用于获取所述第二服务器中的第二更新记录;
确定模块,用于采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;
更新模块,用于当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的最新数据文件更新所述第一服务器中的数据文件。
优选地,所述获取模块包括:
第二更新记录获取子模块,用于在所述第一服务器处理任何请求之前,获取所述第二服务器中的第二更新记录。
优选地,所述第一更新记录中包括数据文件对应的第一更新信息,所述第二更新记录中包括最新数据文件对应的第二更新信息,所述确定模块包括:
第一更新确定子模块,用于在所述第一更新记录与所述第二更新记录不一致时,确定为需要更新所述第一服务器中的数据文件;
第二更新确定子模块,用于在所述第一更新记录与所述第二更新记录一致时,采用所述第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件。
优选地,所述第一更新信息与所述第二更新信息互相对应,所述更新模块包括:
更新信息确定子模块,用于从所述第一更新记录和所述第二更新记录中,查找出没有互相对应的第一更新信息和/或第二更新信息;
数据文件处理子模块,用于删除所述第一服务器中所述没有互相对应的第一更新信息对应的数据文件,和/或,在所述第一服务器中增加所述没有互相对应的第二更新信息对应的数据文件。
优选地,所述第一更新信息包括数据文件对应的第一更新时间,所述第二更新信息包括数据文件对应的第二更新时间,所述第二更新确定子模块包括:
第一更新确定单元,用于在所述第一更新时间晚于所述第二更新时间时,确定为需要更新所述第一服务器中的数据文件;
第二更新确定单元,用于在所述第一更新时间早于或等于所述第二更新时间时,确定为无需更新所述第一服务器中的数据文件。
优选地,所述确定模块包括:
最新数据文件获取子模块,用于从所述第三服务器中获取所述第二更新时间对应的最新数据文件;
数据文件更新子模块,用于采用所述第二更新时间对应的最新数据文件,更新所述第一服务器中第一更新时间对应的数据文件。
优选地,所述第二更新信息包括数据文件对应的操作类型和重命名目标文件名,所述装置还包括:
操作类型确定模块,用于确定所述第二更新记录中数据文件对应的操作类型是否为重命名操作;若是,则调用文件名修改模块;
文件名修改模块,用于在所述第一服务器将所述数据文件的文件名修改为重命名目标文件名。
优选地,所述第二更新信息包括目录操作信息,所述装置还包括:
目录操作信息确定模块,用于确定所述第二更新记录中是否存在目录操作信息;若是,则目录更新模块;
目录更新模块,用于采用所述目录操作信息更新所述第一服务器上的目录。
优选地,所述的装置还包括:
更新记录更新模块,用于采用所述第二更新记录更新所述第一服务器上的第一更新记录。
本申请实施例包括以下优点:
本申请实施例中,云环境下设置有存储数据文件的服务器,以及存储有数据文件对应的更新记录的服务器,在云环境下的应用服务器可以首先通过获取服务器上的更新记录,与本地的更新记录进行比对,以判断是否需要更新本地的数据文件以及需要更新哪些数据文件。本申请实施例可以在单机环境读写数据文件,可以将单机环境的数据文件同步到所有集群中所有其它的服务器上,从而保持数据文件的一致性。
需要说明的是,在本申请实施例中,由于是根据云环境下专门存储的更新记录确定是否需要进行数据文件的更新,因此可以多个服务器同时进行更新,且由于是分布式的云环境,即使文件较大,各个服务器之间的更新也互不影响,可以有效提高更新效率。另外,本申请实施例还具有容错机制,即使本地更新失败,也不妨碍再次进行数据文件的更新操作。在本申请实施例中,针对服务器上数据文件的更新形式,例如更改数据文件中内容,删除数据文件,增加数据文件这些更新形式,分别设置相应更新方式,可以提高处理效率。
附图说明
图1是本申请的一种云环境下数据文件同步的方法实施例的步骤流程图;
图2是本申请的一种云环境下多实例同步的示意图;
图3是本申请的一种云环境下数据文件同步的装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种云环境下数据文件同步的方法实施例的步骤流程图,在所述云环境下可以设置有第一服务器,第二服务器和第三服务器,所述第一服务器中可以存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述方法具体可以包括如下步骤:
步骤101,获取所述第二服务器中的第二更新记录;
在具体实现中,在云环境下通常设置有许多个服务器,是一个能够实现弹性、分布式的应用托管云环境。
在本申请的一种优选示例中,第一服务器是指云环境下任意的应用服务器,第二服务器是指云环境下提供开放缓存服务(Open CacheService,简称OCS)的开放缓存服务器,能够实现在线缓存,为热点数据的访问提供高速响应服务,第三服务器则是指云环境下提供对象存储服务(Object Storage Service,简称OSS)的分布存储服务器,能够对外提供海量、安全和高可靠的云存储服务。开放缓存服务器与分布存储服务器搭配能大幅提高应用的响应速度,极大缓解后端存储的压力。
在本申请的具体应用中,可以根据用户自定义配置,决定是否启用数据文件同步的功能,当启用数据文件同步的功能时,将实时同步在云环境下各个应用服务器中的数据文件。
以PHP运行环境为例,基于PHP streamWrapper(PHP语言中对特定流操作的封装接口)全面拦截和重定义文件的读写操作行为,在本申请实施例中重新定制PHP语言解析引擎行为,加入重定义的云引擎定义请求处理流程,要求同步在云环境下应用服务器中的数据文件。由于PHP语言本身具备在单机环境读写文件的能力,本申请实施例可着手于在单机环境的文件更新行为同步到所有集群中所有其它的应用服务器上,保持文件数据的一致性。
在本申请实施例中,在分布存储服务器中存储有最新数据文件,在开放缓存服务器中则存储有针对对象存储服务中最新数据文件相关的更新记录。当应用服务器中的数据文件发生变更时,将进行双写操作,即同时会将在应用服务器中发生变更的数据文件上传至分布存储服务器,并且在开放缓存服务器中存储该数据文件相应的更新记录,这样就保证了在分布存储服务器中的数据文件是最新的数据文件,并且在开放缓存服务器中存储了相应的更新记录数据。
当应用服务器在本地完成针对数据文件相关更新操作后,将哪些数据文件被更新的相关记录,以序列化的数组模式进行存储。
在本申请的一种优选实施例中,所述步骤101可以为如下子步骤:
子步骤S11,在所述第一服务器处理任何请求之前,获取所述第二服务器中的第二更新记录。
在本申请实施例中,应用服务器在处理任何一次的请求之前,将会基于本申请实施例中已定义的云引擎定义请求处理流程,先去拉取开发缓存服务器中的第二更新记录,这样在处理任何一次的请求之前,应用服务器中所使用的数据文件都是最新的数据文件。
当然,在实施本申请实施例时,也可以设定为按时间间隔向应用服务器提醒更新记录是否发生变化,或者设置为在开放缓存服务器中的更新记录发生变化时,就提醒应用服务器去拉取开放缓存服务器中的更新记录,本申请实施例对此不加以限制。
步骤102,采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;
步骤103,当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的数据文件更新所述第一服务器中的数据文件。
在本申请实施例中,基于已定义的云引擎定义请求处理流程,应用服务器会先去拉取开放缓存服务器中的第二更新记录,然后对比本地以临时文件方式缓存的第一更新记录,如果发现有第一更新记录与第二更新记录有所不同,说明在应用服务器与分布存储服务器中的数据文件不一致,那么此时应用服务器就会从分布存储服务器上获取相应的数据文件用于本地的更新。
在本申请实施例中,可以根据更新记录中的字段判断需要更新哪些数据文件,以及如何进行数据文件的更新。此外,在服务器上进行的更新操作除了包括针对数据文件的更新之外,还可以包括针对数据文件的目录的更新。
在具体实现中,更新记录可以以序列化的方式进行存储,即将更新记录按序分为一条条的更新信息进行记录,可以每更新一次,就生成一条更新信息。
在本申请的一种具体示例中,更新信息具体可以包括如下表1的内容:
表1:
在本示例中,更新信息的内容包括有操作类型(Type),文件所在路径(Path),更新版本号(Ver),更新时间(T),是否是目录操作(isdir),重全名目标文件名(To)等等。当然,在实际应用中更新信息也可以包括其他字段,本申请实施例对此不加以限制。
当确定为需要进行更新时,可以根据更新记录中的更新信息,来确定进行如何的更新操作。在本申请的一种示例中,可以根据更新信息中的字段确定变更类型,从而根据变更类型去进行相应的更新操作。
具体来说,变更类型以及变更类型的更新说明,可以参照表2所示的一种更新情况说明表:
表2:
在本申请的一种优选实施例中,所述第一更新记录中包括数据文件对应的第一更新信息,所述第二更新记录中包括最新数据文件对应的第二更新信息,所述步骤102可以包括如下子步骤:
子步骤S21,当所述第一更新记录中与所述第二更新记录不一致时,确定为需要更新所述第一服务器中的数据文件;
子步骤S22,当所述第一更新记录与所述第二更新记录一致时,采用所述第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件。
在本申请的一种优选实施例中,所述第一更新信息与所述第二更新信息互相对应,所述步骤103可以包括如下子步骤:
子步骤S31,从所述第一更新记录和所述第二更新记录中,查找出没有互相对应的第一更新信息和/或第二更新信息;
子步骤S32,删除所述第一服务器中所述没有互相对应的第一更新信息对应的数据文件,和/或,在所述第一服务器中增加所述没有互相对应的第二更新信息对应的数据文件。
在具体实现中,每个数据文件都可以对应了一条更新信息,以序列化方式保存在更新记录中,更新信息中的具体内容可参考表1所示。另外,第一更新记录中的第一更新信息与第二更新记录中的第二更新信息是互相对应的,可共同指代同一个数据文件。
如果本地应用服务器中第一更新记录中的第一更新信息,能够与开放缓存服务器中第二更新记录的第二更新信息一一对应,则说明在应用服务器中的数据文件与开放缓存服务器中的数据文件保持了一一对应的关系,则此时需要根据更新信息中的具体内容来进一步确定是否需要更新数据文件。反之,如果本地应用服务器中第一更新记录中的第一更新信息,不能够与开放缓存服务器中第二更新记录的第二更新信息一一对应,则说明应用服务器中的数据文件与开放缓存服务器中的数据文件不是一一对应的关系,有可能在开放缓存服务器中删除和/或增加了数据文件,那么就需要根据没有互相对应的更新信息确定对应的数据文件,以在本地应用服务器中增加和/或删除相应的数据文件。
具体地,如果发现本地应用服务器中第一更新记录中存在的第一更新信息,在开放缓存服务器中不存在,则说明在其他应用服务器已经删除了该第一更新信息对应的数据文件,则可以在本地应用服务器中删除该数据文件。如果发现开放缓存服务器中第二更新记录中存在的第二更新信息,在本地应用服务器中不存在,则说明在其他应用服务器已经新增加了该第二更新信息对应的数据文件,则可以在本地应用服务器中增加该数据文件。
在本申请的一种优选实施例中,所述第一更新信息可以包括数据文件对应的第一更新时间,所述第二更新信息可以包括数据文件对应的第二更新时间,所述子步骤S22可以包括如下子步骤:
子步骤S22-1,当所述第一更新时间晚于所述第二更新时间时,确定为需要更新所述第一服务器中的数据文件;
子步骤S22-2,当所述第一更新时间早于或等于所述第二更新时间时,确定为无需更新所述第一服务器中的数据文件。
在本申请的一种优选实施例中,所述步骤103可以包括如下子步骤:
子步骤S41,从所述第三服务器中获取所述第二更新时间对应的最新数据文件;
子步骤S42,采用所述第二更新时间对应的最新数据文件,更新所述第一服务器中第一更新时间对应的数据文件。
在本申请实施例中,当第一更新记录与第二更新记录一致时,可以进一步将更新信息中的各项内容一一进行比对,以确定数据文件的内容是否发生变化。
参照表1和表2可知,更新信息中的字段可以包括更新时间(T)和文件所在路径(Path),在本申请实施例中可以通过更新时间判断数据文件是否发生了变更,若确定发生了变更,则可以通过文件所在路径获取相应的数据文件进行更新。
如果发现在第一更新记录上的第一更新时间晚于第二更新记录上的第二更新时间,则说明其他应用服务器上的数据文件发生变更,那么可以确定需要对于本地应用服务器的数据文件进行更新,如果发现在第一更新记录上的第一更新时间早于或者等于第二更新记录上的第二更新时间,则可以确定本地应用服务器上的数据文件是最新的,那么此时可以确定无需对于本地应用服务器的数据文件进行更新。
当确定需要进行本地应用服务器中数据文件的更新时,则从分布存储服务器获取到该数据文件,用于本地应用服务器中数据文件的更新。
需要说明的是,如果第一更新时间早于第二更新时间,说明该本地应用服务器中的数据文件发生过变更,那么应当将该数据文件上传至分布存储服务器,以及将该数据文件相关的更新记录上传至开放缓存服务器,那么其他应用服务器就可以根据上传的新的数据文件进行更新。
在本申请实施例中,是讲第一更新记录与第二更新记录进行对比,根据比对结果来确定数据文件是否发生更新,在本申请的一种示例中,更新记录的对比可以包含有Ver值(更新版本号)对比。在本申请实施例中,如果一个数据文件可以为其设置Ver值,当该数据文件更新后,会将当前的Ver值加1,这样就能够根据Ver值获知该数据文件的更改次数,以及用于确定是否需要更新该数据文件。
在本申请的一种优选实施例中,所述第二更新信息可以包括数据文件对应的操作类型和重命名目标文件名,所述方法还可以包括如下步骤:
确定所述第二更新记录中数据文件对应的操作类型是否为重命名操作;
若是,则在所述第一服务器将所述数据文件的文件名修改为重命名目标文件名。
参照表1和表2可知,更新信息中的字段可以包括操作类型(Type)、文件、目录、重命名操作(rename)和重全名目标文件名(To),在本申请实施例中可以通过操作类型判断数据文件的文件名是否发生了变更,例如,如果操作类型是文件、目录、重命名操作,则可以确定是需要对于文件或目录的文件名或者目录名进行更新,当确定需要进行更新时,则重全名目标文件名来对于文件名进行更新。
在本申请的一种优选实施例中,所述第二更新信息可以包括目录操作信息,所述方法还可以包括如下步骤:
确定所述第二更新记录中是否存在目录操作信息;
若是,则采用所述目录操作信息更新所述第一服务器上的目录。
参照表1和表2可知,更新信息中的字段还可以包括是否是目录操作(isdir),如果确定包括有目录操作,比如创建目录,则会根据目录操作中的具体信息进行目录的创建。
在本申请的一种优选实施例中,所述方法还可以包括如下步骤:
采用所述第二更新记录更新所述第一服务器上的第一更新记录。
在本申请实施例中,当在应用服务器完成对于数据文件的更新之后,将更新本地的第一更新记录,这样下次就无需再次更新已更新的内容。
为了使本领域技术人员更好地理解本申请实施例,以下采用一个具体的示例来说明在大型云计算平台环境下实现数据文件同步的技术方案:
a)首先根据用户自定义配置,决定是否在应用服务器中启用文件同步功能,在启用同步功能的情况下,应用服务器将实现在云环境下数据文件的同步。
b)基于PHP streamWrapper(是指PHP语言中对特定流操作的封装接口)全面拦截和重定义文件的读写操作行为,重新定制PHP语言解析引擎行为,加入云引擎定义请求处理流程。
c)对于数据文件的更新,基于大型云环境下的OSS的分布式存储,进行双写,即在本地应用服务器写数据文件的同时,会将数据文件更新到OSS上存储。对于OSS写,会在基于streamWrapper::stream_open打开OSS连接,创建套接字,此后在应用服务器写完本地的数据文件后,同时写入的数据文件会通过streamWrapper::stream_open再写一次到远程OSS上。在streamWrapper::stream_flush中定义刷新写缓冲。最后在streamWrapper::stream_close关闭OSS连接。这样就可以保证在OSS上的数据文件是最新的数据文件。
d)在步骤c)完成在应用服务器上的更新操作后,将哪些数据文件被更新,以序列化的数组模式进行存储。除了在本地应用服务器存储之外,还需要存放于OCS的分布式缓存上,同时写OCS时使用CAS算法避免写冲突,保证最终一致性。
基于CAS的主要实现原理是:基于OCS CAS特征,应用服务器每次执行获取开放缓存服务器中的更新记录前读取一个无锁密钥(CASkey),在更新时带上CAS key,若更新失败且是CAS冲突,则认为写冲突,需要重新读取CAS key,以及读取OCS上最新的更新记录,并且再更新一次最新更新记录到本地的应用服务器,再将当前进程处理的更新记录提交到OCS,直到提交成功为止。最后再把提交的更新记录在本地的应用服务器中也缓存一份,用作下一次比较和更新。这样,当集群内多个应用服务器同时写同一个数据文件时,可以避免产生数据覆盖丢失的问题。
e)应用服务器在处理任何一次请求前,都会基于已定义的PHP引擎运行流程,先去拉取(从OCS上CAS get此前提交的数据)更新记录,同时对比本地缓存(临时文件方式)的更新记录,如果发现有新的更新,那么应用程序就会从OSS上更新相应的(增、删、改)数据文件。同时会将最新的更新记录缓存到本地,以便于下一次和OCS上的更新记录做对比。
参照图2所示的本申请的一种云环境下多实例同步的示意图,实现云环境下数据文件同步的过程具体可以为:
1、创建用户独立的OCS空间,用于存放更新记录。
2、应用服务器在处理请求(Request)前,检测(check)本地的更新记录以及OCS上的更新记录,从而确定有变化的数据文件,以从OSS上下载有变化的数据文件到本地应用服务器进行更新。
3、处理request中,处理本地的数据文件,如果本地的数据文件发生变化,则发送相关更新数据到OCS和OSS。具体来说,处理本地的数据文件具体可以包括:
1)新增文件:上传新增文件的更新记录到OCS。
2)修改文件:上传修改文件的更新记录到OCS。
3)删除文件:删除OCS上该文件的相关记录。
4)重命名目录:修改OCS中的相关记录。如:当前要修改目录下的文件和子目录记录。
5)删除目录:删除OCS中的相关记录。如:当前要删除目录下的文件和子目录记录。
6)读写多媒体文件gif/mp3/doc/zip等处理:文件增加时只向OSS里写,本地不保留原文件;文件不存在时读取OSS,本地不保留原文件。
4、处理request中,判断删除OSS上的数据文件,或者,将修改后的数据文件提交到OSS上。
5、处理request后,将最新的更新记录保存到本地的应用服务器。
本申请实施例中,云环境下设置有存储数据文件的服务器,以及存储有数据文件对应的更新记录的服务器,在云环境下的应用服务器可以首先通过获取服务器上的更新记录,与本地的更新记录进行比对,以判断是否需要更新本地的数据文件以及需要更新哪些数据文件。本申请实施例可以在单机环境读写数据文件,可以将单机环境的数据文件同步到所有集群中所有其它的服务器上,从而保持数据文件的一致性。
需要说明的是,在本申请实施例中,由于是根据云环境下专门存储的更新记录确定是否需要进行数据文件的更新,因此可以多个服务器同时进行更新,且由于是分布式的云环境,即使文件较大,各个服务器之间的更新也互不影响,可以有效提高更新效率。另外,本申请实施例还具有容错机制,即使本地更新失败,也不妨碍再次进行数据文件的更新操作。在本申请实施例中,针对服务器上数据文件的更新形式,例如更改数据文件中内容,删除数据文件,增加数据文件这些更新形式,分别设置相应更新方式,可以提高处理效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请的一种云环境下数据文件同步的装置实施例的结构框图,在所述云环境下可以设置有第一服务器,第二服务器和第三服务器,所述第一服务器中可以存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述第三服务器中存储有最新数据文件,所述具体可以包括如下模块:
在本申请的一种优选实施例中,所述第一服务器为应用服务器,所述第二服务器为OCS开放缓存服务器,所述第三服务器为OSS分布存储服务器。
获取模块201,用于获取所述第二服务器中的第二更新记录;
在本申请的一种优选实施例中,所述获取模块201可以包括如下模块:
第二更新记录获取子模块,用于在所述第一服务器处理任何请求之前,获取所述第二服务器中的第二更新记录。
确定模块202,用于采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;
更新模块203,用于当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的最新数据文件更新所述第一服务器中的数据文件。
在本申请的一种优选实施例中,所述第一更新记录中包括数据文件对应的第一更新信息,所述第二更新记录中包括最新数据文件对应的第二更新信息,所述确定模块202可以包括如下模块:
第一更新确定子模块,用于在所述第一更新记录与所述第二更新记录不一致,确定为需要更新所述第一服务器中的数据文件;
第二更新确定子模块,用于在所述第一更新记录与所述第二更新记录一致时,采用所述第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件。
在本申请的一种优选实施例中,所述第一更新信息与所述第二更新信息互相对应,所述更新模块203可以包括如下模块:
更新信息确定子模块,用于从所述第一更新记录和所述第二更新记录中,查找出没有互相对应的第一更新信息和/或第二更新信息;
数据文件处理子模块,用于删除所述第一服务器中所述没有互相对应的第一更新信息对应的数据文件,和/或,在所述第一服务器中增加所述没有互相对应的第二更新信息对应的数据文件。
在本申请的一种优选实施例中,所述第一更新信息包括数据文件对应的第一更新时间,所述第二更新信息包括数据文件对应的第二更新时间,所述第二更新确定子模块可以包括如下模块:
第一更新确定单元,用于在所述第一更新时间晚于所述第二更新时间时,确定为需要更新所述第一服务器中的数据文件;
第二更新确定单元,用于在所述第一更新时间早于或等于所述第二更新时间时,确定为无需更新所述第一服务器中的数据文件。
在本申请的一种优选实施例中,所述更新模块203可以包括如下模块:
最新数据文件获取子模块,用于从所述第三服务器中获取所述第二更新时间对应的最新数据文件;
数据文件更新子模块,用于采用所述第二更新时间对应的最新数据文件,更新所述第一服务器中第一更新时间对应的数据文件。
在本申请的一种优选实施例中,所述第二更新信息包括数据文件对应的操作类型和重命名目标文件名,所述装置还可以包括如下模块:
操作类型确定模块,用于确定所述第二更新记录中数据文件对应的操作类型是否为重命名操作;若是,则调用文件名修改模块;
文件名修改模块,用于在所述第一服务器将所述数据文件的文件名修改为重命名目标文件名。
在本申请的一种优选实施例中,所述第二更新信息包括目录操作信息,所述装置还包括:
目录操作信息确定模块,用于确定所述第二更新记录中是否存在目录操作信息;若是,则目录更新模块;
目录更新模块,用于采用所述目录操作信息更新所述第一服务器上的目录。
在本申请的一种优选实施例中,所述装置还可以包括如下模块:
更新记录更新模块,用于采用所述第二更新记录更新所述第一服务器上的第一更新记录。
在本申请的一种优选实施例中,所述第二服务器为OCS开放缓存服务器,所述第三服务器为OSS分布存储服务器。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种云环境下数据文件同步的方法和一种云环境下数据文件同步的装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
1.一种云环境下数据文件同步的方法,其特征在于,在所述云环境下设置有第一服务器,第二服务器和第三服务器,所述第一服务器中存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述方法包括:
获取所述第二服务器中的第二更新记录;
采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;
当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的最新数据文件更新所述第一服务器中的数据文件。
2.根据权利要求1所述的方法,其特征在于,所述获取第二服务器中的第二更新记录的步骤为:
在所述第一服务器处理任何请求之前,获取所述第二服务器中的第二更新记录。
3.根据权利要求1所述的方法,其特征在于,所述第一更新记录中包括数据文件对应的第一更新信息,所述第二更新记录中包括最新数据文件对应的第二更新信息,所述采用第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件的步骤包括:
当所述第一更新记录与所述第二更新记录不一致时,确定为需要更新所述第一服务器中的数据文件;
当所述第一更新记录与所述第二更新记录一致时,采用所述第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件。
4.根据权利要求1或3所述的方法,其特征在于,所述第一更新信息与所述第二更新信息互相对应,所述采用第三服务器中的最新数据文件更新所述第一服务器中的数据文件的步骤包括:
从所述第一更新记录和所述第二更新记录中,查找出没有互相对应的第一更新信息和/或第二更新信息;
删除所述第一服务器中所述没有互相对应的第一更新信息对应的数据文件,和/或,在所述第一服务器中增加所述没有互相对应的第二更新信息对应的数据文件。
5.根据权利要求1或3所述的方法,其特征在于,所述第一更新信息包括数据文件对应的第一更新时间,所述第二更新信息包括数据文件对应的第二更新时间,所述采用第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件的步骤包括:
当所述第一更新时间晚于所述第二更新时间时,确定为需要更新所述第一服务器中的数据文件;
当所述第一更新时间早于或等于所述第二更新时间时,确定为无需更新所述第一服务器中的数据文件。
6.根据权利要求5所述的方法,其特征在于,所述调用第三服务器中的最新数据文件更新所述第一服务器中的数据文件的步骤包括:
从所述第三服务器中获取所述第二更新时间对应的最新数据文件;
采用所述第二更新时间对应的最新数据文件,更新所述第一服务器中第一更新时间对应的数据文件。
7.根据权利要求1或3所述的方法,其特征在于,所述第二更新信息包括数据文件对应的操作类型和重命名目标文件名,所述方法还包括:
确定所述第二更新记录中数据文件对应的操作类型是否为重命名操作;
若是,则在所述第一服务器将所述数据文件的文件名修改为重命名目标文件名。
8.根据权利要求1所述的方法,其特征在于,所述第二更新信息包括目录操作信息,所述方法还包括:
确定所述第二更新记录中是否存在目录操作信息;
若是,则采用所述目录操作信息更新所述第一服务器上的目录。
9.根据权利要求1所述的方法,其特征在于,还包括:
采用所述第二更新记录更新所述第一服务器上的第一更新记录。
10.根据权利要求1所述的方法,其特征在于,所述第一服务器为应用服务器,所述第二服务器为OCS开放缓存服务器,所述第三服务器为OSS分布存储服务器。
11.一种云环境下数据文件同步的装置,其特征在于,在所述云环境下设置有第一服务器,第二服务器和第三服务器,所述第一服务器中存储有第一更新记录,所述第二服务器中存储有第二更新记录,所述第一服务器中存储有数据文件,所述第三服务器中存储有最新数据文件,所述装置包括:
获取模块,用于获取所述第二服务器中的第二更新记录;
确定模块,用于采用所述第一更新记录和所述第二更新记录,确定是否需要更新所述第一服务器中的数据文件;
更新模块,用于当确定为需要更新所述第一服务器中的数据文件时,调用所述第三服务器中的最新数据文件更新所述第一服务器中的数据文件。
12.根据权利要求11所述的装置,其特征在于,所述获取模块包括:
第二更新记录获取子模块,用于在所述第一服务器处理任何请求之前,获取所述第二服务器中的第二更新记录。
13.根据权利要求11所述的装置,其特征在于,所述第一更新记录中包括数据文件对应的第一更新信息,所述第二更新记录中包括最新数据文件对应的第二更新信息,所述确定模块包括:
第一更新确定子模块,用于在所述第一更新记录与所述第二更新记录不一致时,确定为需要更新所述第一服务器中的数据文件;
第二更新确定子模块,用于在所述第一更新记录与所述第二更新记录一致时,采用所述第一更新信息和所述第二更新信息确定是否需要更新所述第一服务器中的数据文件。
14.根据权利要求11或13所述的装置,其特征在于,所述第一更新信息与所述第二更新信息互相对应,所述更新模块包括:
更新信息确定子模块,用于从所述第一更新记录和所述第二更新记录中,查找出没有互相对应的第一更新信息和/或第二更新信息;
数据文件处理子模块,用于删除所述第一服务器中所述没有互相对应的第一更新信息对应的数据文件,和/或,在所述第一服务器中增加所述没有互相对应的第二更新信息对应的数据文件。
15.根据权利要求11或13所述的装置,其特征在于,所述第一更新信息包括数据文件对应的第一更新时间,所述第二更新信息包括数据文件对应的第二更新时间,所述第二更新确定子模块包括:
第一更新确定单元,用于在所述第一更新时间晚于所述第二更新时间时,确定为需要更新所述第一服务器中的数据文件;
第二更新确定单元,用于在所述第一更新时间早于或等于所述第二更新时间时,确定为无需更新所述第一服务器中的数据文件。
16.根据权利要求15所述的装置其特征在于,所述确定模块包括:
最新数据文件获取子模块,用于从所述第三服务器中获取所述第二更新时间对应的最新数据文件;
数据文件更新子模块,用于采用所述第二更新时间对应的最新数据文件,更新所述第一服务器中第一更新时间对应的数据文件。
17.根据权利要求11或13所述的装置,其特征在于,所述第二更新信息包括数据文件对应的操作类型和重命名目标文件名,所述装置还包括:
操作类型确定模块,用于确定所述第二更新记录中数据文件对应的操作类型是否为重命名操作;若是,则调用文件名修改模块;
文件名修改模块,用于在所述第一服务器将所述数据文件的文件名修改为重命名目标文件名。
18.根据权利要求11所述的装置,其特征在于,所述第二更新信息包括目录操作信息,所述装置还包括:
目录操作信息确定模块,用于确定所述第二更新记录中是否存在目录操作信息;若是,则目录更新模块;
目录更新模块,用于采用所述目录操作信息更新所述第一服务器上的目录。
19.根据权利要求11所述的装置,其特征在于,还包括:
更新记录更新模块,用于采用所述第二更新记录更新所述第一服务器上的第一更新记录。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510801737.8A CN106708911A (zh) | 2015-11-18 | 2015-11-18 | 一种云环境下数据文件同步的方法和装置 |
PCT/CN2016/105136 WO2017084520A1 (zh) | 2015-11-18 | 2016-11-09 | 一种云环境下数据文件同步的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510801737.8A CN106708911A (zh) | 2015-11-18 | 2015-11-18 | 一种云环境下数据文件同步的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106708911A true CN106708911A (zh) | 2017-05-24 |
Family
ID=58717374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510801737.8A Pending CN106708911A (zh) | 2015-11-18 | 2015-11-18 | 一种云环境下数据文件同步的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106708911A (zh) |
WO (1) | WO2017084520A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912979A (zh) * | 2019-11-16 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种解决多服务器资源同步冲突方法 |
CN111193787A (zh) * | 2019-12-24 | 2020-05-22 | 国铁吉讯科技有限公司 | 同步方法及装置 |
WO2021027115A1 (zh) * | 2019-08-13 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN114035985A (zh) * | 2021-11-11 | 2022-02-11 | 深圳乐信软件技术有限公司 | 一种微服务架构下数据传输方法、装置、服务器及介质 |
WO2023035743A1 (en) * | 2021-09-09 | 2023-03-16 | International Business Machines Corporation | Prevention of race conditions in a dual-server storage system for generation of encryption key |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489052A (zh) * | 2002-10-11 | 2004-04-14 | 鸿富锦精密工业(深圳)有限公司 | 多节点文件同步系统及方法 |
CN103152398A (zh) * | 2013-02-07 | 2013-06-12 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及系统 |
CN103198100A (zh) * | 2013-03-13 | 2013-07-10 | 中国科学院计算技术研究所 | 一种多设备间文件同步的重命名处理方法及系统 |
CN104158897A (zh) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | 一种分布式文件系统中文件布局的更新方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741830A (zh) * | 2009-11-09 | 2010-06-16 | 深圳市同洲电子股份有限公司 | 实现多客户端数据同步的方法、系统、客户端及服务器 |
CN101937467A (zh) * | 2010-09-17 | 2011-01-05 | 北京开心人信息技术有限公司 | 一种服务器的高效缓存方法与系统 |
CN102724319B (zh) * | 2012-06-20 | 2015-03-18 | 新浪网技术(中国)有限公司 | 一种数据同步方法、相关存储服务器及系统 |
CN104506643A (zh) * | 2014-12-30 | 2015-04-08 | 北京奇虎科技有限公司 | 分布式存储系统的服务器及服务器之间的数据同步方法 |
-
2015
- 2015-11-18 CN CN201510801737.8A patent/CN106708911A/zh active Pending
-
2016
- 2016-11-09 WO PCT/CN2016/105136 patent/WO2017084520A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489052A (zh) * | 2002-10-11 | 2004-04-14 | 鸿富锦精密工业(深圳)有限公司 | 多节点文件同步系统及方法 |
CN103152398A (zh) * | 2013-02-07 | 2013-06-12 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及系统 |
CN103198100A (zh) * | 2013-03-13 | 2013-07-10 | 中国科学院计算技术研究所 | 一种多设备间文件同步的重命名处理方法及系统 |
CN104158897A (zh) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | 一种分布式文件系统中文件布局的更新方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021027115A1 (zh) * | 2019-08-13 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN110912979A (zh) * | 2019-11-16 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种解决多服务器资源同步冲突方法 |
CN110912979B (zh) * | 2019-11-16 | 2022-06-10 | 杭州安恒信息技术股份有限公司 | 一种解决多服务器资源同步冲突方法 |
CN111193787A (zh) * | 2019-12-24 | 2020-05-22 | 国铁吉讯科技有限公司 | 同步方法及装置 |
WO2023035743A1 (en) * | 2021-09-09 | 2023-03-16 | International Business Machines Corporation | Prevention of race conditions in a dual-server storage system for generation of encryption key |
US12058244B2 (en) | 2021-09-09 | 2024-08-06 | International Business Machines Corporation | Prevention of race conditions in a dual-server storage system for generation of encryption key |
CN114035985A (zh) * | 2021-11-11 | 2022-02-11 | 深圳乐信软件技术有限公司 | 一种微服务架构下数据传输方法、装置、服务器及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017084520A1 (zh) | 2017-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669510B2 (en) | Parallel processing of disjoint change streams into a single stream | |
US11093466B2 (en) | Incremental out-of-place updates for index structures | |
US10902143B2 (en) | Unified file and object storage architecture for clustered file systems | |
JP5376696B2 (ja) | ステートレスなプロトコルを介したドキュメントの同期 | |
KR101974288B1 (ko) | 공유 폴더 및 파일의 동기화 | |
CN106484906B (zh) | 一种分布式对象存储系统闪回方法及装置 | |
CN103023982B (zh) | 一种云存储客户端的低延迟元数据访问方法 | |
CN106708911A (zh) | 一种云环境下数据文件同步的方法和装置 | |
CN105183839A (zh) | 一种基于Hadoop的小文件分级索引的存储优化方法 | |
CN103595797B (zh) | 一种分布式存储系统中的缓存方法 | |
US20180232403A1 (en) | Exposing databases via application program interfaces | |
CN103793493A (zh) | 一种处理车载终端海量数据的方法和系统 | |
WO2014008856A1 (en) | Method and apparatus for file storage | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
CN106648442A (zh) | 一种元数据节点的内存镜像方法、装置 | |
CN109767274B (zh) | 一种对海量发票数据进行关联存储的方法及系统 | |
CN104052824A (zh) | 分布式缓存方法及系统 | |
CN111177159A (zh) | 一种数据处理的系统、方法和数据更新设备 | |
CN102281312A (zh) | 一种数据加载方法、系统和数据处理方法、系统 | |
CN105404653B (zh) | 一种全分布式文件索引及协作编辑机制的实现方法 | |
US11210212B2 (en) | Conflict resolution and garbage collection in distributed databases | |
CN105631010A (zh) | 一种基于hdfs小文件存储的优化方法 | |
CN113095778A (zh) | 通过多个邮箱在通信应用中进行海量数据管理的架构 | |
Aishwarya et al. | Efficient prefetching technique for storage of heterogeneous small files in Hadoop Distributed File System Federation | |
CN108256019A (zh) | 数据库主键生成方法、装置、设备及其存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170524 |
|
RJ01 | Rejection of invention patent application after publication |