CN105260136B - 数据读写方法及分布式存储系统 - Google Patents

数据读写方法及分布式存储系统 Download PDF

Info

Publication number
CN105260136B
CN105260136B CN201510616481.3A CN201510616481A CN105260136B CN 105260136 B CN105260136 B CN 105260136B CN 201510616481 A CN201510616481 A CN 201510616481A CN 105260136 B CN105260136 B CN 105260136B
Authority
CN
China
Prior art keywords
data
fragment
module
main
fragment module
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.)
Active
Application number
CN201510616481.3A
Other languages
English (en)
Other versions
CN105260136A (zh
Inventor
刘健
李栋梁
高天行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510616481.3A priority Critical patent/CN105260136B/zh
Priority to US15/535,007 priority patent/US11537659B2/en
Priority to PCT/CN2015/096235 priority patent/WO2017049764A1/zh
Publication of CN105260136A publication Critical patent/CN105260136A/zh
Application granted granted Critical
Publication of CN105260136B publication Critical patent/CN105260136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Abstract

本申请公开了数据读写方法及分布式存储系统。该方法的一具体实施方式包括:分片服务器接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求;基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果;将处理结果发送至客户端。实现了通过加载在内存中的哈希表完成对数据的读写,使得对数据的读取请求的处理时间接近于分布式文件系统本身的极限性能,对数据的写入请求的耗时接近于分布式文件系统以追加写方式写入所消耗的时间,从而提升了分布式存储系统的性能,同时,依靠分布式文件系统对数据进行存储,具有等同于分布式文件系统的可靠性,进而提升分布式存储系统的可靠性。

Description

数据读写方法及分布式存储系统
技术领域
本申请涉及计算机领域,具体涉及分布式技术领域,尤其涉及数据读写方法及分布式存储系统。
背景技术
目前,对于网络中的海量数据,通常采用分布式存储系统对海量数据进行存储。在已知的分布式存储系统中,通常采用sstable文件对数据进行存储,对数据的读取则通过在所有sstable文件中进行二分查找实现。当采用上述分布式存储系统对数据进行存储时,一方面,由于sstable文件中数据是有序排列的,因此需要频繁的对各个sstable文件做归并排序,对于很大的数据长度(例如单条数据长度在1MB以上),在完全随机读取以及高吞吐的情形下,sstable文件合并过程所消耗的资源量大,从而造成系统瓶颈。另一方面,sstable文件在通常以3副本形式存储数据,存储成本较大。
发明内容
本申请提供了数据读写方法及分布式存储系统,用于解决上述背景技术部分存在的技术问题。
第一方面,本申请提供了数据读写方法,该方法包括:分片服务器接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求,所述处理请求包括:写入请求、读取请求;基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果,数据索引包括所述分片数据在分布式文件系统中的存储位置;将处理结果发送至客户端。
第二方面,本申请提供了数据读写方法,该方法包括:接收客户端发送的查询请求,查询请求包括待处理的分片数据对应的数据标识;基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器,以使客户端可向分片服务器发送对分片数据的处理请求对待处理的分片数据进行处理,其中,每一个分片服务器预先对应多个哈希值区间。
第三方面,本申请提供了数据读写方法,该方法包括:接收对分片数据的处理指令,向主控服务器发送查询请求,查询请求包括分片数据的数据标识;向分片服务器发送对分片数据的处理请求,分片服务器为经由主控服务器基于分片数据的数据标识而确定的分片服务器;接收分片服务器返回的对处理请求进行处理之后得到的处理结果。
第四方面,本申请提供了分布式存储系统,该系统包括:客户端,配置用于接收对分片数据的处理指令,向主控服务器发送查询请求,查询请求包括所述分片数据的数据标识;向分片服务器发送对分片数据的处理请求,分片服务器为经由主控服务器基于分片数据的数据标识而确定的分片服务器;接收分片服务器返回的对处理请求进行处理之后得到的处理结果;主控服务器,配置用于基于配置用于接收客户端发送的查询请求,查询请求包括待处理的分片数据对应的数据标识;基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器,以使客户端可向分片服务器发送对分片数据的处理请求对待处理的分片数据进行处理,其中,每一个分片服务器预先对应多个哈希值区间;分片服务器,配置用于接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求,处理请求包括:写入请求、读取请求;基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果,数据索引包括分片数据在分布式文件系统中的存储位置;将处理结果发送至客户端。
本申请提供的数据读写方法及分布式存储系统,通过分片服务器接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求;基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果;将处理结果发送至客户端。实现了通过加载在内存中的哈希表完成对数据的读写,使得对分片数据读取请求进行处理的时间接近于一次分布式文件系统的随机读请求的时间,从而最大限度的接近分布式文件系统的极限性能。相较于现有技术的sstable文件以二分查找的方式查找分片数据,节省了大量归并查找的时间。同时,对分片数据的写入请求的处理的耗时接近于分布式文件系统对索引和数据文件以追加写方式进行写入所消耗的时间,从而提升分布式存储系统的性能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了适用于本申请的数据读写方法的一个系统架构示意图;
图2示出了根据本申请的数据读写方法的一个实施例的流程图;
图3示出了适用于本申请的数据读写方法的另一个系统架构示意图;
图4其示出了对分片数据进行读写的原理示意图;
图5示出了根据本申请的数据读写方法的另一个实施例的流程图;
图6示出了根据本申请的数据读写方法的再一个实施例的流程图;
图7示出了根据本申请的分布式存储系统的一个实施例的结构示意图;
图8其示出了适于用来实现本申请实施例的终端设备或主机的计算机系统800的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,适用于本申请的数据读写方法的一个系统架构示意图。在图1中,示出了客户端101、主控服务器102(也可称之为Master服务器),分片服务器103(也可称之为UnitServer服务器)、分布式文件系统104。主控服务器101可以与多个分片服务器102连接。主控服务器102可以用于接收客户端101的查询请求,确定用于处理对分片数据的处理请求(例如写入请求、读取请求)的分片服务器103。分片服务器103可以用于接收客户端101发送的处理请求,对处理请求进行处理。例如,将分片数据写入分布式文件系统104中或从分布式文件系统104中读取分片数据。
请参考图2,其示出了根据本申请的数据读写方法的一个实施例的流程200。本实施例所提供的数据读写方法可由分片服务器执行。该方法包括以下步骤:
步骤201,分片服务器接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求。
在本实施例中,处理请求包括:写入请求、读取请求。在本实施例中,对数据的写入和读取可以以分片数据为单位。例如,在将一本词典对应的数据写入分布式文件系统中时,可以将字典对应的数据划分为多份数据,将每一份数据称之为分片数据。在将分片数据存储在分布式文件系统后,可以以分片数据为单元对分片数据进行读取。在实施例中,分片数据可以预先对应一个数据标识(也可称之为Key)。
步骤202,基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果。
在本实施例中,数据索引包括分片数据在分布式文件系统中的存储位置。可以预先在分片服务器的内存中加载指示分片数据的数据标识与数据索引对应关系的哈希表。分片数据的数据标识与数据索引可以采用以下方式建立对应关系:数据标识经由哈希函数经计算后可以对应于一个哈希值,然后在哈希表中与该哈希值对应的位置上存储数据标识对应的数据索引。
在本实施例中,可以基于预先在分片服务器的内存中加载指示分片数据的数据标识与数据索引对应关系的哈希表,对接收到的处理请求进行处理。例如,当处理请求为对分片数据的读取请求时,可以根据分片数据的数据标识,在哈希中查找出该分片数据的数据索引。当处理请求为对分片数据的写入请求时,可以将分片数据写入分布式文件系统后得到分布式文件系统返回的数据索引,同时,可以对分片数据的标识进行哈希函数计算后得到哈希值,然后将数据索引存储在哈希表中与该哈希值对应的位置上。此时,存储在分布式文件系统中的分片数据可以称之为Value,从而实现了以Key-Value形式对分片数据的存储,可以将由主控服务器、分片服务器、分布式文件系统构成的系统称之为分布式存储系统。
在本实施例中,由于将所有的分片数据的数据索引存储在哈希表中,使得数据索引全量加载在内存中,从而使得对分片数据的读取请求(也可称之为查询请求)的处理时间接近于一次分布式文件系统的随机读请求的处理时间,从而最大限度的接近分布式文件系统的极限性能。相较于现有技术的sstable文件以二分查找的方式查找分片数据,节省了大量归并查找的时间。同时,对分片数据的写入请求的处理的耗时接近于分布式文件系统对索引和数据文件以追加写方式进行写入所消耗的时间,从而提升分布式存储系统的性能。
在本实施例的一些可选的实现方式中,处理请求为写入请求,基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果包括:利用主分片模块将分片数据写入分布式文件系统中,得到分片数据对应的数据索引,主分片模块为基于数据标识对应的哈希值所处的哈希值区间而确定的主分片模块;将数据标识和数据索引写入分布式文件系统中的日志文件,并且基于数据标识和数据索引,更新主分片模块对应的哈希表。
在本实施例中,分片服务器上的主分片模块可以预先对应一个哈希值区间,用于处理写入请求的主分片模块可以为基于分片数据对应的数据标识对应的哈希值所处的哈希值区间而确定的主分片模块。然后,可以利用该主分片模块将分片数据写入到分布式文件系统中,得到分布式文件系统返回的数据索引。在本实施例中,可以预先在分片服务器上创建主分片模块对应的哈希表,主分片模块可以通过该哈希表维护经由主分片模块写入到分布式文件系统中的分片数据的数据标识和数据索引,然后将该哈希表在分片服务器上的内存进行加载。在本实施例中,在利用主分片模块将分片数据写入分布式文件系统,得到分片数据对应的数据索引之后,可以基于数据标识和数据索引,更新主分片模块对应的哈希表。即首先计算写入分布式文件系统的分片数据的数据标识对应的哈希值,然后在主分片模块对应的哈希表中的该哈希值对应的位置上存储数据索引,从而建立分片数据的标识与数据索引的对应关系。
在本实施例的一些可选地实现方式中,处理请求为读取请求,基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果包括:利用主分片模块基于数据标识对应的哈希值,从主分片模块对应的哈希表中的哈希值对应的位置上查找出与数据标识对应的数据索引,主分片模块为基于数据标识对应的哈希值所处的哈希值区间而确定的主分片模块;基于数据索引,从分布式文件系统中读取分片数据。
在本实施例中,可以利用主分片模块来处理对分片数据的读取请求,即从分布式文件系统中读取分片数据。可以对分片数据的数据标识进行哈希函数计算得到该数据标识对应的哈希值,然后从主分片模块对应的哈希表中的哈希值对应的位置上获取数据索引,基于该数据索引从分布式文件系统中读取出分片数据。
在本实施例的一些可选的实现方式中,处理请求为读取请求,基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果包括:利用主分片模块对应的从分片模块基于数据标识对应的哈希值,从从分片模块对应的哈希表中的哈希值对应的位置上查找出与数据标识对应的数据索引,从分片模块为基于数据标识对应的哈希值所处的哈希值区间而确定的从分片模块;基于数据索引,从分布式文件系统中读取分片数据。
在本实施例中,可以利用与主分片模块对应的从分片模块完成对分片数据的读取请求的处理。从分片模块可以维护一个哈希表,该哈希表可以为与其对应的主分片模块维护的哈希表的副本。从而,从分片模块可以基于分片数据的数据标识,从该哈希表中查找出与数据标识对应的数据索引,然后基于数据索引,从分布式文件系统中读取分片数据。
请参考图3,示出了适用于本申请的数据读写方法的另一个系统架构示意图。在图3中,示出了客户端301,主控服务器302,分片服务器303、分布式文件系统304。分片服务器303包括主分片模块与从分片模块。其中,主分片模块1和主分片模块2位于分片服务器1上,从分片模块1与从分片模块2位于分片服务器2上。在本实施例中,每一个主分片模块可以对应于一个从分片模块,构成分片模块对,即主分片模块1与从分片模块1构成一个分片模块对,主分片模块2与从分片模块2构成一个分片模块对。在本实施例中,主分片模块可以处理写入请求,主分片模块与从分片模块均可以处理读取请求(也可称之为查询请求)。
在本实施例的一些可选的实现方式中,当主分片模块出现故障时,将主分片模块对应的从分片模块切换为主分片模块,以对处理请求进行处理。
在本实施例中,主分片模块与其对应的从分片模块可以位于在不同的分片服务器上,并且其各自所在的分片服务器也经由不同的交换机的接入网络,从而避免因交换机故障导致的可用性灾难。同时,当主分片模块与其对应的从分片模块同时故障时,由于分片数据的数据标识与数据索引均存储于可靠性较高的分布式文件系统中,从而可以在较短的时间内从分布式文件系统中重建数据索引来恢复对写入请求和读取请求的处理。
在本实施例中,分片服务器还可以定期给主控服务器发送心跳信息,当主控服务器检测到某个分片服务器心跳信息丢失时,则可以将其上的主分片模块以及从分片模块在其它分片服务器上恢复出来。
在本实施例的一些可选地实现方式中,还包括:利用从分片模块每间隔读取周期读取日志文件中的主分片模块对应的增量信息,增量信息指示相较于上一读取周期新增加的数据标识和数据索引;基于增量信息,更新从分片模块对应的哈希表。
在本实施例中,从分片模块可以每间隔预设周期从分布式文件系统中的日志文件中,将其对应的主分片对应的日志增量部分读出来,即新增加的由该从分片模块对应的主分片写入日志中的数据标识和数据索引,从而更新从分片模块对应的哈希表,使得从分片模块对应的哈希表中维护的数据标识和数据索引的对应关系与主分片模块对应的哈希表维护的数据标识和数据索引的对应关系一致。从而当主分片模块出现故障时,将主分片模块对应的从分片模块切换为主分片模块,可以对经由主分片模块写入分布式文件系统中的分片数据进行读取。
请参考图4,其示出了根据本申请的数据读写方法对分片数据进行读写的原理示意图。在图4中,示出了客户端401,主控服务器402、分片服务器403、分片服务器403上的主分片模块与从分片模块、以及分布式文件系统404。主控服务器402记录分片模块的分布情况,即一个分片模块(主分片模块或从分片模块)在哪一个分片服务器403上。
下面以分片服务器1上的主分片模块2与分片服务器2上的与该主分片模块2对应的从分片模块2为例,说明根据对分片数据进行读写的原理:首先说明对分片数据的写入过程,主控服务器402接收客户端401发送的查询请求,基于分片数据的数据标识对应的哈希值的区间,可以确定出数据标识对应的哈希值处于主分片模块2对应的哈希值的区间内,即由主分片模块2处理对分片数据的写入请求。以及可以根据主分片模块与分片服务器的对应关系表,确定出主分片模块2位于分片服务器2上。此时,主控服务器402可以将分片服务器2与主分片模块2的标识发送给客户端401。客户端401可以向分片服务器2发送写入请求,同时,该请写入请求中可以包含主分片模块2的标识,从而使得写入请求到达分片服务器2时,可以交由主分片模块2进行处理。主分片模块2接收客户端401发送的写入请求之后,首先校验写入请求中与数据写入相关联的参数是否合法,若不合法,则向客户端返回错误信息,并终止流程。若合法,则以追加写方式将分片数据写入到分布式文件系统的数据文件(Data文件)中,接收分布式文件404系统返回的数据索引(Index),此时,可以将被写入分布式文件系统404中的数据文件的分片数据称之为Value。然后,主分片模块2可以将分片数据的标识(Key)与分片数据对应的数据索引(Index)写入分布式文件系统中的日志文件(Log文件)中,同时,利用分片数据的Key与Index更新主分片模块2对应的哈希表,并向客户端返回指示写入成功的指示信息。从分片模块2则每间隔读取周期读取分布式文件系统403的日志文件中主分片模块2对应的增量信息,即新增加的经由主分片模块2写入分布式文件系统404中的分片数据的数据标识与数据索引,将增加的分片数据的数据标识与数据索引加入到从分片模块2对应的哈希表中。
下面继续说明对上述经由主分片模块2写入分布式文件系统404中的分片数据的读取过程:由于从分片模块2可以与主分片模块2对应于同一个哈希值区间,基于上述写入分片数据的过程中确定处理分片数据的处理请求的分片服务器的原理,主控服务器402可以确定用于处理读取请求的分片模块即主分片模块2或从分片模块2。以从分片模块2处理客户端发送的读取请求为例,由于从分片模块2维护有与主分片模块2一致的哈希表,因此,从分片模块2可以基于从分片模块2对应的加载在内存中的哈希表,查找哈希表中与分片数据的数据标识对应的数据索引,然后基于查找出的数据索引将分片数据从分布式文件系统404中读取出来。当读取成功时,将该分片数据作为查询结果返回给客户端。
在本实施例的一些可选地实现方式中,利用主分片模块将分片数据写入分布式文件系统中包括:利用主分片模块对分片数据进行复制生成分片数据对应的3份副本数据,以追加写方式向分布式文件系统写入3份副本数据;采用纠删码对3份副本数据进行编码,生成分片数据对应的1.5份副本数据;将1.5份副本数据写入分布式文件系统中。
在本实施例中,在利用主分片模块将分片数据写入分布式文件系统中时,基于分布式文件系统不能支持任意长度的追加写功能,可以首先采用追加写的方式向分布式文件系统中写入分片数据对应的3份副本数据(也成称之为3副本文件),然后采用纠删码对3份副本数据进行编码,生成分片数据对应的1.5份副本数据(也可称之为1.5副本文件),然后转写1.5副本文件,即将1.5份副本文件写入分布式文件系统中。
在本实施例中,转写1.5副本文件的操作可由分布式文件系统提供,但由于分布式文件系统针对1.5副本文件不支持追加写,所以必须一次写完1.5副本文件。在本实施例中,1.5份副本文件的转写可选择在流量低峰时期进行,从而不影响高峰时期系统的吞吐。在转写完成后,标记索引转向新文件并且减旧文件的引用计数。当没有读取请求使用旧文件时,可以删除旧文件会来释放空间。
在本实施例中,由于分片数据在分布式文件系统中存储顺序为顺序存储,当同一个数据标识发生更新操作时,就会产生空洞,造成磁盘空间的浪费。例如,对于同一个数据标识,第一次将该数据标识对应的分片数据写入分布式文件系统中时,文件长度为1MB。当第二次对同一个数据标识进行更新时,则插入与第一次写入不同的1Mb的数据。如果继续采用追加写进行写入,文件长度为2MB,其中,文件末尾的1Mb为正确的数据,文件的前1Mb数据已失效,由于数据标识已更新,导致文件中产生1Mb的空洞。在本实施例中,可以采用定期进行数据重写来擦除空洞,从而回收磁盘空间。采用定期进行数据重写来擦除空洞可以采用以下方式进行:可以定期统计空洞比例,当空洞比例高于阈值时可以启动记录重新操作。主控服务器负责将所有数据按照索引文件的顺序依次读取,然后采用CAS(ContentAddressing Storage,固定内容寻址存储)方式来重新将数据写入到分布式文件系统中。如果一个数据文件中的所有数据重写完成,将删除此数据文件。在数据重写过程中,如果一个数据标识没有更新,则判断写入成功,否则判断数据写入失败丢掉该数据,从而在重写完成后消除空洞。
步骤203,将处理结果发送至客户端。
在本实施例中,在对处理请求处理之后,可以得到处理结果。当处理请求为写入请求时,可以向客户端返回指示写入成功的信息作为处理结果。当处理请求为读取请求时,可以在成功读取分片数据之后,将分片数据作为处理结果发送至客户端。
在实施例所提供的数据读写方法具有以下特点:
1)高性能:通过加载在内存中的哈希表,将数据索引全量加载在内存中,使得对分片数据的读取请求(也可称之为查询请求)的处理时间接近于一次分布式文件系统的随机读请求的时间,从而最大限度的接近分布式文件系统的极限性能。相较于现有技术的SST文件以二分查找的方式查找分片数据,节省了大量归并查找的时间。对于分片数据的写入请求的处理的耗时接近于分布式文件系统对索引和数据文件以追加写方式进行写入所消耗的时间。
2)低成本:通过分布式文件系统对数据文件进行1.5副本文件的转写,相较于现有技术中的采用3副本对数据进行存储,节省存储空间。
3)高可靠:依靠高可靠的分布式文件系统对数据进行存储,具有等同于分布式文件系统的可靠性,从而提升分布式存储系统的可靠性。针对每一个主分片模块,分别设置与其对应的从分片模块,并且主分片模块与从分片模块位于不同的分片服务器,使得系统不存在单一节点,同时,当主分片模块以及与其对应的从分片模块同时故障,由于分片数据的数据标识与数据索引均存储于可靠性较高的分布式文件系统中,从而可以在较短的时间内从分布式文件系统中重建数据索引来恢复对写入请求和读取请求的处理,进一步提升分布式存储系统的可靠性。
请参考图5,其示出了根据本申请的数据读写方法的另一个实施例的流程500。本实施例所提供的数据读写方法可由主控服务器执行。该方法包括以下步骤:
步骤501,接收客户端发送的查询请求。
在本实施例中,查询请求包括待处理的分片数据对应的数据标识。在本实施例中,对数据的写入和读取可以以分片数据为单位。例如,在将一本词典对应的数据写入分布式文件系统中时,可以将字典对应的数据划分为多份数据,将每一份数据称之为分片数据。在将分片数据存储在分布式文件系统后,可以以分片数据为单元对分片数据进行读取。在实施例中,分片数据可以预先对应一个数据标识(也可称之为Key)。
步骤502,基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器。
在本实施例中,每一个分片服务器可以预先对应多个哈希值区间。在本实施例中,可以采用以下方式确定用于处理处理请求的分片服务器:计算数据标识对应的哈希值所处的哈希值区间,当数据标识对应的哈希值所处的哈希值区间为分片服务器预先对应的多个哈希值区间之一时,可以由该分片服务器对待处理的分片数据进行处理。
在本实施例的一些可选的实现方式中,基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器包括:基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的主分片模块或所述主分片模块对应的从分片模块,其中,每一个主分片模块与从分片模块预先均对应一个相同的哈希值区间;基于主分片模块或从分片模块与分片服务器的对应关系表,确定主分片模块或从分片模块所在的分片服务器。
在本实施例中,可以首先确定出用于处理处理请求的主分片模块或从分片模块,然后再根据主分片模块或从分片模块主分片模块与分片服务器的对应关系,确定出主分片模块或从分片模块所在的分片服务器。从而可以将处理请求发送上述经确定的分片服务器的主分片模块或从分片模块上,以利用主分片模块或从分片模块对处理请求进行处理。
在本实施例中,可以预先维护主分片模块或从分片模块与分片服务器的对应关系,以及分片数据的数据标识与主分片模块或从分片模块的对应关系。首先以利用分片服务器上的主分片模块处理客户端发送的处理请求为例,分片数据的数据标识与主分片模块的对应关系基于以下方式进行设置:主分片模块对应一个指示该主分片模块负责处理的分片数据的数据标识和数据索引的对应关系的哈希表。每一个经由该主分片模块写入分布式文件系统中的分片数据的数据标识进行哈希函数计算之后可以对应一个哈希值。可以预先将主分片模块对应于一个哈希值区间,即由主分片模块负责处理对应的哈希值在该哈希值区间内的分片数据的处理请求,进而建立分片数据的数据标识与主分片模块的对应关系。在本实施例中,主控服务器可以根据主分片模块与分片服务器的对应关系以及分片数据的数据标识与主分片模块的对应关系,确定出用于处理处理请求的分片服务器,以及该分片服务器上用于处理处理请求的主分片模块。
在本实施例中,从分片模块可以与其对应的主分片模块对应同一个哈希值区间。基于上述建立分片数据的数据标识与主分片模块的对应关系的原理,可以建立分片数据的数据标识与从分片模块的对应关系。从而当利用从分片处理客户端发送的读取请求时,主控服务器可以根据从分片模块与分片服务器的对应关系,以及分片数据的数据标识与从分片模块的对应关系,确定用于处理读取请求的分片服务器,以及用于处理读取请求的该分片服务器上的从分片模块。
请参考图6,其示出了根据本申请的数据读写方法的再一个实施例的流程600。本实施例所提供的数据读写方法可由客户端执行。该方法包括以下步骤:
步骤601,接收对分片数据的处理指令,向主控服务器发送查询请求。
在本实施例中,查询请求包括分片数据的数据标识。可以首先接收对分片数据的处理指令,然后向主控服务器发送查询请求,来确定用于对分片数据的处理请求进行处理的分片服务器。
步骤602,向分片服务器发送对分片数据的处理请求。
在本实施例中,可以向经由主控服务器基于分片数据的数据标识而确定的分片服务器发送对分片数据的处理请求,从而可以利用经确定的分片服务器对处理请求进行处理。例如,可以利用分片服务器上主分片模块将分片数据写入到分布式文件系统中,又例如,可以利用分片服务器上主分片模块或从分片模块从分布式文件系统中读取出数据标识对应的分片数据。
步骤603,接收分片服务器返回的对处理请求进行处理之后得到的处理结果。
在本实施例中,在向经确定的分片服务器发送对分片数据的处理请求之后,可以接收分片服务器返回的对处理请求进行处理之后得到的处理结果。例如,当处理请求为写入请求时,可以得到分片服务器返回的指示写入成功的指示信息,当处理请求为读取请求时,可以得到分片服务器返回的从分布式文件系统中读取出的分片数据。
请参考图7,示出了根据本申请的分布式存储系统的一个实施例的结构示意图。系统700包括:客户端701,主控服务器702,分片服务器703。其中,客户端701配置用于接收对分片数据的处理指令,向主控服务器发送查询请求,查询请求包括分片数据的数据标识;向分片服务器发送对分片数据的处理请求,分片服务器为经由主控服务器基于分片数据的数据标识而确定的分片服务器;接收分片服务器返回的对处理请求进行处理之后得到的处理结果;主控服务器702配置用于接收客户端发送的查询请求,查询请求包括待处理的分片数据对应的数据标识;基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器,以使客户端可向分片服务器发送对分片数据的处理请求对待处理的分片数据进行处理,其中,每一个分片服务器预先对应多个哈希值区间;分片服务器703配置用于接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求,处理请求包括:写入请求、读取请求;基于预先加载在内存中的指示分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果,数据索引包括分片数据在分布式文件系统中的存储位置;将处理结果发送至客户端。
在本实施例的一些可选的实现方式中,分片服务器703包括:主分片模块(未示出),配置用于当处理请求为写入请求时,将分片数据写入分布式文件系统中,得到分片数据对应的数据索引;将数据标识和数据索引写入分布式文件系统中的日志文件,并且基于数据标识和数据索引,更新主分片模块对应的哈希表。
在本实施例的一些可选的实现方式中,主分片模块进一步配置用于:对分片数据进行复制生成分片数据对应的3份副本数据,以追加写方式向分布式文件系统写入3份副本数据;采用纠删码对3份副本数据进行编码,生成分片数据对应的1.5份副本数据;将1.5份副本数据写入分布式文件系统中。
在本实施例的一些可选的实现方式中,主分片模块进一步配置用于:当处理请求为读取请求时,基于数据标识对应的哈希值,从主分片模块对应的哈希表中的哈希值对应的位置上查找出与数据标识对应的数据索引;基于数据索引,从分布式文件系统中读取分片数据。
在本实施例的一些可选的实现方式中,分片服务器703还包括:从分片模块(未示出),配置用于当处理请求为读取请求时,基于数据标识对应的哈希值,从从分片模块对应的哈希表中的哈希值对应的位置上查找出与数据标识对应的数据索引;基于数据索引,从分布式文件系统中读取分片数据。
在本实施例的一些可选的实现方式中,从分片模块进一步配置用于:每间隔读取周期读取日志文件中的主分片模块对应的增量信息,增量信息指示相较于上一读取周期新增加的数据标识和数据索引;基于增量信息,更新从分片模块对应的哈希表。
在本实施例的一些可选的实现方式中,当主分片模块出现故障时,将主分片模块对应的从分片模块切换为主分片模块,以对处理请求进行处理。
在本实施例的一些可选的实现方式中,主控服务器702进一步配置用于:基于数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的主分片模块或主分片模块对应的从分片模块,其中,每一个主分片模块与从分片模块预先均对应一个相同的哈希值区间;基于主分片模块或从分片模块与分片服务器的对应关系表,确定主分片模块或从分片模块所在的分片服务器。
本实施例所提供的分布式存储系统具有以下特点:
1)高性能:分片服务器具有加载在内存中的哈希表,将数据索引全量加载在内存,使得对分片数据的读取请求(也可称之为查询请求)的处理时间接近于一次分布式文件系统的随机读请求处理的时间,从而最大限度的接近分布式文件系统的极限性能。相较于现有技术的SST文件以二分查找的方式查找分片数据,节省了大量归并查找的时间。对于分片数据的写入请求的处理的耗时接近于分布式文件系统对索引和数据文件以追加写方式进行写入所消耗的时间。
2)低成本:通过分布式文件系统对数据文件进行1.5副本文件的转写,相较于现有技术中的采用3副本对数据进行存储,节省存储空间。
3)高可靠:依靠高可靠的分布式文件系统对数据进行存储,具有等同于分布式文件系统的可靠性,进而提升分布式存储系统的可靠性。针对每一个主分片模块,分别设置与其对应的从分片模块,并且主分片模块与从分片模块位于不同的分片服务器,使得系统不存在单一节点。同时,当主分片模块以及与其对应的从分片模块同时故障,由于分片数据的数据标识与数据索引均存储于可靠性较高的分布式文件系统中,从而可以在较短的时间内从分布式文件系统中重建数据索引来恢复对写入请求和读取请求的处理,进一步提升分布式存储系统的可靠性。
下面参考图8,其示出了适于用来实现本申请实施例的终端设备或主机的计算机系统800的结构示意图。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考图2、图4-图6描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图2、图4-图6的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收客户端发送的对分片数据的包含分片数据的数据标识的处理请求,处理请求包括:写入请求、读取请求;基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对处理请求进行处理,得到处理结果,数据索引包括分片数据在分布式文件系统中的存储位置;将处理结果发送至客户端。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (18)

1.一种数据读写方法,其特征在于,所述方法包括:
分片服务器接收客户端发送的对分片数据的包含所述分片数据的数据标识的处理请求,所述处理请求包括:写入请求、读取请求;
基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对所述处理请求进行处理,得到处理结果,所述数据索引包括所述分片数据在分布式文件系统中的存储位置;
将所述处理结果发送至所述客户端;
其中,所述基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对所述处理请求进行处理,包括:
利用主分片模块或所述主分片模块所对应的从分片模块对所述处理请求进行处理,其中,所述主分片模块和所述从分片模块是基于所述数据标识对应的哈希值所处的哈希值区间确定的,所述主分片模块和所述从分片模块位于不同的分片服务器。
2.根据权利要求1所述的方法,其特征在于,所述处理请求为写入请求,以及
所述基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对所述处理请求进行处理,得到处理结果包括:
利用主分片模块将所述分片数据写入分布式文件系统中,得到所述分片数据对应的数据索引;将所述数据标识和所述数据索引写入分布式文件系统中的日志文件,并且基于所述数据标识和所述数据索引,更新所述主分片模块对应的所述哈希表。
3.根据权利要求2所述的方法,其特征在于,所述利用主分片模块将所述分片数据写入分布式文件系统中包括:
利用主分片模块对分片数据进行复制生成分片数据对应的3份副本数据,以追加写方式向分布式文件系统写入所述3份副本数据;
采用纠删码对所述3份副本数据进行编码,生成分片数据对应的1.5份副本数据;将所述1.5份副本数据写入分布式文件系统中。
4.根据权利要求3所述的方法,其特征在于,所述处理请求为读取请求,以及
所述基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对所述处理请求进行处理,得到处理结果包括:
利用主分片模块基于所述数据标识对应的哈希值,从所述主分片模块对应的哈希表中的所述哈希值对应的位置上查找出与所述数据标识对应的数据索引;基于所述数据索引,从分布式文件系统中读取所述分片数据。
5.根据权利要求4所述的方法,其特征在于,所述处理请求为读取请求,以及
所述基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对所述处理请求进行处理,得到处理结果包括:
利用所述主分片模块对应的从分片模块基于所述数据标识对应的哈希值,从所述从分片模块对应的哈希表中的所述哈希值对应的位置上查找出与所述数据标识对应的数据索引;基于所述数据索引,从分布式文件系统中读取所述分片数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
利用所述从分片模块每间隔读取周期读取所述日志文件中的所述主分片模块对应的增量信息,所述增量信息指示相较于上一读取周期新增加的数据标识和数据索引;
基于所述增量信息,更新所述从分片模块对应的哈希表。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述主分片模块出现故障时,将所述主分片模块对应的从分片模块切换为主分片模块,以对所述处理请求进行处理。
8.一种数据读写方法,其特征在于,所述方法包括:
接收客户端发送的查询请求,所述查询请求包括待处理的分片数据对应的数据标识;
基于所述数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器,以使所述客户端可向所述分片服务器发送对分片数据的处理请求对待处理的分片数据进行处理,其中,每一个分片服务器预先对应多个哈希值区间;
其中,所述基于所述数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器,包括:
将主分片模块或所述主分片模块所对应的从分片模块所在的分片服务器确定为用于对所述分片数据进行处理的分片服务器,其中,所述主分片模块和所述从分片模块是基于所述数据标识对应的哈希值所处的哈希值区间确定的,所述主分片模块和所述从分片模块位于不同的分片服务器。
9.根据权利要求8所述的方法,其特征在于,所述基于所述数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器包括:基于所述数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的主分片模块或所述主分片模块对应的从分片模块,其中,每一个主分片模块与所述从分片模块预先均对应一个相同的哈希值区间;基于主分片模块或从分片模块与分片服务器的对应关系表,确定所述主分片模块或从分片模块所在的分片服务器。
10.一种数据读写方法,其特征在于,所述方法包括:
接收对分片数据的处理指令,向主控服务器发送查询请求,所述查询请求包括所述分片数据的数据标识;
向分片服务器发送对分片数据的处理请求,所述分片服务器为经由所述主控服务器基于所述分片数据的数据标识而确定的分片服务器,其中,所述分片服务器利用主分片模块或所述主分片模块所对应的从分片模块对所述处理请求进行处理,所述主分片模块和所述从分片模块是基于所述数据标识对应的哈希值所处的哈希值区间确定的,所述主分片模块和所述从分片模块位于不同的分片服务器;
接收所述分片服务器返回的对所述处理请求进行处理之后得到的处理结果。
11.一种分布式存储系统,其特征在于,所述系统包括:
客户端,配置用于接收对分片数据的处理指令,向主控服务器发送查询请求,所述查询请求包括所述分片数据的数据标识;向分片服务器发送对分片数据的处理请求,所述分片服务器为经由所述主控服务器基于所述分片数据的数据标识而确定的分片服务器;接收所述分片服务器返回的对所述处理请求进行处理之后得到的处理结果;
主控服务器,配置用于接收客户端发送的查询请求,所述查询请求包括待处理的分片数据对应的数据标识;基于所述数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的分片服务器,以使所述客户端可向所述分片服务器发送对分片数据的处理请求对待处理的分片数据进行处理,其中,每一个分片服务器预先对应多个哈希值区间;
分片服务器,配置用于接收客户端发送的对分片数据的包含所述分片数据的数据标识的处理请求,所述处理请求包括:写入请求、读取请求;基于预先加载在内存中的指示所述分片数据的数据标识与数据索引的对应关系的哈希表,对所述处理请求进行处理,得到处理结果,所述数据索引包括所述分片数据在分布式文件系统中的存储位置;将所述处理结果发送至所述客户端;
其中,所述分片服务器进一步配置用于:
利用主分片模块或所述主分片模块所对应的从分片模块对所述处理请求进行处理,其中,所述主分片模块和所述从分片模块是基于所述数据标识对应的哈希值所处的哈希值区间确定的,所述主分片模块和所述从分片模块位于不同的分片服务器。
12.根据权利要求11所述的系统,其特征在于,所述分片服务器包括:
主分片模块,配置用于当所述处理请求为写入请求时,将所述分片数据写入分布式文件系统中,得到所述分片数据对应的数据索引;将所述数据标识和所述数据索引写入分布式文件系统中的日志文件,并且基于所述数据标识和所述数据索引,更新所述主分片模块对应的所述哈希表。
13.根据权利要求12所述的系统,其特征在于,所述主分片模块进一步配置用于:对分片数据进行复制生成分片数据对应的3份副本数据,以追加写方式向分布式文件系统写入所述3份副本数据;采用纠删码对所述3份副本数据进行编码,生成分片数据对应的1.5份副本数据;将所述1.5份副本数据写入分布式文件系统中。
14.根据权利要求13所述的系统,其特征在于,所述主分片模块进一步配置用于:当所述处理请求为读取请求时,基于所述数据标识对应的哈希值,从所述主分片模块对应的哈希表中的所述哈希值对应的位置上查找出与所述数据标识对应的数据索引;基于所述数据索引,从分布式文件系统中读取所述分片数据。
15.根据权利要求14所述的系统,其特征在于,所述分片服务器还包括:
从分片模块,配置用于当所述处理请求为读取请求时,基于所述数据标识对应的哈希值,从所述从分片模块对应的哈希表中的所述哈希值对应的位置上查找出与所述数据标识对应的数据索引;基于所述数据索引,从分布式文件系统中读取所述分片数据。
16.根据权利要求15所述的系统,其特征在于,所述从分片模块进一步配置用于:每间隔读取周期读取所述日志文件中的所述主分片模块对应的增量信息,所述增量信息指示相较于上一读取周期新增加的数据标识和数据索引;基于所述增量信息,更新所述从分片模块对应的哈希表。
17.根据权利要求16所述的系统,其特征在于,当所述主分片模块出现故障时,将所述主分片模块对应的从分片模块切换为主分片模块,以对所述处理请求进行处理。
18.根据权利要求17所述的系统,其特征在于,所述主控服务器进一步配置用于:基于所述数据标识对应的哈希值所处的哈希值区间,确定用于对待处理的分片数据进行处理的主分片模块或所述主分片模块对应的从分片模块,其中,每一个主分片模块与所述从分片模块预先均对应一个相同的哈希值区间;基于主分片模块或从分片模块与分片服务器的对应关系表,确定所述主分片模块或从分片模块所在的分片服务器。
CN201510616481.3A 2015-09-24 2015-09-24 数据读写方法及分布式存储系统 Active CN105260136B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510616481.3A CN105260136B (zh) 2015-09-24 2015-09-24 数据读写方法及分布式存储系统
US15/535,007 US11537659B2 (en) 2015-09-24 2015-12-03 Method for reading and writing data and distributed storage system
PCT/CN2015/096235 WO2017049764A1 (zh) 2015-09-24 2015-12-03 数据读写方法及分布式存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510616481.3A CN105260136B (zh) 2015-09-24 2015-09-24 数据读写方法及分布式存储系统

Publications (2)

Publication Number Publication Date
CN105260136A CN105260136A (zh) 2016-01-20
CN105260136B true CN105260136B (zh) 2019-04-05

Family

ID=55099843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510616481.3A Active CN105260136B (zh) 2015-09-24 2015-09-24 数据读写方法及分布式存储系统

Country Status (3)

Country Link
US (1) US11537659B2 (zh)
CN (1) CN105260136B (zh)
WO (1) WO2017049764A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260136B (zh) * 2015-09-24 2019-04-05 北京百度网讯科技有限公司 数据读写方法及分布式存储系统
CN107046552B (zh) * 2016-02-05 2020-10-23 华为技术有限公司 基于心跳的数据同步装置、方法及分布式存储系统
CN107153671B (zh) * 2016-03-02 2020-11-24 阿里巴巴集团控股有限公司 一种在分布式系统中实现多文件副本读写的方法与设备
US10621041B2 (en) * 2016-03-25 2020-04-14 Intel Corporation Methods and apparatus to assign indices and relocate object fragments in distributed storage systems
US10896178B2 (en) * 2016-03-30 2021-01-19 Microsoft Technology Licensing, Llc High performance query processing and data analytics
CN105869057B (zh) * 2016-04-07 2020-10-09 腾讯科技(深圳)有限公司 评论存储设备、评论读取、评论写入方法及装置
CN107436725B (zh) 2016-05-25 2019-12-20 杭州海康威视数字技术股份有限公司 一种数据写、读方法、装置及分布式对象存储集群
WO2018032510A1 (zh) * 2016-08-19 2018-02-22 华为技术有限公司 应用于存储设备中的访问请求的处理方法和装置
CN106686095A (zh) * 2016-12-30 2017-05-17 郑州云海信息技术有限公司 一种基于纠删码技术的数据存储方法及装置
CN108304396A (zh) * 2017-01-11 2018-07-20 北京京东尚科信息技术有限公司 数据存储方法和装置
JP6838455B2 (ja) * 2017-03-24 2021-03-03 住友電気工業株式会社 スイッチ装置、通信制御方法および通信制御プログラム
CN108287706B (zh) * 2017-05-10 2021-09-14 腾讯科技(深圳)有限公司 数据处理方法及装置
CN107346258A (zh) * 2017-07-06 2017-11-14 北京微影时代科技有限公司 一种数据读写分离方法及装置
CN108427696A (zh) * 2017-08-12 2018-08-21 中民筑友科技投资有限公司 一种基于bim的设计文件的获取方法及装置
CN108228799B (zh) * 2017-12-29 2021-09-28 北京奇虎科技有限公司 对象索引信息的存储方法及装置
CN109992196B (zh) * 2017-12-29 2022-05-17 杭州海康威视数字技术股份有限公司 索引数据的存储方法及装置、存储系统
US10855767B1 (en) * 2018-03-05 2020-12-01 Amazon Technologies, Inc. Distribution of batch data to sharded readers
US10860614B2 (en) * 2018-03-19 2020-12-08 Landis+Gyr Innovations, Inc. Partitioning data in a clustered database environment
US10671370B2 (en) * 2018-05-30 2020-06-02 Red Hat, Inc. Distributing file system states
CN109241015B (zh) * 2018-07-24 2021-07-16 北京百度网讯科技有限公司 用于在分布式存储系统中写入数据的方法
CN109271360A (zh) * 2018-08-03 2019-01-25 北京城市网邻信息技术有限公司 分布式对象存储数据冗余方法、装置、设备及存储介质
CN110958211B (zh) * 2018-09-27 2022-05-27 安徽华峪文化科技有限公司 一种基于区块链的数据处理系统及方法
CN111290700A (zh) * 2018-12-10 2020-06-16 北京京东尚科信息技术有限公司 分布式数据读写方法和系统
CN109635948A (zh) * 2018-12-19 2019-04-16 北京达佳互联信息技术有限公司 在线训练方法、装置、系统及计算机可读存储介质
CN109634917A (zh) * 2018-12-24 2019-04-16 成都四方伟业软件股份有限公司 数据读取方法及装置
CN109992209B (zh) * 2019-03-29 2023-02-03 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
CN111913925B (zh) * 2019-05-08 2023-08-18 厦门网宿有限公司 一种分布式存储系统中的数据处理方法及系统
CN110377611B (zh) * 2019-07-12 2022-07-15 北京三快在线科技有限公司 积分排名的方法及装置
CN110505314B (zh) * 2019-09-26 2022-11-25 浪潮电子信息产业股份有限公司 一种并发追加上传请求的处理方法
CN112905531B (zh) * 2019-11-19 2022-11-15 千寻位置网络有限公司 Gnss离线数据的存储方法、系统及调用方法
CN111061431B (zh) * 2019-11-28 2023-06-23 曙光信息产业股份有限公司 一种分布式存储方法、服务器及客户端
CN113010475A (zh) * 2019-12-20 2021-06-22 百度在线网络技术(北京)有限公司 用于存储轨迹数据的方法和装置
CN111209254A (zh) * 2020-01-10 2020-05-29 Oppo(重庆)智能科技有限公司 文件指纹获取方法、装置、电子设备以及存储介质
CN111563083B (zh) * 2020-04-30 2023-04-28 中国银行股份有限公司 报表数据查询方法、装置及系统
CN112100152A (zh) * 2020-09-14 2020-12-18 广州华多网络科技有限公司 业务数据处理方法、系统、服务器和可读存储介质
CN112540731B (zh) * 2020-12-22 2023-08-11 北京百度网讯科技有限公司 数据的追加写方法、装置、设备、介质和程序产品
CN113190384B (zh) * 2021-05-21 2022-07-22 重庆紫光华山智安科技有限公司 基于纠删码的数据恢复控制方法、装置、设备及介质
CN113612705B (zh) * 2021-08-02 2023-08-22 广西电网有限责任公司 基于哈希算法分片及重组的电网监控系统数据传输方法
CN113485874B (zh) * 2021-09-07 2021-11-23 联想凌拓科技有限公司 数据处理方法及分布式存储系统
CN113986944B (zh) * 2021-12-29 2022-03-25 天地伟业技术有限公司 分片数据的写入方法、系统及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072160A (zh) * 2007-06-14 2007-11-14 华为技术有限公司 分布式虚拟环境的管理方法、系统及节点
CN101355591A (zh) * 2008-09-12 2009-01-28 中兴通讯股份有限公司 一种p2p网络及其调度方法
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524872A (ja) * 2003-04-25 2006-11-02 ザ トムソン コーポレーション 分散型検索方法、アーキテクチャ、システム、およびソフトウェア
US8392400B1 (en) * 2005-12-29 2013-03-05 Amazon Technologies, Inc. Method and apparatus for stress management in a searchable data service
US20080215849A1 (en) * 2007-02-27 2008-09-04 Thomas Scott Hash table operations with improved cache utilization
US7693813B1 (en) * 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US8799264B2 (en) * 2007-12-14 2014-08-05 Microsoft Corporation Method for improving search engine efficiency
US8229945B2 (en) * 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
CN102479155B (zh) * 2010-11-30 2014-07-02 国际商业机器公司 用于网络应用服务器系统的内存过载管理的方法和系统
WO2012072879A1 (en) * 2010-11-30 2012-06-07 Nokia Corporation Method and apparatus for updating a partitioned index
US8468548B2 (en) * 2010-12-17 2013-06-18 Microsoft Corporation Multi-tenant, high-density container service for hosting stateful and stateless middleware components
US10489412B2 (en) * 2012-03-29 2019-11-26 Hitachi Vantara Corporation Highly available search index with storage node addition and removal
CN104380690B (zh) * 2012-06-15 2018-02-02 阿尔卡特朗讯 用于推荐服务的隐私保护系统的架构
US20140108421A1 (en) * 2012-10-04 2014-04-17 Codefutures Corporation Partitioning database data in a sharded database
US9229983B2 (en) * 2012-11-30 2016-01-05 Amazon Technologies, Inc. System-wide query optimization
US9590852B2 (en) * 2013-02-15 2017-03-07 Facebook, Inc. Server maintenance system
US11841844B2 (en) * 2013-05-20 2023-12-12 Amazon Technologies, Inc. Index update pipeline
US9405783B2 (en) * 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
CN103678523B (zh) 2013-11-28 2018-03-09 华为技术有限公司 分布式高速缓存cache数据访问方法和装置
US20150234669A1 (en) * 2014-02-17 2015-08-20 Strato Scale Ltd. Memory resource sharing among multiple compute nodes
US20160077744A1 (en) * 2014-09-11 2016-03-17 Netapp, Inc. Deferred reference count update technique for low overhead volume metadata
CN105260136B (zh) * 2015-09-24 2019-04-05 北京百度网讯科技有限公司 数据读写方法及分布式存储系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072160A (zh) * 2007-06-14 2007-11-14 华为技术有限公司 分布式虚拟环境的管理方法、系统及节点
CN101355591A (zh) * 2008-09-12 2009-01-28 中兴通讯股份有限公司 一种p2p网络及其调度方法
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统

Also Published As

Publication number Publication date
CN105260136A (zh) 2016-01-20
US11537659B2 (en) 2022-12-27
WO2017049764A1 (zh) 2017-03-30
US20180203942A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
CN105260136B (zh) 数据读写方法及分布式存储系统
CN109254733B (zh) 用于存储数据的方法、装置和系统
US10558615B2 (en) Atomic incremental load for map-reduce systems on append-only file systems
CN103544153B (zh) 一种基于数据库的数据更新方法和系统
US11487714B2 (en) Data replication in a data analysis system
CN111414389B (zh) 一种数据处理方法、装置、电子设备及存储介质
US9851920B2 (en) System and method for removing hash table entries
CN107193503B (zh) 一种数据重删方法及存储设备
CN110399333B (zh) 删除快照的方法、设备和计算机程序产品
CN111090663A (zh) 事务并发控制方法、装置、终端设备及介质
CN106878370A (zh) 一种本地缓存的更新方法和设备
CN104423982A (zh) 请求的处理方法和处理设备
CN108205482B (zh) 文件挂载恢复方法
CN112306993A (zh) 基于Redis的数据读取方法、装置、设备及可读存储介质
CN111651286A (zh) 数据通信方法、装置及计算设备、存储介质
CN110245129B (zh) 一种分布式全局数据去重方法和装置
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter
US20170235781A1 (en) Method, server and computer program stored in computer readable medium for managing log data in database
US8572048B2 (en) Supporting internal consistency checking with consistency coded journal file entries
CN111984379B (zh) 读写事务控制方法、系统、终端设备及存储介质
CN107430546A (zh) 一种文件更新方法及存储设备
CN109542860B (zh) 基于hdfs的业务数据管理方法、终端设备
US10942912B1 (en) Chain logging using key-value data storage
KR101797482B1 (ko) 데이터베이스 시스템에서 블록 복구 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램
CN105279166A (zh) 文件管理方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant