CN112214175A - 数据处理方法、装置、数据节点及存储介质 - Google Patents
数据处理方法、装置、数据节点及存储介质 Download PDFInfo
- Publication number
- CN112214175A CN112214175A CN202011135418.5A CN202011135418A CN112214175A CN 112214175 A CN112214175 A CN 112214175A CN 202011135418 A CN202011135418 A CN 202011135418A CN 112214175 A CN112214175 A CN 112214175A
- Authority
- CN
- China
- Prior art keywords
- data
- written
- stripe
- data block
- node
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 title claims description 21
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 47
- 238000011084 recovery Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000012634 fragment Substances 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式存储技术领域,提供了一种数据处理方法、装置、数据节点及存储介质,所述方法包括:接收客户端发送的写数据请求,其中,写数据请求用于从多个数据块中确定待写数据块以及待写数据在待写数据块中的偏移位置;依据待写数据块中的偏移位置,从待写数据块中的多个条带中确定待写条带;若待写条带的占用标志表征待写条带已写入数据,则从待写数据块的交换区中确定目标条带;将待写数据写入至目标条带,并设置目标条带的占用标志使其表征目标条带已写入数据。与现有技术相比,本发明避免了写数据时引发的读写惩罚,提高了数据写入效率。
Description
技术领域
本发明涉及分布式存储技术领域,具体而言,涉及一种数据处理方法、装置、数据节点及存储介质。
背景技术
在分布式存储***中,为了保证写数据的一致性,被写的数据块中的原有数据通常要拷贝到指定位置,然后再将当前数据写入至该数据块中,因此,一次写数据操作需要进行一次读原有数据的操作、一次写原有数据的操作和一次写当前数据的操作,也就是说,一次写数据操作会引发一次读操作和两次写操作这种严重的读写惩罚,最终导致数据写入效率低。
发明内容
本发明的目的在于提供了一种数据处理方法、装置、数据节点及存储介质,其通过为每一数据块设置一个由该数据块中的预设个数的条带组成的交换区,若待写条带中已写入了数据,则将待写数据写入至该数据块的交换区中的目标条带,由此避免了写数据时引发的读写惩罚,提高了数据写入效率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种数据处理方法,应用于分布式存储***中的数据节点,所述数据节点包括多个数据块,每一所述数据块包括多个条带,每一所述数据块中存储该数据块中每一条带的占用标志,每一所述数据块包括一个由该数据块中的预设个数的条带组成的交换区,所述数据节点与客户端通信连接,所述方法包括:接收所述客户端发送的写数据请求,其中,所述写数据请求用于从所述多个数据块中确定待写数据块以及待写数据在所述待写数据块中的偏移位置;依据所述待写数据块中的偏移位置,从所述待写数据块中的所述多个条带中确定待写条带;若所述待写条带的占用标志表征所述待写条带已写入数据,则从所述待写数据块的交换区中确定目标条带;将所述待写数据写入至所述目标条带,并设置所述目标条带的占用标志使其表征所述目标条带已写入数据。
第二方面,本发明提供一种数据处理装置,应用于分布式存储***中的数据节点,所述数据节点包括多个数据块,每一所述数据块包括多个条带,每一所述数据块中存储该数据块中每一条带的占用标志,每一所述数据块包括一个由该数据块中的预设个数的条带组成的交换区,所述数据节点与客户端通信连接,所述装置包括:接收模块,用于接收所述客户端发送的写数据请求,其中,所述写数据请求用于从所述多个数据块中确定待写数据块以及待写数据在所述待写数据块中的偏移位置;确定模块,用于:依据所述待写数据块中的偏移位置,从所述待写数据块中的所述多个条带中确定待写条带;若所述待写条带的占用标志表征所述待写条带已写入数据,则从所述待写数据块的交换区中确定目标条带;写入模块,用于将所述待写数据写入至所述目标条带,并设置所述目标条带的占用标志使其表征所述目标条带已写入数据。
第三方面,本发明提供一种数据节点,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述的数据处理方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的数据处理方法。
相对于现有技术,本发明通过为每一数据块设置一个由该数据块中的预设个数的条带组成的交换区,若待写条带中已写入了数据,则将待写数据写入至该数据块的交换区中的目标条带,由此避免了写数据时引发的读写惩罚,提高了数据写入效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景示意图。
图2示出了本发明实施例提供的数据节点的方框示意图。
图3示出了本发明实施例提供的一种数据处理方法的流程图。
图4示出了本发明实施例提供的另一种数据处理方法的流程图。
图5示出了本发明实施例提供的另一种数据处理方法的流程图。
图6示出了本发明实施例提供的另一种数据处理方法的流程图。
图7示出了本发明实施例提供的数据块写入数据的过程示例图。
图8示出了本发明实施例提供的另一种数据处理方法的流程图。
图9示出了本发明实施例提供的另一种数据处理方法的流程图。
图10示出了本发明实施例提供数据处理装置的方框示意图。
图标:10-数据节点;11-处理器;12-存储器;13-总线;14-通信接口;20-客户端;30-管理节点;100-数据处理装置;110-接收模块;120-确定模块;130-写入模块;140-读取模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1示出了本发明实施例提供的应用场景示意图,图1中,分布式存储***包括数据节点10、客户端20及管理节点30,客户端20与数据节点10及管理节点30均通信连接,数据节点10与管理节点30通信连接。
数据节点10用于存储用户数据,一个分布式存储***中,数据节点10可以有多个,根据采用的冗余策略的不同,用户数据分布存储于不同的多个数据节点10中,例如,冗余策略采用N+M的纠删码,其中,N代表对用户的原始数据进行分片后的个数,M代表用于校验的数据分片的个数,N个数据分片和M个校验分片经过纠删码的编码后,最终会得到N+M个分片,为了确保数据存储的可靠性,N+M个分片会分布存储于N+M个不同的数据节点10中,当N+M个分片中任意M个分片的数据被破坏后,可以根据其余未破坏分片的数据对被破坏分片的数据进行恢复。
每一数据节点10包括多个数据块(也称为block),数据块的大小影响用于管理数据块的元数据的数据量,数据块越小,用于管理数据块的元数据的数据量越大,通常情况下数据块的大小设定为64MB,每一数据块包括多个条带,数据块的写入是以条带为单位的,对于不同类型的数据,条带的大小可以设置为不同的值,例如,图片类型数据条带大小为4KB,视频类型数据条带大小为32KB。
客户端20用于接收用户需要存储的数据,并确定存储待存储数据的数据节点10,例如,若采用纠删码的冗余策略,客户端20需要对接收的数据按照预设的纠删码策略进行分片。
管理节点30存储用于管理数据节点10的元数据,或者分布式存储***的元数据,客户端20通过读取管理节点30中的元数据,进而确定数据需要存储的数据节点10。管理节点30还可以用于接收数据节点10反馈的数据处理异常,并基于该处理异常触发异常数据的恢复等。
数据节点10可以为存储阵列、存储服务器等。
客户端20可以是独立于数据节点10和管理节点30的主机,其上运行有实现客户端20对应功能的软件模块,也可以是运行于一个或者多个数据节点10上的独立的软件模块,该软件模块可以以软件开发工具包SDK(Software Development Kit,SDK)形式交付的。
管理节点30可以为一个主机或服务器等实体的计算机或者虚拟机。管理节点30可以是独立的硬件,也可以是运行在数据节点上的应用程序。
在图1的基础上,本发明实施例还提供了图1中数据节点10的方框示意图,请参照图2,图2示出了本发明实施例提供的数据节点10的方框示意图。数据节点10包括处理器11、存储器12、总线13、通信接口14。处理器11、存储器12通过总线13连接,处理器11通过不同的通信接口14与客户端20及管理节点30通信连接。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如上述的数据处理装置,该数据处理装置包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现上述实施例揭示的数据处理方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图2仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
通过至少一个通信接口14(可以是有线或者无线)实现数据节点10与客户端20和管理节点30之间的通信连接。
在图1和图2的基础上,本发明实施例提供一种数据处理方法,该数据处理方法可以应用于图1和图2中的数据节点10,请参照图3,图3示出了本发明实施例提供的一种数据处理方法的流程图,该方法包括以下步骤:
步骤S100,接收客户端发送的写数据请求,其中,写数据请求用于从多个数据块中确定待写数据块以及待写数据在待写数据块中的偏移位置。
在本实施例中,客户端20在写数据之前,首先会根据待写数据的长度确定需要申请的数据块的个数,然后向管理节点30申请用于存储待写数据的数据块,管理节点30向客户端20返回申请到的数据块的标识及对应的数据节点10,客户端20按照条带长度将待写数据及在数据块中的偏移位置发送至对应的数据节点10进行存储。例如,以纠删码为例,管理节点30向客户端20反馈的数据块的标识及对应的数据节点10分别是:(1,数据节点a)、(2,数据节点b)和(1,数据节点c),客户端20对待写数据进行分片并按照纠删码编码后得到第一分片数据、第二分片数据及第三分片数据,将第一分片数据、第一分片数据需要写入的数据块的标识1、及第一分片需要写入数据块1中的偏移位置发送至数据节点a、将第二分片数据、第二分片数据需要写入的数据块的标识2、及第二分片数据需要写入数据块2的偏移位置发送至数据节点b,第三分片数据的处理与之类似。
在本实施例中,作为一种具体实施方式,写数据请求中可以携带待写数据块的块标识,通过该块标识从多个数据块中确定待写数据块,块标识可以是数据块的索引或者是数据块的名称等。
步骤S110,依据待写数据块中的偏移位置,从待写数据块中的多个条带中确定待写条带。
在本实施例中,由于一个数据块包括多个条带,数据块的大小和条带的大小均预先设定,因此,根据待写数据块中的偏移位置,可以确定与该偏移位置对应的待写条带。例如,若数据块的大小为64MB,条带大小为32KB,则待写数据块中的偏移位置0对应该数据块的第一个条带,位置索引为1,待写数据块中的偏移位置32KB对应该数据块的第二个条带,位置索引为2,以此类推。
需要说明的是,位置索引为1的条带的内容不一定写在条带编号为1的条带,例如,数据块包括10个条带,编号分别为0~9,位置索引为1的条带的内容可以写在编号为3的条带中。
步骤S120,若待写条带的占用标志表征待写条带已写入数据,则从待写数据块的交换区中确定目标条带。
在本实施例中,每一条带有一个表征该条带是否已经写入数据的占用标志,当该占用标志被置位后,表征该条带已经写入数据,不能直接以覆盖写的方式用待写数据覆盖该条带中当前已经写入的数据,当该占用标志被清除后,表征该条带未写入数据,此时存在两种情况:(1)该条带中从来没有写入过数据;(2)该条带中已写入过数据,但该数据已经不再需要,可以以覆盖写的方式直接向该条带写入新数据。作为一种具体实施方式,可以使用位图的方式表征条带的占用标志,当条带对应的位图设置为1时,表征该条带已写入数据,不能直接以覆盖方式向该条带写数据,当条带对应的位图设置为0时,表征该条带未写入数据,可以直接以覆盖方式向该条带写数据。
在本实施例中,每一数据块包括一个交换区,该交换区包括该数据块中预设个数的条带,该预设个数可以根据应用场景的不同进行设置,例如,交换区中条带的个数设置为16个。交换区的初始位置可以为该数据块的最后预设个数的条带,例如,在数据块首次被创建后,将该数据块的最后16个条带作为交换区。
作为一种具体的实施方式,交换区中的条带信息可以以链表的形式进行管理,链表中的每一个节点保存一个条带的信息,例如,条带的编号,待写数据需要写入交换区时,从该链表中取出一个节点,将该节点保存的条带作为目标条带,将待写数据写入至该目标条带,当然,交换区中的条带信息也可以以其他形式进行管理,例如数组等。
在本实施例中,为了避免写数据失败后可以将原数据恢复,保证写入数据的可靠性,当待写条带的占用标志被置位时,待写数据不会直接写入该待写条带,将原数据覆盖,而是将待写数据写入至其他条带(即待写数据块的交换区中的目标条带),当确认待写数据写入成功后,再释放待写条带,以备后续使用。
步骤S130,将待写数据写入至目标条带,并设置目标条带的占用标志使其表征目标条带已写入数据。
本发明实施例提供的上述数据处理方法,通过为每一数据块设置一个由该数据块中的预设个数的条带组成的交换区,若待写条带中已写入了数据,则将待写数据写入至该数据块的交换区中的目标条带,由此避免了写数据时引发的读写惩罚,提高了数据写入效率。
在本实施例中,为了避免写数据失败后可以将原数据恢复,保证写入数据的可靠性,在确认待写数据写入成功之前,先将待写条带置于待删除状态,保证待写条带中已经写入的数据不被其他数据覆盖,以便于待写数据写入失败后,可以根据待写条带中已经写入的数据进行数据恢复,在图3的基础上,本发明实施例还给出了用于解决上述问题的具体实施方式,请参照图4,图4示出了本发明实施例提供的另一种数据处理方法的流程图,在步骤S130之后,该方法还以下步骤:
步骤S140,将待写条带加入至待删除链表。
在本实施例中,每一数据块可以对应一个待删除链表,待删除链表用于管理该数据块中后续可能会进行数据恢复的条带,待删除链表中的条带不会直接写入数据。待删除链表的管理方式只是一种具体方式,当然,也可以使用其他方式管理这些条带,例如为这些条带设置待删除标记,不能直接向设置了待删除标记的条带写入数据,以免无法根据设置了待删除标记的条带进行数据恢复。
本发明实施例提供的上述数据处理方法,在确认待写数据写入成功之前,先将待写条带加入至待删除链表,使其处于待删除状态,由此,可以保证待写条带中已经写入的数据不被其他数据覆盖,以便于待写数据写入失败后,可以根据待写条带中已经写入的数据进行数据恢复。
若待写条带的占用标志表征待写条带未写入数据,此时可以直接将待写数据写入至待写条带。在图3的基础上,本发明实施例还给出了一种若待写条带的占用标志表征待写条带未写入数据时写入待写数据的处理方式,请参照图5,图5示出了本发明实施例提供的另一种数据处理方法的流程图,该方法还以下步骤:
步骤S150,若待写条带的占用标志表征待写条带未写入数据,则将待写数据写入至待写条带,并设置待写条带的占用标志使其表征待写条带已写入数据。
本发明实施例提供的上述数据处理方法,在待写条带的占用标志表征待写条带未写入数据的场景下,直接将待写数据写入至待写条带,并及时更新待写条带的占用标志,保证了待写条带中数据的可靠性。
在本实施例中,由于数据是分布式存储于多个数据节点10,以N+M纠删方式为例,客户端20根据接收的待存储的用户数据的长度向管理节点30申请数据块,管理节点30向客户端20返回该数据块对应的N+M个数据节点10,客户端20再将用户数据进行分片并进行纠删编码,得到至少一组纠删数据,每一组纠删数据包括N+M份待写数据,对于任一组纠删数据,客户端20将该组的N+M份待写数据中的每一份待写数据发送至对应的数据节点10,每一个数据节点10负责写自己的那份待写数据,并将自己的写结果反馈至客户端20,上述步骤S100-步骤S150可以在任一数据节点10上执行。对于一组纠删数据而言,客户端20在收到N+M个数据节点10反馈的写结果后,判断写结果为成功的数据节点10是否大于N,若大于N,则判定本组纠删数据写入成功,否则判定本组纠删数据写入失败。
写入成功时至少存在以下两种场景:(1)N+M个数据节点均写入成功;(2)N+M个数据节点中有k个写入成功,N<=k<N+M。
写入失败时至少存在以下两种场景:(1)N+M个数据节点均写入失败;(2)N+M个数据节点中有i个写入失败,N<=i<N+M。
对于写入成功的场景(1),不涉及数据重建,对于写入成功的场景(2),k个写成功的数据节点不涉及数据重建,对于N+M-k个写失败的数据节点,需要根据写成的数据节点的数据对N+M-k个写失败的数据节点中的数据进行重建。
对于写入失败的场景(1),不涉及数据恢复,对于写入失败的场景(2),i个写失败的数据节点不涉及数据重建,对于N+M-i个写成功的数据节点,需要将该数据节点的数据恢复至本次写之前的状态。
基于上述场景,本发明实施例还提供一种将待写条带加入至待删除链表之后,根据客户端20反馈的写入结果对待删除链表中的数据进行处理方式,以配合写入失败时进行数据恢复,请参照图6,图6示出了本发明实施例提供的另一种数据处理方法的流程图,图6(a)为接收到客户端发送的写入待写数据成功的消息时的处理方法的流程图,图6(b)为接收到客户端发送的写入待写数据失败的消息时的处理方法的流程图,该方法还包括以下步骤:
步骤S200,若接收到客户端发送的写入待写数据成功的消息,则将待写条带从待删除链表中删除,并将待写条带加入至待写数据块的交换区。
在本实施例中,由于待写条带已经加入待删除链表,意味着本数据节点10写自己的待写数据写入成功,此时,若接收到客户端20发送的写入待写数据成功的消息,则此时待写条带中的数据已经为旧数据,为了后续可以继续使用待写条带写入其他数据,因此,将待写条带加入至待写数据块的交换区。
请参照图7,图7示出了本发明实施例提供的数据块写入数据的过程示例图,图7中,数据块包括8个条带:1#条带~8#条带,交换区包括6#条带~8#条带,在数据块申请后的初始状态下,数据块的偏移位置0对应1#条带,首次向数据块的偏移位置0写入数据a时,数据块的偏移位置0对应的待写条带是1#条带,1#条带尚未写入过数据,因此直接将a写入至1#条带,再次向数据块的偏移位置0写入数据b时,数据块的偏移位置0对应的待写条带是1#条带,1#条带已经写入过数据,则从交换区中确定6#条带为目标条带,将数据b写入6#条带,数据b写入成功后将1#条带加入至待删除链表,当接收到客户端20发送的写入待写数据成功的消息后,将1#条带从待删除链表中删除,并加入至交换区,此时,交换区包括1#条带、7#条带和8#条带。
步骤S210,清除待写条带的占用标志,使其表征待写条带未写入数据。
由于交换区中的条带是可以直接覆盖写入数据的条带,因此,需要清除之前设置的待写条带的占用标志,以使下次将该待写条带选定为目标条带时可以直接覆盖写数据。
步骤S220,若接收到客户端发送的写入待写数据失败的消息,则将待删除链表中的待写条带回退至写入待写数据之前的状态。
在本实施例中,若客户端20判断本次写入待写数据失败,会向本次已经写入成功的数据节点10发送写入待写数据失败的消息,数据节点10基于该消息,将待删除链表中的待写条带回退至写入待写数据之前的状态。继续参照图7,图7中,如果写入b成功且客户端反馈写入失败时,会将数据回退到“向数据块的偏移位置0写入数据a”时的状态。
本发明实施例提供的上述数据处理方法,当客户端反馈写入待写数据成功的消息时,及时将待写条带加入至交换区以备后续使用,保证了分布式存储***的存储资源的高效回收再利用,当客户端反馈写入待写数据失败的消息时,及时将数据恢复至写入待写数据之前的状态,保证了分布式存储***的可靠性。
在本实施例中,每一条带对应一个版本号,每一数据块中存储有该数据块中的每一条带的版本号,版本号用于解决在写入数据过程中因数据节点10异常而导致的数据不一致的问题,为了及时发现数据不一致的问题并及时修复该问题,本发明实施例还提供了一种对版本号进行更新的方法,请参照图8,图8示出了本发明实施例提供的另一种数据处理方法的流程图,该方法还包括以下步骤:
步骤S300,将待写数据块中存储的目标条带的版本号递增。
在本实施例中,由于每一条带均需要维护一个版本号,因此,当条带大小比较小、且分布式存储***的存储容量较大时,会导致版本号占用的存储资源激增,当该存储资源过大时,统一存储该存储资源的管理节点30无法承受,极大地限制了分布式存储***的可扩展性,本发明实施例将条带的版本号分别存储在各数据节点10上,每个数据节点10只存储本地的数据块中的所有条带的版本号,由此可以将条带的版本号占用的存储资源分布于各数据节点10,提高了分布式存储***的可扩展性。
在本实施例中,作为一种实施方式,可以在每一数据块的头部增加固定长度的索引信息,该固定长度可以根据需要进行设置,例如,将固定长度设置为64KB,在每一条带的预设位置增加条带索引信息,该条带索引信息的长度也可以根据需要进行设置,例如,将其设置为1KB。
数据块的头部的索引信息除了记录该数据块中所有条带的版本号及所有条带在该数据块中的位置偏移之外,还可以记录:(1)数据块的校验值,用于对该数据块的数据进行校验;(2)数据块的标识;(3)该数据块中所有条带的占用标志位图,为1时表示该条带已经写入过数据,为0时表示该条带未写入过数据。
条带索引信息除了记录该条带的版本号及该条带在其所属数据块中的位置偏移之外,还可以记录:(1)条带的校验值,用于对该条带的数据进行校验;(2)该条带所属的数据块的标识。条带索引信息在向该条带写入待写数据时,更新对应的信息,在该条带移入至交换区中时被清除。
对于任一数据块而言,由于增加了头部的索引信息及条带索引信息,该数据块中的用于存储有效数据的空间相应地变小了,以64MB的数据块为例,头部的索引信息为64KB,条带索引为1KB,交换区包括16个条带,则该数据块用于存储有效数据的空间为:
其中,上式中各数值的单位为字节。
本发明实施例提供的上述数据处理方法,通过对目标条带的版本号及时递增,以便于可以根据版本号及时发现数据不一致的问题并及时修复该问题,提高了分布式存储***的可靠性。
需要说明的是,数据节点10在本地写待写数据成功后,也可以向客户端20反馈写入成功及本次写入的条带的版本号,客户端20根据写入结果和版本号可以更准确地判断本次写入是否成功,在数据节点10均反馈写入成功的情况下,若各数据节点10反馈的版本号相同,则可以判定本次写入成功,客户端20向数据节点10发送写待写数据成功的消息,若各数据节点10反馈的版本号不一致,则版本号最大的相同版本号的个数最多、相同版本号的个数大于或者等于预设值(例如,纠删码N+M,则该预设值为N)则判定本次写入成功,并向各数据节点10发送校验消息,以使个数据节点10将本次写入的条带所属的数据块中的其他条带的版本号进行验证,若存在不一致的情况,则需要上报管理节点30该数据块的状态为异常,例如,纠删码3+2,预设值为3,客户端20收到1#数据节点~5#数据节点均写入成功的消息,并且1#数据节点~5#数据节点反馈的版本号分别为1、2、2,1、2,则版本号最大值为2,版本号为2的个数为3,等于预设值,则判定本次写入成功,则版本号为1的1#数据节点和4#数据节点的版本号是之前出现异常导致的错误,此时,可以将1#数据节点和4#数据节点的版本号更新为最新的版本号2,同时向1#数据节点~5#数据节点发送校验消息,以使各数据节点对本次写入条带所述的其他条带的版本号进行验证。
在本实施例中,为了将写入的数据正确地读出,本发明实施例还提供了一种读数据的具体实施方式,请参照图9,图9示出了本发明实施例提供的另一种数据处理方法的流程图,该方法还包括以下步骤:
步骤S400,接收客户端发送的读数据请求,其中,读数据请求用于从多个数据块中确定待读数据块及待读数据在待读数据块中的偏移位置。
在本实施例中,每一数据块包括该数据块的已写入数据的偏移位置与存储已写入数据的条带之间的映射关系,每一数据节点10将本地数据块的已写入数据的偏移位置与存储已写入数据的条带之间的映射关系保存至本地,一方面,避免集中存储于管理节点30造成的存储负载过大,另一方面,避免进行数据读写时管理节点30成为数据读写的瓶颈而导致的分布式存储***的性能下降。
在本实施例中,从多个数据块中确定待读数据块及待读数据在待读数据块中的偏移位置与确定待写数据块及待写数据在待写数据块中的偏移位置类似,此处不再赘述。
步骤S410,依据待读数据块中的偏移位置及映射关系,确定存储待读数据的待读条带。
步骤S420,从待读条带中读取待读数据并返回客户端。
在本实施例中,步骤S400~S420可以执行与任一数据节点10,每个数据节点10将读取到的本地的待读数据并返回客户端20,客户端20将读取的数据进行纠删码解码、并将解码后的数据拼接组合后返回用户。
在本实施例中,作为另一种实施方式,客户端20可以首先获取与待读数据相关的各数据节点10中待读条带的版本号,若版本号一致,则从各数据节点10的待读条带中读取待读数据,客户端20将读取的数据进行纠删码解码、并将解码后的数据拼接组合后返回用户,若版本号不一致,且最高版本号的个数大于预设值(例如,纠删码N+M,则该预设值为N),则读取最高版本号的待读条带中的待读数据,并且根据读取到的待读数据对于其余的数据进行恢复。对于版本号不一致的情况,客户端20向管理节点30上报该待读数据块状态为异常,以使管理节点30基于该异常触发对该待读数据块的数据恢复。
本发明实施例提供的上述数据处理方法,依据待读数据块中的偏移位置及待读数据块的已写入数据的偏移位置与存储已写入数据的条带之间的映射关系,确定待读条带,从而可以将按照上述方式写入的数据正确地读出。
在本实施例中,需要对数据块进行恢复的场景至少包括以下两种:(1)数据节点10在线,管理节点30收到客户端20上报的数据块异常时,会触发该异常数据块的恢复流程,此时从该异常数据块所属的数据节点10上分配一个新的数据块,用于存储恢复后的数据;(2)任意数据节点10离线,管理节点30在收到客户端20或者其他正常管理节点30上报的数据节点离线事件时,需要为该离线数据节点选择备份数据节点,该离线数据节点上的所有已写的数据块中的数据进行恢复,将恢复后的数据存储至备份数据节点中。
需要说明的是,对于离线数据节点10上的数据块的恢复是以数据块为单位逐个数据块进行数据恢复,对于每一数据块的恢复都是采用相同的处理流程,对于每一数据块是以条带为单位逐个条带进行数据恢复。
在本实施例中,为了在数据块恢复过程中不中断当前的写数据业务,使数据恢复和数据写入都可以正常进行,本发明实施例还提供了一种同时进行数据写入和数据恢复的实现方式,以数据节点10离线触发数据块恢复为例进行说明,其恢复过程如下:
第一,管理节点30从分布式存储***中确定可以替代离线数据节点的备份数据节点并在该备份数据节点上分配备份数据块,将备份数据块的状态修改为recovering。
在本实施例中,管理节点30也可以是一个由多个主机组成的集群,管理节点30负责存储各数据节点10上的数据块的状态,作为一种实施方式,管理节点30可以将其存储至集群中部署的redis数据库中。
第二,管理节点30向备份数据节点发送数据恢复请求。
第三,备份数据节点向该备份数据节点相关联的正常数据节点10发送拉流请求,即从其上读取与待恢复数据相关联的正常数据。
为了保证可靠性,可以在发送拉流请求预设时长后再读取正常数据,该预设时长可以是30秒。
第四,正常数据节点10基于该拉流请求向客户端20上报数据正在恢复的消息。
第五,客户端20基于正常数据节点10上报的数据正在恢复的消息,从正常数据节点10获取各自的待写数据对应的条带的版本号,并将版本号的最大值递增后发送至备份数据节点,同时向正常数据节点10和备份数据节点发送对应的待写数据。
第六,备份数据节点根据读到与其相关的正常数据及其版本号进行数据恢复,并将恢复后的数据存储至对应的备份数据块中,若此时备份数据节点接收到客户端20发送的待写数据及其版本号时,以版本号最大的数据为当前应该向备份数据数据节点写入的数据。
第七,当该备份数据节点中的数据全部恢复后,停止拉流并向管理节点30发送数据恢复完成,管理节点30将该备份数据块的状态修改为normal。
以3个数据节点为例,3个数据节点分别为a、b和c,在写数据的过程中c下线,客户端20将c故障的消息反馈给管理节点30,管理节点30从分布式存储***中找到d作为备份数据节点,并在d上创建备份数据块,d从a和b中读取与待恢复数据相关的正常数据块,并根据该正常数据块将c中的数据恢复出来并存储至d中的备份数据块中。若此时客户端20还在向a和b中继续写数据,则a和b向客户端20反馈存在数据恢复,客户端20收到此反馈后向a、b获取当前待写数据的条带的版本号,分别为5,6,将其中最大的版本号6进行递增,然后将版本号7发送至d,同时向a、b和d发送对应的待写数据,如果d正在写与待写数据位置相同的恢复数据,此时恢复数据的版本号一定小于7,则d将此恢复数据丢弃,写入客户端20发送的版本号为7的待写数据。
本发明实施例提供的上述数据恢复的方法,可以在数据块恢复过程中不中断当前的写数据业务,使数据恢复和数据写入都可以正常进行。
在本实施例中,当管理节点30检测到数据节点10下线时,会自动从分布式存储***中寻找可以代替下线数据节点10的备份数据节点,并触发下线数据节点10的数据恢复,若在数据恢复的过程中,下线的原数据节点又重新上线,为了保证数据的正常恢复,本发明实施例还提供一种数据恢复过程中下线的原数据节点上线的处理方式,原数据节点向管理节点30上报上线,管理节点30先将原数据节点上线记录于数据库,并等待备份数据节点恢复完成,以任一数据块为例,该处理方式如下:
第一,备份数据节点在对任一数据块的数据恢复完成后向管理节点30上报恢复完成。
第二,管理节点30将原数据节点的信息发送至备份数据节点,以使备份数据节点根据原数据节点中的数据块中条带的版本号检查本地的对应条带的版本号,当二者不一致时,以备份数据节点的版本为准。
第三,备份数据节点对本地数据块中每一条带的版本号均检查完毕后,上报管理节点30检查完毕的消息,管理节点30基于此消息删除原数据节点中的数据块,直至备份数据节点将所有数据块恢复完毕。
以3个数据节点为例,3个数据节点分别为a、b和c,c下线,管理节点30将d作为备份数据节点,d按照每一数据块的每一条带从a和b中读取对应的数据并进行数据恢复,并将恢复的数据存储于d,在d进行数据恢复的过程中,c重新上线,此时,管理节点30等待d恢复完成,当接收到d发送的一个数据块恢复完成的消息后,将c的信息发送至d,d从c获取c中与该恢复数据块对应的数据块中每一条带的版本号,对本地对应条带的版本号进行检查,检查完毕后上报管理节点30,管理节点30向c发送删除数据块的消息,将c中与该恢复数据块对应的数据块删除。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种数据处理装置100的实现方式。请参照图10,图10示出了本发明实施例提供的数据处理装置100的方框示意图。需要说明的是,本实施例所提供的数据处理装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
数据处理装置100包括接收模块110、确定模块120、写入模块130及读取模块140。
接收模块110,用于接收客户端发送的写数据请求,其中,写数据请求用于从多个数据块中确定待写数据块以及待写数据在待写数据块中的偏移位置。
作为一种具体实施方式,接收模块110还用于接收客户端发送的读数据请求,其中,读数据请求用于从多个数据块中确定待读数据块及待读数据在待读数据块中的偏移位置。
确定模块120,用于依据待写数据块中的偏移位置,从待写数据块中的多个条带中确定待写条带;若待写条带的占用标志表征待写条带已写入数据,则从待写数据块的交换区中确定目标条带。
作为一种具体实施方式,确定模块120还用于根据待读地址确定与待读数据对应的目标读取区域并从目标读取区域读取待读数据。
写入模块130,用于将待写数据写入至目标条带,并设置目标条带的占用标志使其表征目标条带已写入数据。
作为一种具体实施方式,写入模块130在将待写数据写入至目标条带,并设置目标条带的占用标志使其表征目标条带已写入数据之后,还用于将待写条带加入至待删除链表。
作为一种具体实施方式,写入模块130在将待写条带加入至待删除链表之后,若接收到客户端发送的写入待写数据成功的消息,还用于将待写条带从待删除链表中删除,并将待写条带加入至待写数据块的交换区;清除待写条带的占用标志,使其表征待写条带未写入数据。
作为一种具体实施方式,若接收到客户端发送的写入待写数据失败的消息,写入模块130还用于将待删除链表中的待写条带回退至写入待写数据之前的状态。
作为一种具体实施方式,若待写条带的占用标志表征待写条带未写入数据,写入模块130还用于将待写数据写入至待写条带,并设置待写条带的占用标志使其表征待写条带已写入数据。
作为一种具体实施方式,每一条带对应一个版本号,每一数据块中存储有该数据块中的每一条带的版本号,写入模块130还用于将待写数据块中存储的目标条带的版本号递增。
读取模块140,用于从待读条带中读取待读数据并返回客户端。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的数据处理方法。
综上所述,本发明实施例提供了一种数据处理方法、装置、数据节点及存储介质,应用于分布式存储***中的数据节点,数据节点包括多个数据块,每一数据块包括多个条带,每一数据块中存储该数据块中每一条带的占用标志,每一数据块包括一个由该数据块中的预设个数的条带组成的交换区,数据节点与客户端通信连接,所述方法包括:接收客户端发送的写数据请求,其中,写数据请求用于从多个数据块中确定待写数据块以及待写数据在待写数据块中的偏移位置;依据待写数据块中的偏移位置,从待写数据块中的多个条带中确定待写条带;若待写条带的占用标志表征待写条带已写入数据,则从待写数据块的交换区中确定目标条带;将待写数据写入至目标条带,并设置目标条带的占用标志使其表征目标条带已写入数据。与现有技术相比,本发明实施例通过为每一数据块设置一个由该数据块中的预设个数的条带组成的交换区,若待写条带中已写入了数据,则将待写数据写入至该数据块的交换区中的目标条带,由此避免了写数据时引发的读写惩罚,提高了数据写入效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,应用于分布式存储***中的数据节点,所述数据节点包括多个数据块,每一所述数据块包括多个条带,每一所述数据块中存储该数据块中每一条带的占用标志,每一所述数据块包括一个由该数据块中的预设个数的条带组成的交换区,所述数据节点与客户端通信连接,所述方法包括:
接收所述客户端发送的写数据请求,其中,所述写数据请求用于从所述多个数据块中确定待写数据块以及待写数据在所述待写数据块中的偏移位置;
依据所述待写数据块中的偏移位置,从所述待写数据块中的所述多个条带中确定待写条带;
若所述待写条带的占用标志表征所述待写条带已写入数据,则从所述待写数据块的交换区中确定目标条带;
将所述待写数据写入至所述目标条带,并设置所述目标条带的占用标志使其表征所述目标条带已写入数据。
2.如权利要求1所述的数据处理方法,所述将所述待写数据写入至所述目标条带,并设置所述目标条带的占用标志使其表征所述目标条带已写入数据的步骤之后还包括:
将所述待写条带加入至待删除链表。
3.如权利要求2所述的数据处理方法,所述将所述待写条带加入至待删除链表的步骤之后还包括:
若接收到所述客户端发送的写入所述待写数据成功的消息,则将所述待写条带从所述待删除链表中删除,并将所述待写条带加入至所述待写数据块的交换区;
清除所述待写条带的占用标志,使其表征所述待写条带未写入数据。
4.如权利要求3所述的数据处理方法,所述方法还包括:
若接收到所述客户端发送的写入所述待写数据失败的消息,则将所述待删除链表中的待写条带回退至写入所述待写数据之前的状态。
5.如权利要求1所述的数据处理方法,所述方法还包括:
若所述待写条带的占用标志表征所述待写条带未写入数据,则将所述待写数据写入至所述待写条带,并设置所述待写条带的占用标志使其表征所述待写条带已写入数据。
6.如权利要求1所述的数据处理方法,所述每一条带对应一个版本号,每一所述数据块中存储有该数据块中的每一所述条带的版本号,所述方法还包括:
将所述待写数据块中存储的所述目标条带的版本号递增。
7.如权利要求1所述的数据处理方法,每一所述数据块包括该数据块的已写入数据的偏移位置与存储所述已写入数据的条带之间的映射关系,所述方法还包括:
接收所述客户端发送的读数据请求,其中,所述读数据请求用于从所述多个数据块中确定待读数据块及待读数据在待读数据块中的偏移位置;
依据所述待读数据块中的偏移位置及所述映射关系,确定存储所述待读数据的待读条带;
从所述待读条带中读取所述待读数据并返回所述客户端。
8.一种数据处理装置,其特征在于,应用于分布式存储***中的数据节点,所述数据节点包括多个数据块,每一所述数据块包括多个条带,每一所述数据块中存储该数据块中每一条带的占用标志,每一所述数据块包括一个由该数据块中的预设个数的条带组成的交换区,所述数据节点与客户端通信连接,所述装置包括:
接收模块,用于接收所述客户端发送的写数据请求,其中,所述写数据请求用于从所述多个数据块中确定待写数据块以及待写数据在所述待写数据块中的偏移位置;
确定模块,用于:依据所述待写数据块中的偏移位置,从所述待写数据块中的所述多个条带中确定待写条带;若所述待写条带的占用标志表征所述待写条带已写入数据,则从所述待写数据块的交换区中确定目标条带;
写入模块,用于将所述待写数据写入至所述目标条带,并设置所述目标条带的占用标志使其表征所述目标条带已写入数据。
9.一种数据节点,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011135418.5A CN112214175A (zh) | 2020-10-21 | 2020-10-21 | 数据处理方法、装置、数据节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011135418.5A CN112214175A (zh) | 2020-10-21 | 2020-10-21 | 数据处理方法、装置、数据节点及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214175A true CN112214175A (zh) | 2021-01-12 |
Family
ID=74056368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011135418.5A Pending CN112214175A (zh) | 2020-10-21 | 2020-10-21 | 数据处理方法、装置、数据节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214175A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515531A (zh) * | 2021-05-08 | 2021-10-19 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113590041A (zh) * | 2021-07-29 | 2021-11-02 | 杭州宏杉科技股份有限公司 | 一种数据保护存储方法、装置及设备 |
CN113806195A (zh) * | 2021-09-17 | 2021-12-17 | 湖北亿咖通科技有限公司 | 数据处理方法、装置、设备、***及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722340A (zh) * | 2012-04-27 | 2012-10-10 | 华为技术有限公司 | 数据处理方法、装置及*** |
CN103049222A (zh) * | 2012-12-28 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
CN103558998A (zh) * | 2013-11-07 | 2014-02-05 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US20150363118A1 (en) * | 2014-06-17 | 2015-12-17 | Netapp, Inc. | Techniques for harmonic-resistant file striping |
WO2016045096A1 (zh) * | 2014-09-26 | 2016-03-31 | 华为技术有限公司 | 一种文件迁移方法、装置和存储设备 |
US20180203606A1 (en) * | 2015-09-09 | 2018-07-19 | Alibaba Group Holding Limited | Method and device for writing data and acquiring data in a distributed storage system |
CN109656486A (zh) * | 2015-11-27 | 2019-04-19 | 华为技术有限公司 | 一种存储设备存储数据的方法及存储设备 |
CN109981798A (zh) * | 2019-04-12 | 2019-07-05 | 苏州浪潮智能科技有限公司 | 一种数据写入方法、***及电子设备和存储介质 |
CN111352579A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市茁壮网络股份有限公司 | 数据存储方法及装置 |
CN111459399A (zh) * | 2019-01-22 | 2020-07-28 | 深圳市茁壮网络股份有限公司 | 一种数据写入方法、数据读取方法及装置 |
-
2020
- 2020-10-21 CN CN202011135418.5A patent/CN112214175A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722340A (zh) * | 2012-04-27 | 2012-10-10 | 华为技术有限公司 | 数据处理方法、装置及*** |
CN103049222A (zh) * | 2012-12-28 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
CN103558998A (zh) * | 2013-11-07 | 2014-02-05 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US20150363118A1 (en) * | 2014-06-17 | 2015-12-17 | Netapp, Inc. | Techniques for harmonic-resistant file striping |
WO2016045096A1 (zh) * | 2014-09-26 | 2016-03-31 | 华为技术有限公司 | 一种文件迁移方法、装置和存储设备 |
US20180203606A1 (en) * | 2015-09-09 | 2018-07-19 | Alibaba Group Holding Limited | Method and device for writing data and acquiring data in a distributed storage system |
CN109656486A (zh) * | 2015-11-27 | 2019-04-19 | 华为技术有限公司 | 一种存储设备存储数据的方法及存储设备 |
CN111352579A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市茁壮网络股份有限公司 | 数据存储方法及装置 |
CN111459399A (zh) * | 2019-01-22 | 2020-07-28 | 深圳市茁壮网络股份有限公司 | 一种数据写入方法、数据读取方法及装置 |
CN109981798A (zh) * | 2019-04-12 | 2019-07-05 | 苏州浪潮智能科技有限公司 | 一种数据写入方法、***及电子设备和存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515531A (zh) * | 2021-05-08 | 2021-10-19 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113515531B (zh) * | 2021-05-08 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
CN113590041A (zh) * | 2021-07-29 | 2021-11-02 | 杭州宏杉科技股份有限公司 | 一种数据保护存储方法、装置及设备 |
CN113590041B (zh) * | 2021-07-29 | 2024-05-17 | 杭州宏杉科技股份有限公司 | 一种数据保护存储方法、装置及设备 |
CN113806195A (zh) * | 2021-09-17 | 2021-12-17 | 湖北亿咖通科技有限公司 | 数据处理方法、装置、设备、***及存储介质 |
CN113806195B (zh) * | 2021-09-17 | 2023-11-10 | 亿咖通(湖北)技术有限公司 | 数据处理方法、装置、设备、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214175A (zh) | 数据处理方法、装置、数据节点及存储介质 | |
CN111857602B (zh) | 数据处理方法、装置、数据节点及存储介质 | |
US11698728B2 (en) | Data updating technology | |
CN114415976B (zh) | 一种分布式数据存储***与方法 | |
CN110018783B (zh) | 一种数据存储方法、装置及*** | |
CN110515541B (zh) | 分布式存储中纠删码非对齐数据更新方法 | |
CN113515531B (zh) | 数据访问方法、装置、客户端及存储介质 | |
EP3474143B1 (en) | Method and apparatus for incremental recovery of data | |
CN110825546A (zh) | 一种面向高可用数据库集群的恢复方法、***及设备终端 | |
CN114647383A (zh) | 数据访问方法、装置、存储节点及存储介质 | |
CN112506710A (zh) | 分布式文件***数据修复方法、装置、设备及存储介质 | |
CN114968668A (zh) | 数据处理方法、装置、数据接入端及存储介质 | |
CN113885809B (zh) | 数据管理***及方法 | |
CN107329699B (zh) | 一种纠删重写方法及*** | |
CN113485874B (zh) | 数据处理方法及分布式存储*** | |
CN111857603B (zh) | 数据处理方法及相关装置 | |
CN109426587B (zh) | 一种数据恢复方法及装置 | |
CN111400248B (zh) | 写数据、恢复数据的方法及文件*** | |
CN111124740A (zh) | 一种数据读取方法、装置、存储设备及机器可读存储介质 | |
CN115878381A (zh) | 基于srm盘的数据恢复方法及装置、存储介质、电子装置 | |
CN113821377B (zh) | 一种分布式存储集群的数据恢复方法、***及存储介质 | |
CN115309336A (zh) | 数据写入方法、缓存信息更新方法及相关装置 | |
CN114676000A (zh) | 数据处理方法及其装置、存储介质、计算机程序产品 | |
CN108174136B (zh) | 云盘视频编码存储方法 | |
CN113127266A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210112 |