CN109241015A - 用于在分布式存储***中写入数据的方法 - Google Patents
用于在分布式存储***中写入数据的方法 Download PDFInfo
- Publication number
- CN109241015A CN109241015A CN201810817581.6A CN201810817581A CN109241015A CN 109241015 A CN109241015 A CN 109241015A CN 201810817581 A CN201810817581 A CN 201810817581A CN 109241015 A CN109241015 A CN 109241015A
- Authority
- CN
- China
- Prior art keywords
- data
- written
- host process
- file
- journal file
- 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
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures 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/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种用于在分布式存储***中写入数据的方法。分布式存储***包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组,非暂态存储介质上保存有主进程的日志文件和数据文件。该方法包括:主进程接收数据写入请求;取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。本发明的方法使得能够降低写入次数,消除写放大问题。
Description
【技术领域】
本发明涉及分布式存储***。特别地,本发明涉及用于在分布式存储***中写入数据的方法。
【背景技术】
在分布式存储***中,通常将数据保存多个副本,用以提高存储***的可靠性。多个副本的数据的同步通常是通过日志文件实现的。例如,raft协议是一种复制组通讯协议,它基于日志形式在复制组内的副本当中通讯以实现数据的一致性。
然而,在现有技术中,属于不同的复制组的副本保存在同一个磁盘上,而日志文件和数据文件的写入都需要操作磁盘。这产生了写放大和随机写入的问题。具体地,数据同时写入日志文件和数据文件,也就是说用户数据被多次写入日志文件和数据文件,这引起了写放大的问题。另外,数据文件和日志文件在磁盘上的位置是不连续的,这也产生了随机写入的问题。进一步地,在存储***中常常存在多个复制组的多个用于存取的进程同时执行数据文件和日志文件的写入操作,这导致了更加严重的随机写入的问题。
以raft协议为例,在分布式存储***中一般包括至少一个复制组,每个复制组包括主进程(leader)和至少一个从进程(follower)。图1给出了基于raft的分布式存储***的数据流。在该存储***的一个复制组中的数据写入流程一般包括以下步骤:
-主进程(leader)接收用户发送的写入请求,
-主进程将数据写入自己的日志文件;
-主进程将日志发送给从进程;
-主进程发送提交(commit)消息,主进程和从进程同时根据日志文件来对数据文件进行操作以写入要写入的数据。
在以上分布式存储***中的数据读取流程包括主进程从客户端接收读取请求,以及主进程从数据文件中读取数据并返回给客户端。
根据raft协议的写入流程实现了主进程和从进程之间的数据同步。然而,对于每个进程(主进程或从进程)而言,数据都要被写入磁盘两次,即写入日志文件一次,写入数据文件一次。写入的次数随着从进程的数量增大而增大。另外,数据写入日志文件和数据文件会产生随机写入问题。
因此,需要提供一种可以减少磁盘写入次数并降低写入的随机性的分布式存储方法。
【发明内容】
有鉴于此,本发明提供了一种用于在分布式存储***中写入数据的方法。分布式存储***包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组。非暂态存储介质上保存有主进程的日志文件和数据文件。该方法包括:
主进程接收数据写入请求;
取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。
根据本发明一优选实施方式,在以上写入数据的方法中,所述取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述主进程将要写入的数据写入主进程的日志文件;
否则,所述主进程将要写入的数据提交至主进程的数据文件。
根据本发明一优选实施方式,在以上写入数据的方法中,所述主进程将要写入的数据写入主进程的日志文件包括:
所述主进程将要写入的数据写入主进程的日志文件,并在执行提交操作时,在内存中建立指向写入主进程的日志文件的数据的索引。
根据本发明一优选实施方式,在以上写入数据的方法中,所述主进程将要写入的数据提交至主进程的数据文件包括:
所述主进程将要写入的数据写入内存,并在主进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入主进程的数据文件。
根据本发明一优选实施方式,在以上写入数据的方法中,所述复制组还包括从进程,非暂态存储介质上还保存有从进程的日志文件和数据文件,所述方法还包括:
取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件。
根据本发明一优选实施方式,在以上写入数据的方法中,所述取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述从进程将要写入的数据写入从进程的日志文件;
否则,所述从进程将要写入的数据提交至从进程的数据文件。
根据本发明一优选实施方式,在以上写入数据的方法中,所述从进程将要写入的数据写入从进程的日志文件包括:
所述从进程将要写入的数据写入从进程的日志文件,并在执行提交操作时,在内存中建立指向写入从进程的日志文件的数据的索引。
根据本发明一优选实施方式,在以上写入数据的方法中,所述从进程将要写入的数据提交至从进程的数据文件包括:
所述从进程将要写入的数据写入内存,并在从进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入从进程的数据文件。
根据本发明一优选实施方式,在以上写入数据的方法中,所述分布式存储***是基于raft协议的分布式存储***。
根据本发明一优选实施方式,在以上写入数据的方法中,所述预定值为512KB。
本发明还提供了一种用于在分布式存储***中读取数据的方法。分布式存储***包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组,非暂态存储介质上保存有主进程的日志文件和数据文件。取决于要写入的数据的大小,所述主进程预先将数据写入主进程的日志文件,或者提交至主进程的数据文件。该方法包括:
主进程接收数据读取请求;
从主进程的日志文件或数据文件中读取数据。
根据本发明一优选实施方式,在以上读取数据的方法中,所述从主进程的日志文件或数据文件中读取数据包括:
若内存中存在指向要读取的数据的索引,则根据索引在主进程的日志文件中读取数据;
若内存中不存在指向要读取的数据的索引,则在主进程的数据文件中读取数据。
本发明还提供了一种分布式存储***。该分布式存储***包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组,非暂态存储介质上保存有主进程的日志文件和数据文件,其中主进程被配置为用于执行以下步骤:
主进程接收数据写入请求;
取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。
根据本发明一优选实施方式,在以上分布式存储***中,所述取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述主进程将要写入的数据写入主进程的日志文件;
否则,所述主进程将要写入的数据提交至主进程的数据文件。
根据本发明一优选实施方式,在以上分布式存储***中,所述主进程将要写入的数据写入主进程的日志文件包括:
所述主进程将要写入的数据写入主进程的日志文件,并在执行提交操作时,在内存中建立指向写入主进程的日志文件的数据的索引。
根据本发明一优选实施方式,在以上分布式存储***中,所述主进程将要写入的数据提交至主进程的数据文件包括:
所述主进程将要写入的数据写入内存,并在主进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入主进程的数据文件。
根据本发明一优选实施方式,在以上分布式存储***中,所述复制组还包括从进程,非暂态存储介质上还保存有从进程的日志文件和数据文件,所述从进程被配置为用于执行以下步骤:
取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件。
根据本发明一优选实施方式,在以上分布式存储***中,所述取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述从进程将要写入的数据写入从进程的日志文件;
否则,所述从进程将要写入的数据提交至从进程的数据文件。
根据本发明一优选实施方式,在以上分布式存储***中,所述从进程将要写入的数据写入从进程的日志文件包括:
所述从进程将要写入的数据写入从进程的日志文件,并在执行提交操作时,在内存中建立指向写入从进程的日志文件的数据的索引。
根据本发明一优选实施方式,在以上分布式存储***中,所述从进程将要写入的数据提交至从进程的数据文件包括:
所述从进程将要写入的数据写入内存,并在从进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入主进程的数据文件。
根据本发明一优选实施方式,所述分布式存储***是基于raft协议的分布式存储***。
根据本发明一优选实施方式,在以上分布式存储***中,所述预定值为512KB。
根据本发明一优选实施方式,在以上分布式存储***中,所述主进程被进一步配置为用于执行以下步骤:
主进程接收数据读取请求;
从主进程的日志文件或数据文件中读取数据。
根据本发明一优选实施方式,在以上分布式存储***中,所述从主进程的日志文件或数据文件中读取数据包括:
若内存中存在指向要读取的数据的索引,则根据索引在主进程的日志文件中读取数据;
若内存中不存在指向要读取的数据的索引,则在主进程的数据文件中读取数据。
本发明还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述方法。
本发明还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行上述方法。
由以上方案可以看出,根据本发明的方法对不同大小的数据采用不同的写入策略,使得可以例如将小块数据顺序地写入日志文件,从而降低了写入的随机性。因此本发明的方法可以充分发掘磁盘顺序写入性能。另外,数据并没有被写入磁盘的日志文件和数据文件两者中,而是被写入日志文件和数据文件两者之一中。因此,本发明的方法使得可以减少非暂态存储介质中的数据写入次数。从而提高了非暂态存储介质的写入效率并降低了写入的随机性。
【附图说明】
图1为现有技术中的基于raft协议的分布式存储***的数据流的示意图;
图2为本发明实施例提供的用于在分布式存储***中写入数据的方法的流程图;
图3为本发明另一实施例提供的用于在分布式存储***中写入数据的方法的流程图;
图4为本发明的实施例提供的分布式存储***中数据存储结构的示意图;
图5为本发明的实施例提供的种用于在分布式存储***中读取数据的方法;
图6为本发明实施例提供的分布式存储***的结构示意图;
图7示出了适于用来实现本发明是实施方式的示例性计算机***/服务器的框图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为现有技术中的基于raft协议的分布式存储***的数据流。每当要写入新数据时,图1中的主进程和从进程都要在各自的日志文件和数据文件中写入数据。本发明的核心思想在于,取决于要写入的数据的大小,将数据写入非暂态存储介质中的日志文件或者将数据写入非暂态存储介质中的数据文件,从而避免了对数据的二次写入(即,既写入日志文件又写入数据文件),消除了写放大问题。本发明特别适用于使用磁盘作为非暂态存储介质的分布式存储***。因为磁盘的写入效率较低,消除些放大问题使得可以更有效地使用磁盘并且降低写入的随机性。
图2为本发明实施例提供的用于在分布式存储***中写入数据的方法的流程图。该分布式存储***包括内存和非暂态存储介质。分布式存储***中创建有至少包括主进程的复制组。主进程可以用于在分布式存储***中存取数据。非暂态存储介质上保存有主进程的日志文件和数据文件。分布式存储***可以包括多个复制组,用于不同的应用。在本实施例中仅对一个复制组中的主进程进行描述。如图2所示,根据本实施例的方法可以包括以下步骤:
在步骤20中,主进程接收数据写入请求。数据写入请求可以来自于客户端设备,也可以来自于分布式存储***的管理程序。数据写入请求中可以包括要写入的数据,也可以包括要写入的数据的位置。
在步骤21中,取决于要写入的数据的大小,主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。也就是说,将数据写入日志文件中还是数据文件中取决于数据的大小。
从图2中的流程可以看出,数据并没有被写入非暂态存储介质的日志文件和数据文件两者,而是被写入日志文件和数据文件两者之一。数据最终被写入日志文件还是数据文件,取决于数据的大小。因此,实施例的方法可以有效地减少数据写入的次数,从而提高了数据写入效率。
根据一优选实施例,图2中的步骤21还可以进一步包括以下步骤:
若要写入的数据的大小小于预定值,则主进程将要写入的数据写入主进程的日志文件;否则,主进程将要写入的数据提交至主进程的数据文件。
数据大或小是相对的。在一些情境下被认为是小的数据在另一情境下可能被认为是大的数据。根据本实施例,可以根据不同应用场景来调节预定值的大小,以实现最优的存储策略。根据一优选实施例,预定值为512KB。事实上,对于一般的用户数据而言,将预订值设定为512KB可以实现较为理想的数据存储策略。根据本实施例,写入日志文件中的数据均为小块数据,从而可以充分发掘磁盘顺序写入性能。
根据一优选实施例,步骤21中的主进程将要写入的数据写入主进程的日志文件可以包括:主进程将要写入的数据写入主进程的日志文件,并在执行提交操作时,在内存中建立指向写入主进程的日志文件的数据的索引。
因此,当文件最终被写入主进程的日志文件时,内存中写有指向该数据的索引以确保可以通过索引从日志文件中找到该数据。
根据一优选实施例,步骤21中的主进程将要写入的数据提交至主进程的数据文件可以包括:主进程将要写入的数据写入内存,并在主进程的日志文件中建立指向写入内存的数据的索引;在执行提交操作时,将写入内存的数据写入主进程的数据文件。要写入的数据由此从内存写入数据文件。同时,主进程的日志文件中写有指向该数据的索引日志以确保可以通过索引日志找到该数据。
以上实施例实现了日志文件和数据文件中数据的共享,从而避免了重复写入数据。因此,根据本实施例的方法可以有效地减少数据写入磁盘的次数,同时确保可以在读取数据时找到写入的数据。
图3为本发明另一实施例提供的用于在分布式存储***中写入数据的方法的流程图。分布式存储***包括内存和非暂态存储介质。分布式存储***中创建有复制组。复制组包括主进程和从进程。主进程可以存取数据而从进程可以备份数据。非暂态存储介质上保存有主进程的日志文件和数据文件,以及从进程的日志文件和数据文件。分布式存储***可以包括多个复制组,用于不同的应用。在本实施例中仅对一个复制组中的用于存取数据的主进程进行描述。一般而言,一个复制组仅包括一个主进程。为了对主进程保存的数据进行备份以增强存储***的可靠性,复制组还可以包括一个或多个从进程。如图3所示,根据本实施例的方法可以包括以下步骤:
在步骤30中,主进程接收数据写入请求。该步骤与图2中的步骤20相同。
在步骤31中,取决于要写入的数据的大小,主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。该步骤与图2中的步骤21相同。
在步骤32中,取决于要写入的数据的大小,从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件。取决于要写入数据的大小,从进程将要写入的数据写入从进程的日志文件,或者将要写入的数据写入内存并且在从进程的日志文件中写入指向要写入的数据的索引日志。该步骤与步骤31的区别在于,步骤32是由从进程执行的。
由从进程执行与主进程相同的步骤,旨在对数据进行备份以增强存储***的可靠性,同时可以像主进程那样减少写入次数。
根据一优选实施例,图3中的步骤32还可以进一步包括以下步骤:
若要写入的数据的大小小于预定值,则从进程将要写入的数据写入从进程的日志文件;否则,从进程将要写入的数据提交至从进程的数据文件。因此,可以根据不同应用场景来调节预定值的大小,以实现最优的存储策略。根据一优选实施例,预定值为512KB。
根据一优选实施例,步骤32中的从进程将要写入的数据写入从进程的日志文件可以包括:从进程将要写入的数据写入从进程的日志文件,并在执行提交操作时,在内存中建立指向写入从进程的日志文件的数据的索引。提交操作可以是通过主进程向从进程发送提交消息而触发的。通过发送提交消息,主进程可以向从进程确认写入数据,从而确保从进程与主进程存储的数据的一致性。
根据一优选实施例,步骤32中的从进程将要写入的数据提交至从进程的数据文件可以包括:从进程将要写入的数据写入内存,并在从进程的日志文件中建立指向写入内存的数据的索引;在执行提交操作时,将写入内存的数据写入从进程的数据文件。由此,数据被最终写入主进程的数据文件。
图4为本发明的实施例提供的分布式存储***中数据存储结构的示意图。在该实施例中使用磁盘作为非暂态存储介质。然而应当理解,其它类型的暂态存储介质也可以在该***中使用。在图4中的存储***的内存中包括分别指向日志文件中的两块数据A和B的两个索引idx1和idx2。日志文件中包括分别指向数据文件中的两块数据C和D的索引日志idxlog1和idxlog2。数据A和数据B可以对应用于其大小小于预定值的数据。数据C和数据D可以对应于其大小大于或等于预定值的数据。从图3中可以清楚地看出,数据文件中不包括日志文件中的数据A和B。同样,日志文件中也不包括数据文件中的数据C和D。因此,根据本发明的写入方法避免了对数据的二次写入,磁盘空间的使用由此也得到了优化。
图5为本发明的实施例提供的用于在分布式存储***中读取数据的方法。该分布式存储***是实现图2或图3中示出的方法的分布式存储***。该分布式存储***包括内存和非暂态存储介质。分布式存储***中创建有至少包括主进程的复制组。非暂态存储介质上保存有主进程的日志文件和数据文件。若复制组还还包括一个或多个从进程,则非暂态存储介质上还分别保存有各个从进程的日志文件和数据文件。然而,对于读取操作而言,只有主进程能够对外提供读取服务。从进程仅用于备份作用,不对外提供读取服务。按照图2示出方法,取决于数据的大小,取决于要写入的数据的大小,主进程预先将数据写入主进程的日志文件,或者提交至主进程的数据文件。根据本实施例的读取数据的方法包括以下步骤:
在步骤50中,主进程接收数据读取请求。数据读取请求可以来自客户端设备或者来自分布式存储***的管理程序。数据读取请求例如可以包括要读取数据的唯一标识。
在步骤51中,主进程从主进程的日志文件或数据文件中读取数据。
根据一优选实施例,步骤51可以包括:若内存中存在指向要读取的数据的索引,则根据索引在主进程的日志文件中读取数据;若内存中不存在指向要读取的数据的索引,则在主进程的数据文件中读取数据。可以通过要读取的数据的标识在数据文件中找到该数据。
若数据被写入日志文件,则在内存中应当存在指向要读取的数据的索引。***可以通过索引在日志文件中找到数据。若数据被写入数据文件,则在内存中不存在对该数据的索引。***可以直接通过数据的标识在数据文件中找到该数据。
根据以上各实施例的方法可以用于任何基于日志文件的分布式存储***。例如,分布式存储***是基于raft协议的分布式存储***,其中主进程是raft协议中定义的leader而从进程是raft协议中定义的follower。
以上是对本发明所提供的方法进行的描述。下面结合实施例对本发明提供的分布式存储***进行描述。
图6为本发明实施例提供的分布式存储***的结构示意图。该分布式存储***用于执行上述方法流程。如图6所示,该分布式存储***6包括内存60和非暂态存储介质61。非暂态存储介质61典型地为磁盘。分布式存储***6是由至少一台主机组成的。典型地,分布式存储***是由多台主机构成的集群组成。分布式存储***6中创建有复制组62。在图6中为了说明的目的仅示出了一个复制组。实际上,分布式存储***6可以包括多个复制组。复制组62包括用于存取数据的主进程621。复制组62还可以包括用于备份数据的从进程622。每个复制组一般包括一个主进程以及一个或多个从进程以便增强存储***的可靠性。在图6中,为了说明的目的,仅示出了复制组中的一个主进程621和一个从进程622。非暂态存储介质61上保存有主进程621的日志文件和数据文件,以及从进程622的日志文件和数据文件。主进程621被配置为用于执行以上描述的由主进程执行的步骤,以便将要写入的数据写入主进程的日志文件或数据文件。同样,从进程622也被配置为用于执行以上描述的由从进程执行的步骤,以便将要写入的数据写入(备份)从进程的日志文件或数据文件。
图7示出了适于用来实现本发明实施方式的示例性计算机***/服务器的框图。图7显示的计算机***/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机***/服务器012以通用计算设备的形式表现。计算机***/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,***存储器028,连接不同***组件(包括***存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器012典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器028可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机***/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***034可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机***/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机***/服务器012交互的设备通信,和/或与使得该计算机***/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机***/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器020通过总线018与计算机***/服务器012的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元016通过运行存储在***存储器028中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的方法流程。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行本发明实施例所提供的方法流程。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (26)
1.一种用于在分布式存储***中写入数据的方法,分布式存储***包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组,非暂态存储介质上保存有主进程的日志文件和数据文件,其特征在于所述方法包括:
主进程接收数据写入请求;
取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。
2.根据权利要求1所述的方法,其特征在于,所述取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述主进程将要写入的数据写入主进程的日志文件;
否则,所述主进程将要写入的数据提交至主进程的数据文件。
3.根据权利要求1或2所述的方法,其特征在于,所述主进程将要写入的数据写入主进程的日志文件包括:
所述主进程将要写入的数据写入主进程的日志文件,并在执行提交操作时,在内存中建立指向写入主进程的日志文件的数据的索引。
4.根据权利要求1或2所述的方法,其特征在于,所述主进程将要写入的数据提交至主进程的数据文件包括:
所述主进程将要写入的数据写入内存,并在主进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入主进程的数据文件。
5.根据权利要求1所述的方法,其特征在于,所述复制组还包括从进程,非暂态存储介质上还保存有从进程的日志文件和数据文件,所述方法还包括:
取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件。
6.根据权利要求5所述的方法,其特征在于,所述取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述从进程将要写入的数据写入从进程的日志文件;
否则,所述从进程将要写入的数据提交至从进程的数据文件。
7.根据权利要求5或6所述的方法,其特征在于,所述从进程将要写入的数据写入从进程的日志文件包括:
所述从进程将要写入的数据写入从进程的日志文件,并在执行提交操作时,在内存中建立指向写入从进程的日志文件的数据的索引。
8.根据权利要求5或6所述的方法,其特征在于,所述从进程将要写入的数据提交至从进程的数据文件包括:
所述从进程将要写入的数据写入内存,并在从进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入从进程的数据文件。
9.根据权利要求5所述的方法,其特征在于所述分布式存储***是基于raft协议的分布式存储***。
10.根据权利要求2或6所述的方法,其特征在于所述预定值为512KB。
11.一种用于在分布式存储***中读取数据的方法,分布式存储***包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组,非暂态存储介质上保存有主进程的日志文件和数据文件,取决于要写入的数据的大小,所述主进程预先将数据写入主进程的日志文件,或者提交至主进程的数据文件,其特征在于,所述方法包括:
主进程接收数据读取请求;
从主进程的日志文件或数据文件中读取数据。
12.根据权利要求11所述的方法,其特征在于,所述从主进程的日志文件或数据文件中读取数据包括:
若内存中存在指向要读取的数据的索引,则根据索引在主进程的日志文件中读取数据;
若内存中不存在指向要读取的数据的索引,则在主进程的数据文件中读取数据。
13.一种分布式存储***,其包括内存和非暂态存储介质,分布式存储***中创建有至少包括主进程的复制组,非暂态存储介质上保存有主进程的日志文件和数据文件,其特征在于所述主进程被配置为用于执行以下步骤:
主进程接收数据写入请求;
取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件。
14.根据权利要求13所述的分布式存储***,其特征在于,所述取决于要写入的数据的大小,所述主进程将要写入的数据写入主进程的日志文件,或者提交至主进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述主进程将要写入的数据写入主进程的日志文件;
否则,所述主进程将要写入的数据提交至主进程的数据文件。
15.根据权利要求13或14所述的分布式存储***,其特征在于,所述主进程将要写入的数据写入主进程的日志文件包括:
所述主进程将要写入的数据写入主进程的日志文件,并在执行提交操作时,在内存中建立指向写入主进程的日志文件的数据的索引。
16.根据权利要求13或14所述的分布式存储***,其特征在于,所述主进程将要写入的数据提交至主进程的数据文件包括:
所述主进程将要写入的数据写入内存,并在主进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入主进程的数据文件。
17.根据权利要求13所述的分布式存储***,其特征在于,所述复制组还包括从进程,非暂态存储介质上还保存有从进程的日志文件和数据文件,所述从进程被配置为用于执行以下步骤:
取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件。
18.根据权利要求17所述的分布式存储***,其特征在于,所述取决于要写入的数据的大小,所述从进程将要写入的数据写入从进程的日志文件,或者提交至从进程的数据文件包括:
若所述要写入的数据的大小小于预定值,则所述从进程将要写入的数据写入从进程的日志文件;
否则,所述从进程将要写入的数据提交至从进程的数据文件。
19.根据权利要求17或18所述的分布式存储***,其特征在于,所述从进程将要写入的数据写入从进程的日志文件包括:
所述从进程将要写入的数据写入从进程的日志文件,并在执行提交操作时,在内存中建立指向写入从进程的日志文件的数据的索引。
20.根据权利要求17或18所述的分布式存储***,其特征在于,所述从进程将要写入的数据提交至从进程的数据文件包括:
所述从进程将要写入的数据写入内存,并在从进程的日志文件中建立指向写入内存的数据的索引;
在执行提交操作时,将写入内存的数据写入主进程的数据文件。
21.根据权利要求17所述的分布式存储***,其特征在于所述分布式存储***是基于raft协议的分布式存储***。
22.根据权利要求14或18所述的分布式存储***,其特征在于所述预定值为512KB。
23.根据权利要求13所述的分布式存储***,其特征在于,所述主进程被进一步配置为用于执行以下步骤:
主进程接收数据读取请求;
从主进程的日志文件或数据文件中读取数据。
24.根据权利要求23所述的分布式存储***,其特征在于,所述从主进程的日志文件或数据文件中读取数据包括:
若内存中存在指向要读取的数据的索引,则根据索引在主进程的日志文件中读取数据;
若内存中不存在指向要读取的数据的索引,则在主进程的数据文件中读取数据。
25.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至12中任一项所述的方法。
26.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-12中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810817581.6A CN109241015B (zh) | 2018-07-24 | 2018-07-24 | 用于在分布式存储***中写入数据的方法 |
US16/425,318 US20200034042A1 (en) | 2018-07-24 | 2019-05-29 | Method for writing data in a distributed storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810817581.6A CN109241015B (zh) | 2018-07-24 | 2018-07-24 | 用于在分布式存储***中写入数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241015A true CN109241015A (zh) | 2019-01-18 |
CN109241015B CN109241015B (zh) | 2021-07-16 |
Family
ID=65072244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810817581.6A Active CN109241015B (zh) | 2018-07-24 | 2018-07-24 | 用于在分布式存储***中写入数据的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200034042A1 (zh) |
CN (1) | CN109241015B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828722A (zh) * | 2019-01-29 | 2019-05-31 | 中国人民大学 | 异构分布式键值存储***Raft组数据自适应分布方法 |
CN113806316A (zh) * | 2021-09-15 | 2021-12-17 | 星环众志科技(北京)有限公司 | 一种文件同步方法、设备及存储介质 |
CN115098017A (zh) * | 2022-05-12 | 2022-09-23 | 北京卡普拉科技有限公司 | 数据的处理方法、装置、电子设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102145403B1 (ko) * | 2020-03-30 | 2020-08-18 | 주식회사 지에스아이티엠 | 익셉션 로그 빅데이터 분석에 의한 스마트 디바이스의 애플리케이션 모니터링 방법 |
US11526490B1 (en) | 2021-06-16 | 2022-12-13 | International Business Machines Corporation | Database log performance |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408091A (zh) * | 2014-11-11 | 2015-03-11 | 清华大学 | 分布式文件***的数据存储方法及*** |
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储*** |
US20170123714A1 (en) * | 2015-10-31 | 2017-05-04 | Netapp, Inc. | Sequential write based durable file system |
CN106708427A (zh) * | 2016-11-17 | 2017-05-24 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
CN107528710A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | raft分布式***领导节点的切换方法、设备及*** |
CN107787489A (zh) * | 2015-06-16 | 2018-03-09 | 微软技术许可有限责任公司 | 包括层级的文件存储*** |
CN107807797A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
US20180113788A1 (en) * | 2016-10-20 | 2018-04-26 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储***及数据存储方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158804B1 (en) * | 2011-12-23 | 2015-10-13 | Emc Corporation | Method and system for efficient file-based backups by reverse mapping changed sectors/blocks on an NTFS volume to files |
JP6445049B2 (ja) * | 2015-01-20 | 2018-12-26 | 株式会社日立製作所 | ログの管理方法及び計算機システム |
US10459891B2 (en) * | 2015-09-30 | 2019-10-29 | Western Digital Technologies, Inc. | Replicating data across data storage devices of a logical volume |
US10180812B2 (en) * | 2016-06-16 | 2019-01-15 | Sap Se | Consensus protocol enhancements for supporting flexible durability options |
-
2018
- 2018-07-24 CN CN201810817581.6A patent/CN109241015B/zh active Active
-
2019
- 2019-05-29 US US16/425,318 patent/US20200034042A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408091A (zh) * | 2014-11-11 | 2015-03-11 | 清华大学 | 分布式文件***的数据存储方法及*** |
CN107787489A (zh) * | 2015-06-16 | 2018-03-09 | 微软技术许可有限责任公司 | 包括层级的文件存储*** |
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储*** |
US20170123714A1 (en) * | 2015-10-31 | 2017-05-04 | Netapp, Inc. | Sequential write based durable file system |
CN107528710A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | raft分布式***领导节点的切换方法、设备及*** |
US20180113788A1 (en) * | 2016-10-20 | 2018-04-26 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
CN106708427A (zh) * | 2016-11-17 | 2017-05-24 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
CN107807797A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储***及数据存储方法 |
Non-Patent Citations (2)
Title |
---|
MASAHISA TAMURA ET AL.: "Distributed object storage toward storage and usage of packet data in a high-speed network", 《THE 16TH ASIA-PACIFIC NETWORK OPERATIONS AND MANAGEMENT SYMPOSIUM》 * |
罗四维: "云计算环境分布式存储关键技术的研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828722A (zh) * | 2019-01-29 | 2019-05-31 | 中国人民大学 | 异构分布式键值存储***Raft组数据自适应分布方法 |
CN109828722B (zh) * | 2019-01-29 | 2022-01-28 | 中国人民大学 | 异构分布式键值存储***Raft组数据自适应分布方法 |
CN113806316A (zh) * | 2021-09-15 | 2021-12-17 | 星环众志科技(北京)有限公司 | 一种文件同步方法、设备及存储介质 |
CN115098017A (zh) * | 2022-05-12 | 2022-09-23 | 北京卡普拉科技有限公司 | 数据的处理方法、装置、电子设备及存储介质 |
CN115098017B (zh) * | 2022-05-12 | 2023-04-11 | 北京卡普拉科技有限公司 | 数据的处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109241015B (zh) | 2021-07-16 |
US20200034042A1 (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241015A (zh) | 用于在分布式存储***中写入数据的方法 | |
US8751741B2 (en) | Methods and structure for implementing logical device consistency in a clustered storage system | |
CN108519967A (zh) | 图表可视化方法、装置、终端和存储介质 | |
US8892964B2 (en) | Methods and apparatus for managing asynchronous dependent I/O for a virtual fibre channel target | |
CN109597640B (zh) | 一种应用程序的账号管理方法、装置、设备和介质 | |
JP2019536123A (ja) | 外部処理を用いたアプリケーション内のセンシティブ・データの処理 | |
CN109547537A (zh) | 基于SAN存储共享卷实现openstack高可用的方法 | |
US20200012438A1 (en) | Method and apparatus for caching data | |
CN111818145B (zh) | 一种文件传输方法、装置、***、设备及存储介质 | |
CN109145164A (zh) | 数据处理方法、装置、设备和介质 | |
CN110232969A (zh) | 医学影像上传至云服务器的方法、装置、终端和存储介质 | |
CN109347899A (zh) | 在分布式存储***中写入日志数据的方法 | |
CN107817962B (zh) | 一种远程控制方法、装置、控制服务器及存储介质 | |
US11176087B2 (en) | Efficient handling of bi-directional data | |
CN109669790A (zh) | 基于云平台的数据共享方法、装置、共享平台及存储介质 | |
CN107003904A (zh) | 一种内存管理方法、设备和*** | |
CN108399128A (zh) | 一种用户数据的生成方法、装置、服务器及存储介质 | |
US10884888B2 (en) | Facilitating communication among storage controllers | |
CN104836833A (zh) | 用于提供数据服务的san装置上的存储代理方法 | |
US9223513B2 (en) | Accessing data in a dual volume data storage system using virtual identifiers | |
US7743180B2 (en) | Method, system, and program for managing path groups to an input/output (I/O) device | |
US9571576B2 (en) | Storage appliance, application server and method thereof | |
CN112162984B (zh) | 一种基于区块链的实名认证方法、***、设备和存储介质 | |
CN110769027A (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
CN111371529B (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 |