CN117149097A - 一种分布式存储系统数据访问控制方法及装置 - Google Patents
一种分布式存储系统数据访问控制方法及装置 Download PDFInfo
- Publication number
- CN117149097A CN117149097A CN202311426714.4A CN202311426714A CN117149097A CN 117149097 A CN117149097 A CN 117149097A CN 202311426714 A CN202311426714 A CN 202311426714A CN 117149097 A CN117149097 A CN 117149097A
- Authority
- CN
- China
- Prior art keywords
- data
- data object
- access
- copies
- copy
- 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 104
- 230000015654 memory Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种分布式存储系统数据访问控制方法及装置,能够优化分布式存储系统整体系统性能。所述方法包括:获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据;根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本;确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据;根据所述访问结果数据对所述目标数据对象进行更新。
Description
技术领域
本说明书涉及分布式存储技术领域,具体涉及一种分布式存储系统数据访问控制方法及装置。
背景技术
在分布式系统中,经常有操作涉及多个IO节点上的数据,要求它们要么全部修改完成,要么全部都没有修改,不允许有中间状态。这就是通常说的事务的一致性。当前实现一致性的主流方式是分布式锁,在多个客户端对针对同一数据对象进行操作时,会存在锁冲突的情况。在后客户端需要等待在先客户端释放分布式锁后,才能成功拿锁,执行相应的数据IO操作。
随着存储技术不断发展,存储介质的时延从毫秒级(如机械硬盘HDD)发展到微秒级(如存储级内存SCM),分布式锁机制会对分布式系统整体时延性能造成瓶颈。当前最快的网络时延是0.6微秒,一个请求一个应答一共是1.2微秒,申请和释放两个请求就需要2.4微秒,这仅仅是网络开销,还不包括其它处理的开销。这个开销在HDD的时代是可以忽略的,但在SCM时代,分布式锁所涉及的申请释放时间开销所占比例过大的问题就突显出来,为分布式系统整体性能优化造成负面影响。
发明内容
有鉴于此,本说明书实施例提供了一种分布式存储系统数据访问控制方法及装置,能够优化分布式存储系统整体系统性能。
在第一方面,本说明书实施例提供了一种分布式存储系统数据访问控制方法,包括:
获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据;
根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本;
确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据;
根据所述访问结果数据对所述目标数据对象进行更新。
本说明书实施例还提供了一种分布式存储系统数据访问控制装置,所述装置,包括:
访问记录模块,用于获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据;
副本生成模块,用于根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本;
副本合并模块,用于确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据;
以及数据更新模块,用于根据所述访问结果数据对所述目标数据对象进行更新。
本说明书实施例还提供了一种分布式存储系统数据访问控制电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述分布式存储系统数据访问控制方法。
本说明书实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的分布式存储系统数据访问控制方法。
从上面可以看出,本说明书实施例所提供的一种分布式存储系统数据访问控制方法、装置、电子设备及存储介质,具有如下有益技术效果:
接收针对目标数据对象的数据访问请求,针对所述数据访问请求生成访问记录数据,并根据所述访问请求数据,为所述目标数据对象生成多个数据对象副本,之后根据实际操作结果状态信息对多个数据对象副本进行合并从而确定出准确的访问结果数据对所述数据对象进行更新,这样的方式无须采用分布式锁机制,也能够根据实际操作情况准确确定出数据操作结果,保证分布式存储系统数据一致性的同时,还能够有效避免分布式锁机制对分布式存储数据访问性能优化造成的影响,能够进一步优化系统性能。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了分布式存储系统中分布式锁机制的工作原理示意图;
图2示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法示意图;
图3示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中针对所述数据对象生成所述数据对象副本的方法示意图;
图4示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法的分布式存储系统结构示意图;
图5示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中对数据对象分布进行去重的方法示意图;
图6示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中对数据对象副本进行合并的方法示意图;
图7-a示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中 T1数据访问请求失败、T2数据访问请求成功的数据对象副本的合并过程示意图;
图7-b示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制中 T1数据访问请求成功、T2数据访问请求失败的数据对象副本的合并结果示意图;
图8-a示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制中 T1数据访问请求成功、T2数据访问请求失败的数据对象副本的合并过程示意图;
图8-b示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制中 T1数据访问请求成功、T2数据访问请求失败的数据对象副本的合并结果示意图;
图9示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中对访问记录数据进行分批处理的方法示意图;
图10示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中对数据对象副本进行分批处理的方法示意图;
图11示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置结构示意图;
图12示出了本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在分布式存储系统中,经常有操作涉及多个IO节点上的数据,要求它们要么全部修改完成,要么全部都没有修改,不允许有中间状态。这就是通常说的事务的一致性。当前实现一致性的主流方式是分布式锁,在多个客户端对针对同一数据对象进行操作时,会存在锁冲突的情况。
如图1所示,如果客户端A和客户端B对同一个对象进行修改,客户端A先通过元数据服务器获取分布式锁,然后才能该对象进行IO操作。如果这时,客户端B也要操作该对象,它也会向元数据服务器发出相同的分布式锁请求,如果锁冲突则必须等待,直到客户端A释放了该分布式锁,客户端B才能够从元数据服务器中重新拿锁成功,之后才能进行相应的IO操作。分布式锁机制的存在,要求在后客户端需要等待在先客户端释放分布式锁后,才能成功拿锁,执行相应的数据IO操作。
随着存储技术不断发展,存储介质的时延从毫秒级(如机械硬盘HDD)发展到微秒级(如存储级内存SCM),分布式锁机制会对分布式系统整体时延性能造成瓶颈。当前最快的网络时延是0.6微秒,一个请求一个应答一共是1.2微秒,申请和释放两个请求就需要2.4微秒,这仅仅是网络开销,还不包括其它处理的开销。这个时间开销在HDD的时代是可以忽略的,但在SCM时代,分布式锁所涉及的申请、释放时间开销所占比例过大的问题就突显出来,为分布式系统整体性能优化造成负面影响。
针对上述问题,本说明书实施例的目的在于提出一种分布式数据访问方法,针对不同客户端的数据操作请求,对应生成多个数据对象副本的形式,通过进一步判断合并确定最终数据操作结果,采用这样的方式取代一些相关技术中的分布式锁机制,保证数据一致性的同时,避免分布式锁机制对分布式存储数据访问性能优化造成的影响,能够进一步优化系统性能。
基于上述目的,在一方面本说明书实施例提供了一种分布式存储系统数据访问控制方法。
如图2所示,本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法,所述分布式存储系统数据访问控制方法可以应用于分布式存储系统。所述方法,包括:
S1:获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据。
在分布式存储系统中,数据对象是指对象存储中的一个对象,一个数据结构或者是一片连续的存储空间,可以在一台物理机器之上,不同物理机器之上,也可能是跨地域的。分布式存储系统中,一个客户端可以对不同数据对象进行访问,多个客户端可以对同一数据对象进行访问。在分布式存储系统的实际应用场景中,多个所述客户端可能同时针对多个所述数据对象执行访问操作。其中,若访问操作为读操作,针对所述数据访问请求,可以从对应的所述数据对象中获取内容数据。
在分布式存储系统中,可以获取针对目标数据对象的一个或多个所述数据访问请求。若针对所述目标数据对象存在多个所述数据访问请求,这多个所述数据访问请求可能来自同一客户端,也可能来自多个不同的客户端。
在获取到所述数据访问请求后,可以从所述数据访问请求中提取确定针对所述目标数据对象的、需要具体执行的访问操作信息。可以根据所述访问操作信息生成与所述目标数据对象相对应的访问记录数据。
所生成的所述访问记录数据可以存储在预写式日志(write ahead log,WAL)中,所述预写式日志可以存储设置在毫秒级(storage-class memory,SCM)存储介质中。将所述访问记录数据存储设置在SCM存储介质中,能够实现数据记录传输的低延时快速响应。
对于所述目标数据对象相对应的每个所述数据访问请求,都可以对应生成一项所述访问记录数据。在实际应用场景下,分布式存储系统中多个数据对象可能同时收到多个数据访问请求。针对多个所述数据对象,基于所述数据访问请求的数据访问控制操作可以采用同步并行处理方式执行,能够提高分布式存储系统整体数据访问效率。对于特定的某个所述目标数据对象而言,基于相应的所述数据访问请求的数据访问操作则采用异步处理方式执行,确保数据操作结果准确性。
S2:根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本。
对于所述目标数据对象相应的至少一个所述数据访问请求,相应的可以生成至少一项所述访问记录数据。针对至少一项所述访问记录数据,可以为所述目标数据对象生成多个所述数据对象副本。
所述数据对象副本用于表示针对所述目标数据对象的访问操作可能的访问操作结果。所述目标数据对象以及相应的所述数据对象副本可以设置在所述分布式系统的存储内存中。
在根据所述目标数据对象相对应的至少一项所述访问记录数据为所述数据对象生成数据对象副本时,可以按照至少一项所述访问记录数据对应的至少一个所述数据访问请求的请求时间先后顺序,依次根据至少一项所述访问记录数据生成数据对象副本。
当所述数据对象相对应的只有一项所述访问记录数据时,可以直接根据该项访问记录数据中的所述访问操作信息针对所述数据对象生成数据对象副本。
当所述数据对象相对应有多项(两项或两项以上)所述访问记录数据时,确定多项所述访问记录数据对应的多个所述数据访问请求的请求时间先后顺序。之后根据多个所述数据访问请求的请求时间先后顺序依次根据相应所述访问记录数据中的所述访问操作信息针对所述数据对象生成数据对象副本。
具体的,基于请求时间先后顺序,排名第一的所述数据访问请求,确定其对应的所述访问记录数据,首先根据该项访问记录数据针对所述数据对象生成相应的数据对象副本,之后为排名第二的所述数据访问请求所对应的访问记录数据生成数据对象副本,并按顺序依次对后续数据访问请求对应的访问记录数据生成数据对象副本,直至与所述数据对象相对应的所有所述访问记录数据均生成相应的数据对象副本。
如图3所示,在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中,依次针对所述目标数据对象生成多个所述数据对象副本,包括:
S201:确定当前访问记录数据的前一项访问记录数据对应的至少一个所述数据对象副本。
S202:分别针对前一项访问记录数据对应数据访问操作的两种不同结果状态,根据当前访问记录数据中的所述访问操作信息生成对应的数据对象副本。其中,所述结果状态包括数据访问操作成功与数据访问操作失败。
若当前访问记录数据器对应的所述数据访问请求时间顺序排名第一,则可以针对所述数据对象中的初始数据内容,结合当前访问记录数据中的所述访问操作信息生成所述数据对象副本。
如图4所示,在分布式存储系统中,以客户端(T1、T2)针对分设在三台存储设备(machine1、machine2、machine3,又可以记为m1、m2、m3)中的五个数据对象(m1:o1、m1:o2、m2:o1、m2:o2、m3:o1)发出数据访问请求为例,对生成数据副本对象的方法进行说明。
两个客户端T1、T2针对五个数据对象(m1:o1、m1:o2、m2:o1、m2:o2、m3:o1发出多个数据写操作请求,多个数据访问请求相应的访问记录数据可以分别表示为:
m1:o1:v1;m1:o2:v1;m2:o1:v1;m3:o1:v1;m1:o2:v2;m2:o2:v1……
其中,m1:o1:v1表示针对存储设备m1上的数据对象o1执行版本内容为v1的写修改操作。
而对于存储设备m1上的数据对象o2,首先由T1对其执行版本内容为v1的写修改操作,之后由T2对其执行版本内容为v2的写修改操作。对应的访问记录数据为m1:o2:v1与m1:o2:v2。
在图4中,采用实线框表示数据对象,虚线框表示数据对象副本。
对于访问记录数据m1:o1:v1,针对存储设备m1的数据对象Object1_v0,生成相应的数据对象副本Object1_v1。
对于访问记录数据m1:o2:v1与m1:o2:v2,针对存储设备m2的数据对象Object2_v0,首先对应访问记录数据m1:o2:v1生成对应的数据对象副本Object2_v1,之后对应方位记录数据m1:o2:v2生成两个数据对象副本。两个数据对象副本分别为:
当T1的数据访问操作成功时Object2_v1+ Object2_v2;
当T1的数据访问操作失败时Object2_v2。
两次操作针对存储设备m2的数据对象Object2_v0所生成的两个数据对象副本之间采用链表(图4中用虚线表示)连接。数据对象Object2_v0与相应的多个数据对象副本之间采用双向链表(图4中用实线表示)连接。
在一些可选实施例中,还在所述分布式存储系统的所述目标数据对象相应的内存中设置本地锁,以维护所述数据对象与相对应的多个所述数据对象副本之间的所述双向链表。
按照这样的方式,针对所述目标数据对象的至少一个所述数据访问请求,对应可以在所述目标数据对象所处的内存中生成多个关联的数据对象副本。
在实际应用场景中,针对所述目标数据对象的不同数据访问请求可能对数据对象执行相同的访问操作,其对应生成的数据对象副本可能内容重复。对此,如图5所示,在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中,在基于所述结果状态信息对所述数据对象相应的多个所述数据对象副本进行合并前,还包括:
S301:对相邻两所述数据访问请求相应的所述数据对象副本内容进行对比,以确定相邻两所述数据访问请求是否针对所述数据对象执行相同访问操作。
其中,相邻两所述数据访问请求是指这两个所述数据访问请求在访问时间先后顺序上相邻。一些可选实施方式中,对相邻两所述数据访问请求相应的所述数据对象副本内容进行对比,可以采用以下方法:针对相邻量所述数据访问请求相应的所述数据对象副本计算哈希值,以确定相邻量所述数据访问请求相应的所述数据对象副本的哈希值是否一致。若二者哈希值一致,确定相邻量所述数据访问请求相应的所述数据对象副本内容相同,相邻两所述数据访问请求针对所述数据对象执行相同访问操作。
S302:响应于确定相邻两所述数据访问请求针对所述数据对象执行相同访问操作,将相邻两所述数据访问请求相应的所述数据对象副本进行合并去重。
在相邻两所述数据访问请求针对所述数据对象执行相同访问操作的情况下,其对应生成的所述数据对象副本内容也是重复的,可以执行去重处理,从而可以减少方案数据处理工作量。
如图4所示,对于存储设备m2的数据对象Object2_v0而言,不同客户端的数据访问请求对应生成的数据对象副本Object2_v1+ Object2_v2和Object2_v2内容可能是重复的。比如T1和T2对Object2修改是相同的一段内容。这时可以利用哈希算法SHA-2对两个副本算出哈希值,如果哈希值一样在比较其内容,如果还一样则只创建一个数据对象副本,访问记录数据m1:o2:v1与访问记录数据m1:o2:v2都指向该副本。
S3:确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据。
在针对所述数据对象确定出对个所述数据对象副本后,可以结合相应的多个所述数据访问请求的访问操作结果对多个所述数据对象副本进行合并处理,从确定出针对所述数据对象的访问结果。所述结果状态信息用于表征所述数据访问请求针对所述数据对象的访问操作结果,具体包括数据访问操作成功与数据访问操作失败两种情况。
如图6所示,在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中,基于所述结果状态信息对所述数据对象相应的多个所述数据对象副本进行合并,包括:
S401:根据所述目标数据对象相对应的至少一个所述数据访问请求的所述结果状态信息,依次确定至少一个所述数据访问请求相对应的所述数据对象副本是否有效。
所述结果状态信息包括数据访问操作成功与数据访问操作失败。在一些可选实施例中,根据所述目标数据对象相对应的至少一个所述数据访问请求的所述结果状态信息,依次确定至少一个所述数据访问请求相对应的所述数据对象副本是否有效,可以采用以下方法:
响应于当前数据访问请求的所述结果状态信息为数据访问操作成功,将相应的所述数据对象副本标记为有效数据对象副本。
响应于当前数据访问请求的所述结果状态信息为数据访问操作失败,将相应的所述数据对象副本以及相关联的其他所述数据对象副本标记为无效数据对象副本。
在生成数据副本对象的过程中,会针对前一项访问记录数据对应数据访问操作的两种不同结果状态生成对应的数据对象副本,因此所生成的多个数据副本对象能够涵盖多个数据访问请求的所有可能的操作结果。
在需要确定针对所述目标数据对象的具体访问结果时,则根据实际数据访问操作结果从所有可能结果中选取出与实际访问操作相匹配的操作结果,从而确定准确的结果数据。
S402:从多个所述数据对象副本中选取有效数据对象副本进行合并,将合并结果确定为访问结果数据更新到所述目标数据对象。
从针对所述目标数据对象的第一个所述数据访问请求相应的所述数据对象副本开始,针对每个数据访问请求从相应的数据对象副本中选取有效的数据对象副本逐一合并,最后的合并结果作为针对所述数据对象的访问结果。
如图7-a所示,在分布式存储系统中,以客户端(T1、T2)针对分设在三台存储设备(machine1、machine2、machine3,又可以记为m1、m2、m3)中的五个数据对象(m1:o1、m1:o2、m2:o1、m2:o2、m3:o1)发出数据访问请求。以来自客户端T1的数据访问请求失败,而来自客户端T2的数据访问请求成功为例,对数据对象副本的合并过程进行说明。
T1的数据访问请求在先,首先确定T1对应数据访问请求的结果状态信息,在本例中来自T1的数据访问请求失败,可能是因为客户端T1没有权限或者其它先决条件不满足。则将T1的数据访问请求所对应的数据对象副本设置为无效数据对象副本(图7-a中采用符号“×”标记)。T2的数据访问请求在后,其对应的结果状态信息为数据访问请求成功,对应的数据对象副本为有效数据对象副本(图7-a中未采取特殊标记)。
对于存储设备m2的数据对象Object2_v0而言,其对应的数据对象副本包括与T1所发出的数据访问请求相对应的Object2_v1,以及与T2所出的数据访问请求相对应的Object2_v1+ Object2_v2和Object2_v2。来自客户端T1的数据访问请求失败,可以将数据对象副本Object2_v1以及相关联的数据对象副本Object2_v1+ Object2_v2标记为无效数据对象副本,而来自客户端T2的数据访问请求成功,可以将数据对象副本Object2_v2标记为有效数据对象副本。
在对存储设备m2的数据对象Object2_v0的多个所述数据对象副本进行合并,选取有效数据对象副本Object2_v2与所述数据对象Object2_v0进行合并,合并结果为Object2_v2。
其他多个数据对象相应的数据对象副本合并采用相同的方式,最终合并结果如图7-b所示。
如图8-a所示,在分布式存储系统中,以客户端(T1、T2)针对分设在三台存储设备(machine1、machine2、machine3,又可以记为m1、m2、m3)中的五个数据对象(m1:o1、m1:o2、m2:o1、m2:o2、m3:o1)发出数据访问请求。以来自客户端T1的数据访问请求成功,而来自客户端T2的数据访问请求失败为例,对数据对象副本的合并过程进行说明。
T1的数据访问请求在先,首先确定T1对应数据访问请求的结果状态信息,在本例中来自T1的数据访问请求成功,则将T1的数据访问请求所对应的数据对象副本设置为有效数据对象副本(图8-a中未采取特殊标记)。T2的数据访问请求在后,其对应的结果状态信息为数据访问请求失败,对应的数据对象副本为无效数据对象副本(图8-a中采用符号“×”标记)。
对于存储设备m2的数据对象Object2_v0而言,其对应的数据对象副本包括与T1所发出的数据访问请求相对应的Object2_v1,以及与T2所出的数据访问请求相对应的Object2_v1+ Object2_v2和Object2_v2。来自客户端T1的数据访问请求成功,可以将数据对象副本Object2_v1标记为有效数据对象副本。而来自客户端T2的数据访问请求失败,可以将数据对象副本Object2_v1+ Object2_v2和Object2_v2标记为无效数据对象副本。
在对存储设备m2的数据对象Object2_v0的多个所述数据对象副本进行合并,选取有效数据对象副本Object2_v1与所述数据对象Object2_v0进行合并,合并结果为Object2_v1。
其他多个数据对象相应的数据对象副本合并采用相同的方式,最终合并结果如图8-b所示。
在分布式存储系统中,以客户端(T1、T2)针对分设在三台存储设备(machine1、machine2、machine3,又可以记为m1、m2、m3)中的五个数据对象(m1:o1、m1:o2、m2:o1、m2:o2、m3:o1)发出数据访问请求。若来自客户端T1、T2的数据访问请求都失败,则删除所有的数据对象副本,所述数据对象的数据内容保持不标。若来自客户端T1、T2的数据访问请求都成功,每个所述访问记录数据对应的所述数据对象副本中选取与成功结果对应的数据对象副本进行合并。
以上所述的针对四种情况所做的操作过程是对两个操作T1、T2的合并处理,更多的数据访问请求也按照同样的方法原理执行访问控制操作。
需要说明的 ,针对每一个数据对象的数据访问控制操作都可以采用上述的异步处理方式执行,首先根据数据对象相应的至少一项所述访问记录数据生成相应的数据对象副本,之后对所述数据对象副本进行合并处理,以确定访问操作结果。
S4:根据所述访问结果数据对所述目标数据对象进行更新。
根据所述访问结果数据对所述目标数据对象进行更新,更新后还可以将所述目标数据对象的数据内容反馈给对应的所述客户端。
针对每个数据访问请求从相应的数据对象副本中选取有效的数据对象副本逐一合并,最后的合并结果作为针对所述目标数据对象的访问结果,根据所确定的所述访问数据结果对所述数据目标对象进行更新。
所述分布式存储系统数据访问控制方法,接收针对目标数据对象的一个或多个数据访问请求,生成与所述数据访问请求对应的访问记录数据。对于目标数据对象所对应的至少一项访问请求数据,生成多个数据对象副本,之后根据实际操作结果状态信息对多个数据对象副本进行合并从而确定出准确的访问结果数据对所述目标数据对象进行更新。这样的方式无须采用分布式锁机制,也能够根据实际操作情况准确确定出数据操作结果,保证分布式存储系统数据一致性的同时,还能够有效避免分布式锁机制对分布式存储数据访问性能优化造成的影响,能够进一步优化系统性能。
考虑到实际方案实际实施过程中,针对同一数据对象可能存在数据访问请求过多的情况,或者针对数据对象所生成的数据对象副本过多的情况,都会对系统整体存储运行效率造成影响,对此,可以设置相应阈值对数据访问请求数量、相应的访问记录数据数量以及同一数据对象的数据对象副本数量进行限制,采取分批处理的方式,提高系统整体存储运行效率。
本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法,针对所述数据访问请求生成相对应的访问记录数据后,还包括:
确定所述目标数据对象相对应的所述访问记录数据项数是否超出预设访问阈值,其中所述预设访问阈值可以根据实际情况需求与分布式系统整体处理性能进行灵活设置。
响应于所述目标数据对象相对应的所述访问记录数据项数超出所述预设访问阈值,设置代理节点对多项所述访问记录数据进行分批次处理。
如图9所示,在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中,设置代理节点对多项所述访问记录数据进行分批次处理,包括:
S501:将多项所述访问记录数据按照对应所述数据访问请求的时间先后顺序进行分组,每组中的所述访问记录数据项数低于所述预设访问阈值。
所述预设访问阈值例如可以设置为10。当针对所述数据对象的所述访问记录数据项数超出10,则可以按照对应的所述数据访问请求的时间先后顺序对多个所述访问记录数据进行排序,依次序对所有的所述访问记录数据进行分组,使每组中的项数不超过10。可以采取多种分组方式,例如安顺每组选取9项所述访问记录数据,最后剩余的不足9项的多项访问记录数据作为最后一组。还可以采取均分的方式,根据所述访问记录数据总项数,选取一个适当的约数,按该约束进行均分,并确保均分后每组项数不超过10项。
S502:依次根据每组中的多项所述访问记录数据,为所述目标数据对象生成多个所述数据对象副本。
S503:对多个所述数据对象副本进行合并确定合并结果,并将所述目标数据对象的数据内容更新为所述合并结果。
可以首先对第一组中的多项所述数据访问记录数据进行处理,为所述数据对象生成多个数据对象副本,并进一步的将与第一组多项访问记录数据相对应的数据对象副本进行合并,得到一个中间合并结果,将所述数据对象的内容更新为该中间合并结果。之后,基于更新后的所述数据对象,对第二组的多项数据访问记录进行处理,生成相应的数据对象副本进行合并,更新,直至处理完成所有的访问记录数据。
如图10所示,在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制方法中,在根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本时,还包括:
S601:对所生成的所述数据对象副本的数量进行监控,以确定所述数据对象副本数量是否达到预设副本阈值。
所述预设副本阈值可以根据实际情况需求与分布式系统整体处理性能进行灵活设置。
S602:响应于所述数据对象副本数量达到所述预设副本阈值,中止生成新的数据对象副本。
S603:针对已生成的多个所述数据对象副本相应的所述结果状态信息进行合并确定合并结果,并将所述数据对象的数据内容更新为所述合并结果。
S604:将数据对象副本数清零并重新开始统计监控,直至针对所有所述访问记录数据都生成相应的所述数据对象副本。
所述预设副本阈值例如可以设置为16。对应于所述数据对象,当所生成的数据对象副本数达到16时,暂停生成新的数据对象副本。先针对已经生成的这16个数据对象副本进行合并操作,并将合并后的更新到所述数据对象,已生成的16个数据对象副本删除。之后,统计数据清零并继续生成新的数据对象副本,若数据对象副本数再次达到阈值,则再次暂停生成新的数据对象副本,针对新生成的16个数据对象副本再吃执行合并更新操作。直至所有访问记录数据多对应生成了数据对象副本,对最后生成的多个所述数据对象副本进行合并,并将合并结果更新到所述数据对象中。
这样的方式,能够保证针对数据访问请求进行数据访问操作处理时,所生成的数据对象副本数量不超出预设阈值,从而降低数据访问操作处理量,提升整体数据处理流程的方案执行效率。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一目的,与上述任意实施例方法相对应的,本说明书实施例还提供了一种分布式存储系统数据访问控制装置。
参考图11所示,所述分布式存储系统数据访问控制装置,包括:
访问记录模块,用于获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据;
副本生成模块,用于根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本;
副本合并模块,用于确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据;
以及数据更新模块,用于根据所述访问结果数据对所述目标数据对象进行更新。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述访问记录模块,还用于从所述数据访问请求中提取确定针对所述目标数据对象的访问操作信息;根据所述访问操作信息生成与所述目标数据对象相对应的所述访问记录数据。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述访问记录模块在针对所述数据访问请求生成相对应的访问记录数据后,还用于将所述访问记录数据存储在预写式日志中,所述预写式日志设置在毫秒级存储介质。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本生成模块,还用于按照至少一项所述访问记录数据对应的至少一个所述数据访问请求的请求时间顺序,依次针对所述目标数据对象生成多个所述数据对象副本。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本生成模块,还用于确定当前访问记录数据的前一项访问记录数据对应的所述数据对象副本;分别针对前一项访问记录数据对应数据访问操作的两种不同结果状态,根据当前访问记录数据中的所述访问操作信息生成对应的数据对象副本;其中,所述结果状态包括数据访问操作成功与数据访问操作失败。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,在当前访问记录数据其对应的数据访问请求为针对所述数据对象的第一个所述数据访问请求的情况下,所述副本生成模块,还用于针对所述数据对象中的初始数据内容,根据当前访问记录数据中的所述访问操作信息,生成与所述初始数据内容相对应的数据对象副本。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述目标数据对象与相对应的多个所述数据对象副本之间采用双向链表连接,与同一项所述访问记录数据相对应的多个所述数据对象副本之间采用链表连接;在所述目标数据对象相应的内存中设置有本地锁,所述本地锁用于维护所述目标数据对象与相对应的多个所述数据对象副本之间的所述双向链表。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本合并模块,还用于根据所述目标数据对象相对应的至少一个所述数据访问请求的所述结果状态信息,依次确定至少一个所述数据访问请求相对应的所述数据对象副本是否有效;从多个所述数据对象副本中选取有效数据对象副本进行合并,将合并结果确定为访问结果数据更新到所述目标数据对象。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述结果状态信息包括数据访问操作成功与数据访问操作失败。所述副本合并模块,还用于在当前数据访问请求的所述结果状态信息为数据访问操作成功的情况下,将相应的所述数据对象副本标记为有效数据对象副本;在当前数据访问请求的所述结果状态信息为数据访问操作失败的情况下,将相应的所述数据对象副本以及相关联的其他所述数据对象副本标记为无效数据对象副本。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本合并模块,还用于针对所述目标数据对象相对应的至少一个所述数据访问请求,依次将至少一个所述数据访问请求相对应的所述有效数据对象副本进行合并。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本合并模块在基于所述结果状态信息对多个所述数据对象副本进行合并前,还用于对相邻两所述数据访问请求相应的所述数据对象副本内容进行对比,以确定相邻两所述数据访问请求是否针对所述数据对象执行相同访问操作;在确定相邻两所述数据访问请求针对所述数据对象执行相同访问操作的情况下,将相邻两所述数据访问请求相应的所述数据对象副本进行合并去重。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本合并模块,还用于针对相邻量所述数据访问请求相应的所述数据对象副本计算哈希值,以确定相邻量所述数据访问请求相应的所述数据对象副本的哈希值是否一致;在哈希值一致的情况下,确定相邻量所述数据访问请求相应的所述数据对象副本内容相同,相邻两所述数据访问请求针对所述数据对象执行相同访问操作。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述访问记录模块在针对所述数据访问请求生成相对应的访问记录数据后,还用于确定所述目标数据对象相对应的所述访问记录数据项数是否超出预设访问阈值;在所述目标数据对象相对应的所述访问记录数据项数超出所述预设访问阈值的情况下,设置代理节点对多项所述访问记录数据进行分批次处理。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述访问记录模块,还用于将多项所述访问记录数据按照对应所述数据访问请求的时间先后顺序进行分组,每组中的所述访问记录数据项数低于所述预设访问阈值;依次根据每组中的多项所述访问记录数据,为所述目标数据对象生成多个所述数据对象副本;对多个所述数据对象副本进行合并确定合并结果,并将所述目标数据对象的数据内容更新为所述合并结果。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述副本生成模块在根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本时,还用于对所生成的所述数据对象副本的数量进行监控,以确定所述数据对象副本数量是否达到预设副本阈值;在所述数据对象副本数量达到所述预设副本阈值的情况下,中止生成新的数据对象副本;针对已生成的多个所述数据对象副本相应的所述结果状态信息进行合并确定合并结果,并将所述数据对象的数据内容更新为所述合并结果;将数据对象副本数清零并重新开始统计监控,直至针对所有所述访问记录数据都生成相应的所述数据对象副本。
本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置,针对多个所述目标数据对象的多个所述数据访问操作采用同步并行处理方式执行;针对同一所述目标数据对象的数据访问操作采用异步处理方式执行。
在本说明书一个或多个可选实施例所提供的一种分布式存储系统数据访问控制装置中,所述目标数据对象及相应的所述数据对象副本设置在所述分布式系统的存储内存中。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图12示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图, 该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线 1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的分布式存储系统数据访问控制方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的分布式存储系统数据访问控制方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (20)
1.一种分布式存储系统数据访问控制方法,其特征在于,包括:
获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据;
根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本;
确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据;
根据所述访问结果数据对所述目标数据对象进行更新。
2.根据权利要求1所述的方法,其特征在于,针对所述数据访问请求生成相对应的访问记录数据,包括:
从所述数据访问请求中提取确定针对所述目标数据对象的访问操作信息;
根据所述访问操作信息生成与所述目标数据对象相对应的所述访问记录数据。
3.根据权利要求1所述的方法,其特征在于,在针对所述数据访问请求生成相对应的访问记录数据后,还包括将所述访问记录数据存储在预写式日志中,所述预写式日志设置在毫秒级存储介质。
4.根据权利要求1所述的方法,其特征在于,根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本,包括:
按照至少一项所述访问记录数据对应的至少一个所述数据访问请求的请求时间顺序,依次针对所述目标数据对象生成多个所述数据对象副本。
5.根据权利要求4所述的方法,其特征在于,依次针对所述目标数据对象生成多个所述数据对象副本,包括:
确定当前访问记录数据的前一项访问记录数据对应的所述数据对象副本;
分别针对前一项访问记录数据对应数据访问操作的两种不同结果状态,根据当前访问记录数据中的所述访问操作信息生成对应的数据对象副本;
其中,所述结果状态包括数据访问操作成功与数据访问操作失败。
6.根据权利要求5所述的方法,其特征在于,响应于当前访问记录数据其对应的数据访问请求为针对所述数据对象的第一个所述数据访问请求,根据当前访问记录数据针对所述数据对象生成所述数据对象副本,包括:
针对所述数据对象中的初始数据内容,根据当前访问记录数据中的所述访问操作信息,生成与所述初始数据内容相对应的数据对象副本。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述目标数据对象与相对应的多个所述数据对象副本之间采用双向链表连接,与同一项所述访问记录数据相对应的多个所述数据对象副本之间采用链表连接;
所述方法还包括在所述目标数据对象相应的内存中设置本地锁,以维护所述目标数据对象与相对应的多个所述数据对象副本之间的所述双向链表。
8.根据权利要求4所述的方法,其特征在于,基于所述结果状态信息对多个所述数据对象副本进行合并,包括:
根据所述目标数据对象相对应的至少一个所述数据访问请求的所述结果状态信息,依次确定至少一个所述数据访问请求相对应的所述数据对象副本是否有效;
从多个所述数据对象副本中选取有效数据对象副本进行合并,将合并结果确定为访问结果数据更新到所述目标数据对象。
9.根据权利要求8所述的方法,其特征在于,所述结果状态信息包括数据访问操作成功与数据访问操作失败;
根据所述目标数据对象相对应的至少一个所述数据访问请求的所述结果状态信息,依次确定至少一个所述数据访问请求相对应的所述数据对象副本是否有效,包括:
响应于当前数据访问请求的所述结果状态信息为数据访问操作成功,将相应的所述数据对象副本标记为有效数据对象副本;
响应于当前数据访问请求的所述结果状态信息为数据访问操作失败,将相应的所述数据对象副本以及相关联的其他所述数据对象副本标记为无效数据对象副本。
10.根据权利要求9所述的方法,其特征在于,从多个所述数据对象副本中选取有效数据对象副本进行合并,包括:
针对所述目标数据对象相对应的至少一个所述数据访问请求,依次将至少一个所述数据访问请求相对应的所述有效数据对象副本进行合并。
11.根据权利要求1所述的方法,其特征在于,在基于所述结果状态信息对多个所述数据对象副本进行合并前,还包括:
对相邻两所述数据访问请求相应的所述数据对象副本内容进行对比,以确定相邻两所述数据访问请求是否针对所述数据对象执行相同访问操作;
响应于确定相邻两所述数据访问请求针对所述数据对象执行相同访问操作,将相邻两所述数据访问请求相应的所述数据对象副本进行合并去重。
12.根据权利要求11所述的方法,其特征在于,对相邻两所述数据访问请求相应的所述数据对象副本内容进行对比,包括:
针对相邻量所述数据访问请求相应的所述数据对象副本计算哈希值,以确定相邻量所述数据访问请求相应的所述数据对象副本的哈希值是否一致;
响应于哈希值一致,确定相邻量所述数据访问请求相应的所述数据对象副本内容相同,相邻两所述数据访问请求针对所述数据对象执行相同访问操作。
13.根据权利要求8所述的方法,其特征在于,在针对所述数据访问请求生成相对应的访问记录数据后,还包括:
确定所述目标数据对象相对应的所述访问记录数据项数是否超出预设访问阈值;
响应于所述目标数据对象相对应的所述访问记录数据项数超出所述预设访问阈值,设置代理节点对多项所述访问记录数据进行分批次处理。
14.根据权利要求13所述的方法,其特征在于,设置代理节点对多项所述访问记录数据进行分批次处理,包括:
将多项所述访问记录数据按照对应所述数据访问请求的时间先后顺序进行分组,每组中的所述访问记录数据项数低于所述预设访问阈值;
依次根据每组中的多项所述访问记录数据,为所述目标数据对象生成多个所述数据对象副本;
对多个所述数据对象副本进行合并确定合并结果,并将所述目标数据对象的数据内容更新为所述合并结果。
15.根据权利要求1所述的方法,其特征在于,在根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本时,还包括:
对所生成的所述数据对象副本的数量进行监控,以确定所述数据对象副本数量是否达到预设副本阈值;
响应于所述数据对象副本数量达到所述预设副本阈值,中止生成新的数据对象副本;
针对已生成的多个所述数据对象副本相应的所述结果状态信息进行合并确定合并结果,并将所述数据对象的数据内容更新为所述合并结果;
将数据对象副本数清零并重新开始统计监控,直至针对所有所述访问记录数据都生成相应的所述数据对象副本。
16.根据权利要求1所述的方法,其特征在于,在所述方法中针对多个所述目标数据对象的多个所述数据访问操作采用同步并行处理方式执行;
针对同一所述目标数据对象的数据访问操作采用异步处理方式执行。
17.根据权利要求1所述的方法,其特征在于,所述方法应用于分布式存储系统,所述目标数据对象及相应的所述数据对象副本设置在所述分布式系统的存储内存中。
18.一种分布式存储系统数据访问控制装置,其特征在于,包括:
访问记录模块,用于获取针对目标数据对象的至少一个数据访问请求,针对所述数据访问请求生成相对应的访问记录数据;
副本生成模块,用于根据所述访问记录数据为所述目标数据对象生成相应的数据对象副本;
副本合并模块,用于确定至少一个所述数据访问请求的结果状态信息,并基于所述结果状态信息对多个所述数据对象副本进行合并,以确定所述目标数据对象相应的访问结果数据;
以及数据更新模块,用于根据所述访问结果数据对所述目标数据对象进行更新。
19.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至17任意一项所述的方法。
20.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至17任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311426714.4A CN117149097B (zh) | 2023-10-31 | 2023-10-31 | 一种分布式存储系统数据访问控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311426714.4A CN117149097B (zh) | 2023-10-31 | 2023-10-31 | 一种分布式存储系统数据访问控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117149097A true CN117149097A (zh) | 2023-12-01 |
CN117149097B CN117149097B (zh) | 2024-02-06 |
Family
ID=88910531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311426714.4A Active CN117149097B (zh) | 2023-10-31 | 2023-10-31 | 一种分布式存储系统数据访问控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149097B (zh) |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137157A (zh) * | 2011-02-28 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 一种云存储系统及其实现方法 |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护系统和方法 |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN105324770A (zh) * | 2013-04-30 | 2016-02-10 | 亚马逊科技公司 | 有效读出副本 |
CN105760556A (zh) * | 2016-04-19 | 2016-07-13 | 江苏物联网研究发展中心 | 低延时高吞吐量的多副本文件读写优化方法 |
US9507843B1 (en) * | 2013-09-20 | 2016-11-29 | Amazon Technologies, Inc. | Efficient replication of distributed storage changes for read-only nodes of a distributed database |
CN107807793A (zh) * | 2017-10-27 | 2018-03-16 | 清华大学 | 分布式计算机存储系统中数据副本异构存储与访问方法 |
CN108108476A (zh) * | 2018-01-03 | 2018-06-01 | 中科边缘智慧信息科技(苏州)有限公司 | 高可靠分布式日志系统的工作方法 |
CN108319522A (zh) * | 2018-02-02 | 2018-07-24 | 绿欣科技发展(北京)有限公司 | 一种加强分布式存储系统可靠性的方法 |
CN110096386A (zh) * | 2018-01-31 | 2019-08-06 | Emc知识产权控股有限公司 | 用于在大数据环境中高效数据复制的方法和系统 |
CN110362426A (zh) * | 2019-06-21 | 2019-10-22 | 华中科技大学 | 一种面向突发性负载的选择性副本实现方法及系统 |
CN111064808A (zh) * | 2019-12-30 | 2020-04-24 | 北京天融信网络安全技术有限公司 | 一种基于分布式存储系统的负载均衡方法及装置 |
CN111309799A (zh) * | 2018-12-11 | 2020-06-19 | 中兴通讯股份有限公司 | 数据合并的实现方法、装置、系统及存储介质 |
CN112346907A (zh) * | 2019-08-09 | 2021-02-09 | 上海爱数信息技术股份有限公司 | 一种基于异构对象存储的数据备份恢复方法及系统 |
CN114244859A (zh) * | 2022-02-23 | 2022-03-25 | 阿里云计算有限公司 | 数据处理方法及装置和电子设备 |
CN114637475A (zh) * | 2022-04-13 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统控制方法、装置及可读存储介质 |
CN116401225A (zh) * | 2023-03-28 | 2023-07-07 | 北京航空航天大学 | 一种面向卫星云的分布式文件系统 |
CN116594551A (zh) * | 2022-02-07 | 2023-08-15 | 成都华为技术有限公司 | 一种数据存储方法及装置 |
CN116974983A (zh) * | 2022-04-24 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
-
2023
- 2023-10-31 CN CN202311426714.4A patent/CN117149097B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137157A (zh) * | 2011-02-28 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 一种云存储系统及其实现方法 |
CN105324770A (zh) * | 2013-04-30 | 2016-02-10 | 亚马逊科技公司 | 有效读出副本 |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护系统和方法 |
US9507843B1 (en) * | 2013-09-20 | 2016-11-29 | Amazon Technologies, Inc. | Efficient replication of distributed storage changes for read-only nodes of a distributed database |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN105760556A (zh) * | 2016-04-19 | 2016-07-13 | 江苏物联网研究发展中心 | 低延时高吞吐量的多副本文件读写优化方法 |
CN107807793A (zh) * | 2017-10-27 | 2018-03-16 | 清华大学 | 分布式计算机存储系统中数据副本异构存储与访问方法 |
CN108108476A (zh) * | 2018-01-03 | 2018-06-01 | 中科边缘智慧信息科技(苏州)有限公司 | 高可靠分布式日志系统的工作方法 |
CN110096386A (zh) * | 2018-01-31 | 2019-08-06 | Emc知识产权控股有限公司 | 用于在大数据环境中高效数据复制的方法和系统 |
CN108319522A (zh) * | 2018-02-02 | 2018-07-24 | 绿欣科技发展(北京)有限公司 | 一种加强分布式存储系统可靠性的方法 |
CN111309799A (zh) * | 2018-12-11 | 2020-06-19 | 中兴通讯股份有限公司 | 数据合并的实现方法、装置、系统及存储介质 |
CN110362426A (zh) * | 2019-06-21 | 2019-10-22 | 华中科技大学 | 一种面向突发性负载的选择性副本实现方法及系统 |
CN112346907A (zh) * | 2019-08-09 | 2021-02-09 | 上海爱数信息技术股份有限公司 | 一种基于异构对象存储的数据备份恢复方法及系统 |
CN111064808A (zh) * | 2019-12-30 | 2020-04-24 | 北京天融信网络安全技术有限公司 | 一种基于分布式存储系统的负载均衡方法及装置 |
CN116594551A (zh) * | 2022-02-07 | 2023-08-15 | 成都华为技术有限公司 | 一种数据存储方法及装置 |
CN114244859A (zh) * | 2022-02-23 | 2022-03-25 | 阿里云计算有限公司 | 数据处理方法及装置和电子设备 |
CN114637475A (zh) * | 2022-04-13 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统控制方法、装置及可读存储介质 |
CN116974983A (zh) * | 2022-04-24 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN116401225A (zh) * | 2023-03-28 | 2023-07-07 | 北京航空航天大学 | 一种面向卫星云的分布式文件系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117149097B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49042E1 (en) | Data replication between databases with heterogenious data platforms | |
US11221995B2 (en) | Data replication from a cloud-based storage resource | |
US9471590B2 (en) | Method and apparatus for replicating virtual machine images using deduplication metadata | |
JP6050343B2 (ja) | 最近使用した文書のリストの自動同期 | |
US11347855B2 (en) | Data lineage management | |
EP2988220B1 (en) | Computer system, computer-system management method, and program | |
EP3210134B1 (en) | Composite partition functions | |
JP2018106386A (ja) | プログラム、情報処理装置、および情報処理方法 | |
US10572350B1 (en) | System and method for improved application consistency in a distributed environment | |
US9258382B2 (en) | User-specific roaming settings | |
WO2019047976A1 (zh) | 网络文件管理方法、终端及计算机可读存储介质 | |
US20170193070A1 (en) | System and method for a distributed replication lock for active-active geo-redundant systems | |
US20190228134A1 (en) | Information processing apparatus, information processing system, and non-transitory computer-readable storage medium for storing program | |
EP3869377B1 (en) | Method and apparatus for data processing based on smart contract, device and storage medium | |
US9807156B2 (en) | Cloud computing infrastructure | |
US10394773B2 (en) | Determining when a change set was delivered to a workspace or stream and by whom | |
US20230061613A1 (en) | Parallel rollout verification processing for deploying updated software | |
US10127270B1 (en) | Transaction processing using a key-value store | |
CN117149097B (zh) | 一种分布式存储系统数据访问控制方法及装置 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
US10015248B1 (en) | Syncronizing changes to stored data among multiple client devices | |
US20220138177A1 (en) | Fault tolerance for transaction mirroring | |
CN110347333A (zh) | 提高克隆镜像性能的方法、装置、计算机设备及存储介质 | |
JP5832592B1 (ja) | データ管理装置 | |
US10268698B2 (en) | Synchronizing different representations of content |
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 |