CN104050250A - 一种分布式键-值查询方法和查询引擎*** - Google Patents

一种分布式键-值查询方法和查询引擎*** Download PDF

Info

Publication number
CN104050250A
CN104050250A CN201410256925.2A CN201410256925A CN104050250A CN 104050250 A CN104050250 A CN 104050250A CN 201410256925 A CN201410256925 A CN 201410256925A CN 104050250 A CN104050250 A CN 104050250A
Authority
CN
China
Prior art keywords
node
routing table
memory node
table information
client
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
Application number
CN201410256925.2A
Other languages
English (en)
Other versions
CN104050250B (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 Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410256925.2A priority Critical patent/CN104050250B/zh
Priority claimed from CN201110460494.8A external-priority patent/CN102591970B/zh
Publication of CN104050250A publication Critical patent/CN104050250A/zh
Application granted granted Critical
Publication of CN104050250B publication Critical patent/CN104050250B/zh
Expired - Fee Related 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种分布式键-值查询引擎***和查询方法,该***包括:元数据服务器、至少一个代理节点和至少一个存储节点;其中,所述元数据服务器,用于维护指向存储节点的全局路由表信息;所述代理节点包括:查询转发模块,用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;数据转发模块,用于将相应存储节点返回的包括目标Value的回应包传送给客户端;所述存储节点,用于基于接收到的客户端请求,从本地存储中获取所需数据,并发送包括目标Value的回应包给代理节点。本发明能够实现键-值数据的分布式存储和查询,并且能够容纳海量键-值数据,对高并发访问的适应性更强。

Description

一种分布式键-值查询方法和查询引擎***
本发明专利申请是申请日为2011年12月31日、申请号为201110460494.8、名称为“一种分布式键-值查询方法和查询引擎***”的中国发明专利申请的分案申请。
技术领域
本申请涉及分布式数据存储和查询技术领域,特别是涉及一种分布式键-值查询方法和查询引擎***。
背景技术
对于大规模互联网应用、云计算的支撑而言,一般会使用关系型数据库存储相关数据。
传统的关系型数据库,通常将某一个应用的某一类信息(例如网站用户信息)都存储在数据库***的单个库单张表中,对应用程序提供读取和写入操作的通讯接口。实现上,典型的关系型数据库如MySQL,单表的查询和写入操作有一定上限,超过这个上限,SQL查询和写入操作将会变得非常缓慢,磁盘输入/输出(IO)模块也会出现瓶颈。在互联网海量数据的今天,传统关系型数据库要承载海量数据,通常的做法就是将数据分成多个库多个表存储,例如网站用户信息数据,可以按取模算法对用户标识(user_id)字段计算哈希(hash)值,将不同的用户数据分片到不同数据库,以此来解决单库单表的存储和读写压力问题。
也就是说,传统的关系型数据库,为支持大容量数据,需要将数据水平拆分到多个库多张表上,确保单张表的记录数是有限的。这样的好处在于减小了索引文件的大小,从而提升查询性能。
但是,传统的关系型数据库,倾向于使用单台机器来解决存储容量的问题。若要扩容到多台机器,需要在应用层做数据拆分策略。这里存在两个问题,一个是对于每个应用,都需要应用层做数据拆分,且每个应用拆分策略都会有不同,效率低;另一个问题是增加机器后的数据重新拆分代价很高,需要人工停机维护操作,不支持自动弹性扩展。
其次,传统的关系型数据库,单台机器的并发能力有一定上限,高并发的访问会将机器资源耗尽。不能支持高并发访问的原因之一是关系型数据库在检索时需要做SQL解析操作,对CPU资源的开销大。
总之,目前需要本领域技术人员迫切解决的一个技术问题是:如何能够提供一种能够容纳海量数据、适应高并发访问的更加优化的存储/查询方案。
发明内容
本申请所要解决的技术问题是提供一种分布式键-值查询方法和查询引擎***,能够容纳海量键-值数据,对高并发访问的适应性更强。
为了解决上述问题,本申请公开了一种分布式键-值查询引擎***,具体可以包括:
元数据服务器,用于维护指向存储节点的全局路由表信息;
至少一个代理节点,包括:
查询转发模块,用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;
数据转发模块,用于将相应存储节点返回的包括目标Value的回应包传送给客户端;
至少一个存储节点,用于基于接收到的客户端请求,从本地存储中获取所需数据,并发送包括目标Value的回应包给代理节点。
优选的,所述代理节点还可以包括:路由表同步模块,用于将元数据服务器的全局路由表信息同步至本地;其中,所述查询转发模块基于本地的全局路由表信息进行查询。
优选的,所述代理节点还可以包括:路由表更新模块,用于当收到元数据服务器的路由表更新通知时,从元数据服务器获取新的全局路由表信息。
优选的,所述查询转发模块具体包括:哈希子模块,用于基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;定位子模块,用于依据计算得到的目标KEY所在的数据区块的标识,查询所述全局路由表信息,定位相应的存储节点;转发子模块,用于将客户端请求转发至相应存储节点。
优选的,所述元数据服务器还可以包括:数据同步模块,用于通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;路由表变更模块,用于当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;第一更新通知模块,用于向代理节点发送路由表更新通知。
优选的,所述元数据服务器还可以包括:监控模块,用于监控各存储节点的存活状态,当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;第二更新通知模块,用于向代理节点发送路由表更新通知。
优选的,所述存储节点可以包括:用于存储热点数据的高速存储节点,和用于存储非热点数据的其他类型存储节点;其中,所述高速存储节点包括内存节点或者固态硬盘节点,所述其他类型存储节点包括SAS/SATA硬盘节点。
依据本发明的另一实施例,还公开了一种分布式键-值查询方法,具体可以包括:接收客户端指向当前代理节点的包括目标KEY的请求;当前代理节点通过查询全局路由表信息,将客户端请求转发给相应的存储节点;当前代理节点将相应存储节点返回的包括目标Value的回应包传送给客户端。
优选的,所述分布式键-值查询方法还可以包括:当前代理节点通过异步线程将维护在服务器上的全局路由表信息同步至本地,在本地进行对全局路由表信息的查询。
优选的,所述分布式键-值查询方法还可以包括:当收到路由表更新通知时,获取新的全局路由表信息。
优选的,所述当前代理节点通过查询全局路由表信息,将客户端请求转发给相应的存储节点的过程具体包括:基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;依据计算得到的目标KEY所在的数据区块标识,查询所述全局路由表信息,定位相应的存储节点;将客户端请求转发给相应的存储节点。
依据本发明的另一实施例,还公开了一种分布式键-值(Key-Value)查询引擎***的故障转移方法,包括:监测各存储节点是否存活;其中,同一个数据区块存储在一个存储主节点和至少一个存储冗余节点上;当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;将新的全局路由表信息更新至各代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
依据本发明的另一实施例,还公开了一种分布式键-值(Key-Value)查询引擎***的增加物理存储节点方法,包括:接收新增存储节点的注册请求;依据新增存储节点的属性参数,通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;将新的全局路由表信息更新至代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
优选的,该方法,在接收新增存储节点的注册请求之后,还包括:如果所述新增存储节点为合法工作节点,则进入下一步,否则,拒绝所述新增存储节点的加入。
优选的,该方法,在将新的全局路由表信息更新至代理节点之后,还包括:在所选定的存储节点的空闲时间,逐步删除其所存储的已同步到所述新增存储节点的所述N个数据区块。
依据本发明的另一实施例,还公开了一种元数据服务器,包括:
存储模块,用于存储反映目标KEY和存储节点映射关系的全局路由表信息;
全局路由表信息同步模块,用于将所述全局路由表信息同步到至少一个代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
优选的,元数据服务器还可以包括:数据同步模块,用于依据新增存储节点的属性参数,通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;路由表变更模块,用于当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;第一更新通知模块,用于向代理节点发送路由表更新通知。
优选的,元数据服务器还可以包括:监控模块,用于监控各存储节点的存活状态,当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;第二更新通知模块,用于向代理节点发送路由表更新通知。
依据本发明的另一实施例,还公开了一种代理节点,可以包括:
查询转发模块,用于响应客户端发出的包括目标KEY的请求,通过查询全局路由表信息,将客户端请求转发给相应的存储节点;
数据转发模块,用于将相应存储节点返回的包括目标Value的回应包传送给客户端。
优选的,所述的代理节点还可以包括:路由表同步模块,用于将服务器上的全局路由表信息同步至本地;其中,所述查询转发模块基于本地的全局路由表信息进行查询。
优选的,所述的代理节点还可以包括:路由表更新模块,用于当收到路由表更新通知时,获取新的全局路由表信息。
优选的,所述查询转发模块具体包括:
哈希子模块,用于基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;
定位子模块,用于依据计算得到的目标KEY所在的数据区块标识,查询所述全局路由表信息,定位相应的存储节点;
转发子模块,用于将客户端请求转发至相应存储节点。
与现有技术相比,本申请具有以下优点:
本发明提出了一种新的分布式键-值查询引擎架构,采用该架构的查询引擎***和查询方法,能够实现键-值数据的分布式存储和查询,并且能够容纳海量键-值数据,对高并发访问的适应性更强。
其中,由于本发明采用了全局路由表信息,客户端的数据请求可以通过查询全局路由表进而找到相应的存储物理节点,然后获取所需数据即可。因此,当需要增加物理存储节点时,只需要将该物理存储节点增加的信息更新至全局路由表即可,可以实现平滑增加或者减少物理存储节点的个数,无须停止服务。相比较而言,现有技术针对存储节点并没有全局路由表,而是在应用层做数据拆分策略,增加存储节点后的数据重新拆分代价很高,需要人工停机维护操作,不支持自动弹性扩展。
另外,由于本发明将存储和查询架构优化为分布式键-值(Key-Value)结构,可以避免采用SQL数据库的复杂查询方式,提高查询速度,故而大大提高了并发访问的强度,尤其适用于确定某个应用程序或者某个网址是否有害的信息存储和查询;例如,尤其适用于木马云查杀、网址云查杀以及云安全中心数据索引等场合。再者,由于本发明并不是直接由元数据服务器来对全局路由表进行处理,而是由代理节点接收用户请求,并对同步至代理节点本地的全局路由表进行查询处理,这样,就可以将高并发的用户请求分散到多个代理节点上,由其同时进行查询处理,从而也大大提高了高并发访问的处理能力。
附图说明
图1是本发明一种分布式键-值查询引擎***实施例的模块示意图;
图2是本发明一种分布式键-值查询方法实施例的步骤流程图;
图3是本发明一种故障转移方法的步骤流程图;
图4是本发明一种增加物理存储节点的方法的步骤流程图;
图5是本发明一种优选的分布式KEY-VALUE查询引擎***的结构示意图;
图6是一种KEY和VBucket之间,VBucket和物理存储节点之间的映射关系示意图;
图7是本发明一种元数据服务器实施例的模块示意图;
图8是本发明一种代理节点实施例的模块示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本发明一种分布式键-值查询引擎***实施例,具体可以包括:
元数据服务器101,用于维护指向存储节点的全局路由表信息;所述维护可以包括存储以及相应的修改更新等;
至少一个代理节点102,在图1中示出了X个代理节点,每个代理节点可以包括:
查询转发模块,用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;
数据转发模块,用于将相应存储节点返回的包括目标Value的回应包传送给客户端;
至少一个存储节点103,用于基于接收到的客户端请求,从本地存储中获取所需数据,并发送包括目标Value的回应包给代理节点。在图1中示出了Y个存储节点。
采用上面的查询引擎***,能够容纳更加海量的键-值数据,对高并发访问的适应性更强。其中,元数据服务器101中的全局路由表信息存储有目标KEY→存储节点的映射关系。当然,该映射关系可以是直接映射,也可以是间接映射,在本发明的后面实施例描述中,会给出一个间接映射的优选实现。
在本发明的一个优先实施方式中,所述代理节点102还可以包括:路由表同步模块,用于将元数据服务器的全局路由表信息同步至本地;其中,所述查询转发模块基于本地的全局路由表信息进行查询。这样,可以避免每次查询代理节点都到元数据服务器去请求查询。同时,由于代理节点可以设置多个,从而可以实现路由查询的并发执行,提高对高并发访问的适应性。当然,具体同步的时间不需要加以限定,例如,在代理节点开机时同步即可;同时,也可以在固定时刻进行同步,以防止没有收到更新通知的情况。
在本发明的一个优先实施方式中,所述代理节点102还可以包括:路由表更新模块,用于当收到元数据服务器的路由表更新通知时,从元数据服务器获取新的全局路由表信息。当出现某个存储节点故障或者新增存储节点时,元数据服务器上维护的全局路由表信息都会发生变化,因而,此时可以通过路由表更新模块更新全局路由表信息。
需要说明的是,存储节点可以采用各种存储介质。例如要求低延迟高并发的内存哈希表存储引擎,或者容量较高但响应延迟尚可、并发能力一般的固态硬盘(SSD,Solid State Disk)存储引擎,或者大容量、但响应延迟高、并发能力差的SAS(Serial attached SCSI)/SATA(Serial AdvancedTechnology Attachment)存储引擎。本发明的存储节点作为“引擎”而言,可以具有接受请求和返回数据的执行能力,当然,还可以具有新增、查找、更新、删除(CRUD)数据等的执行能力。
在本发明的一个优选实现中,建议采用多级混合存储引擎。具体的,所述至少一个存储节点包括:用于存储热点数据的高速存储节点,和用于存储非热点数据的其他类型存储节点;其中,所述高速存储节点包括内存节点或者固态硬盘节点,所述其他类型存储节点包括SAS/SATA硬盘节点。即基于不同数据的情况,采用不同的存储介质来组成多级混合存储引擎,以达到最优效果。
下面本发明给出一种具体的针对客户端请求查询、定位和转发的实现。其中,所述查询转发模块具体可以包括:哈希子模块,用于基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;定位子模块,用于依据计算得到的目标KEY所在的数据区块的标识,查询所述全局路由表信息,定位相应的存储节点;转发子模块,用于将客户端请求转发至相应存储节点。
与采用直接映射-查表的方式相比,固定哈希的方法可以有效减少路由表的大小,提高查询效率。具体的,通常KEY的取值范围很大,假设KEY的组成为128位MD5哈希值,如果使用直接映射-查表方法,路由表最多需要由2^128条“KEY-存储节点”映射关系组成,这个是实现中是不现实的。采用哈希算法计算数据区块,再通过数据区块定位存储节点这种间接映射的方法,可以有效减少路由表的大小。
在某些情况下,存储节点可能需要增加。则为了在该情形下更好的管理路由,所述元数据服务器还可以包括:数据同步模块,用于通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;路由表变更模块,用于当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;第一更新通知模块,用于向代理节点发送路由表更新通知。
在实际应用中,也可能出现某个存储节点出现故障失效的情况,则为了及时应对这种情况,所述元数据服务器还包括:监控模块,用于监控各存储节点的存活状态,当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;第二更新通知模块,用于向代理节点发送路由表更新通知。
参照图2,示出了本发明一种分布式键-值查询方法实施例,具体可以包括:
步骤201、接收客户端指向当前代理节点的包括目标KEY的请求;
步骤202、当前代理节点通过查询全局路由表信息,将客户端请求转发给相应的存储节点;
步骤203、当前代理节点将相应存储节点返回的包括目标Value的回应包传送给客户端。
在该方法中,全局路由表信息可以存储在其他的服务器上,也可以直接存储在代理节点上,例如,针对数据量不是特别海量的情况,采用少量甚至一个代理节点的情况,直接由代理节点来维护全局路由表信息也是可行的;在各个代理节点之间进行同步维护即可。
当然,优选的,为了提高代理节点处理并发访问的能力,还是采用在另外的服务器上单独维护全局路由表信息为佳。此时,当前代理节点可以通过异步线程将维护在服务器上的全局路由表信息同步至本地,在本地进行对全局路由表信息的查询。
优选的,在存储节点自身或者所存储位置变更时,上面的方法实施例还可以包括:当收到路由表更新通知时,获取新的全局路由表信息。
在本发明的一个优选实现中,全局路由表信息并非直接存储目标KEY→存储节点的直接映射关系,而是存储了一个间接映射关系“目标KEY所在的数据区块→存储节点”的,但是可以直接由目标KEY计算得到其所在的数据区块的标识,这样可以更好的提高全局路由表的查询速度。因为大多数情况下,标识查询要比“目标KEY”的查询要快的多。
在该实现方案中,所述当前代理节点通过查询全局路由表信息,将客户端请求转发给相应的存储节点的过程具体包括:基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;依据计算得到的目标KEY所在的数据区块标识,查询所述全局路由表信息,定位相应的存储节点;将客户端请求转发给相应的存储节点。
相应的,参照图3,本发明还提供了一种分布式键-值(Key-Value)查询引擎***的故障转移方法,专用于解决存储节点出现故障的情况,包括:
步骤301、监测各存储节点是否存活;其中,同一个数据区块存储在一个存储主节点和至少一个存储冗余节点上;
步骤302、当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;
步骤303、将新的全局路由表信息更新至各代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
传统的关系型数据库,例如MySQL,若数据库服务器出现故障,一般都需要数据库管理人员将对数据库的访问请求切换到备份服务器上。而本发明可以实现故障的平滑转移。
另外,参照图4,本发明还提供一种分布式键-值(Key-Value)查询引擎***的增加物理存储节点方法,可以包括:
步骤401、接收新增存储节点的注册请求;
步骤402、依据新增存储节点的属性参数,通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;
步骤403、当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;
步骤404、将新的全局路由表信息更新至代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
当然,为了保证对存储节点的管理和控制,还可以增加对存储节点的注册审核。例如,在接收新增存储节点的注册请求之后,还包括:如果所述新增存储节点为合法工作节点,则进入下一步,否则,拒绝所述新增存储节点的加入。
需要说明的是,如果已经将某些数据区块转移到新增的存储节点上了,则原存储节点上的这些数据区块则可以作为其冗余备份存在,并更新在全局路由表信息中。当然,原存储节点上的这些数据区块在冗余备份数量足够的情况下,也可以作为无效数据而删除,降低原存储节点的负荷。
例如,在将新的全局路由表信息更新至代理节点之后,还包括:在所选定的存储节点的空闲时间,逐步删除其所存储的已同步到所述新增存储节点的所述N个数据区块。
总之,对于图3和图4所提供的故障转移方法和增加物理存储节点方法,可以帮助本发明在分布式键-值(Key-Value)查询引擎***中平滑增加或者减少机器个数,无须停止服务。增减机器后,数据会自动在多台机器之间重新达到平滑点(例如通过主节点和冗余节点的配置实现平滑)。
参照图5,示出了本发明一种优选的分布式KEY-VALUE查询引擎***的结构示意图。
其中,示出了多个并发请求的客户端。客户端(Client)主要是用于发起请求。具体的,本发明可以支持多种语言的客户端(C/C++/Python/PHP等)。
元数据服务器(Config Server):负责维护全局路由表信息,并监控所有存储节点的存活状态,在存储节点失效和新增存储节点时,元数据服务器起着关键的协调作用。
代理节点(Storage Proxy):负责响应客户端的请求和请求的转发。根据元数据服务器上的路由表信息,代理节点可以将客户端的请求转发给下游的存储节点,并将存储节点的回应包递给客户端。
存储节点(Storage Node):负责数据的实际存储,可以有多种存储引擎供选择,例如要求低延迟高并发的内存哈希表存储引擎,或者容量较高但响应延迟尚可、并发能力一般的固态硬盘(SSD)存储引擎,或者大容量、但响应延迟高、并发能力差的SAS/SATA存储引擎,或者定制化的多级混合存储引擎。
在图5中,在客户端和存储节点之间,包括Nginx/UDP服务器和代理节点,当然,Nginx/UDP服务器通常只是分布式通讯***中所需要的一个传输设备而已,本领域技术人员也可以采用其他设备,甚至不采用。Nginx/UDP服务器和代理节点之间也不一定是一一对应的关系。
需要说明的是,在一个实体硬件中可能存在多个代理节点,本发明对此无需加以限制。并且在图5中还示出了数据区块冗余备份存储的情况。
具体的,图5给出了4个存储节点,其中,
存储节点a是数据区块_0的主节点,数据区块_1的主节点,数据区块_6的冗余节点,数据区块_7的冗余节点;
存储节点b是数据区块_0的冗余节点,数据区块_1的冗余节点,数据区块_2的主节点,数据区块_3的主节点;
存储节点c是数据区块_2的冗余节点,数据区块_3的冗余节点,数据区块_4的主节点,数据区块_5的主节点;
存储节点d是数据区块_4的冗余节点,数据区块_5的冗余节点,数据区块_6的主节点,数据区块_7的主节点;
这样的存储方式,包括保证在均匀分布的情况下,每个数据区块都可以存储在一个主节点上,也同时存储在一个冗余节点上。
即,各个物理存储节点都可以即做某几个VBucket(Virtual Bucket;数据逻辑分区区间,即数据区块的一种)的主节点,又做另外几个VBucket的冗余节点。存储节点上有独立线程,从主节点上同步所负责冗余VBucket的新增/修改数据。
在图5中,元数据服务器还可以配置有一个备份的服务器。
下面针对图5所示***,描述一个从客户端发起请求到收到查询引擎响应的完整流程的示例。
1)以GET请求为例,客户端向代理节点(Storage Proxy)发起单个KEY的GET请求,也可以是批量KEY的GET请求。
2)代理节点收到上游客户端的请求后,通过固定哈希算法(例如MD5)计算KEY所在的VBucket序号,即数据区块区号。
3)代理节点通过KEY所属的VBucket序号,查找全局路由表,定位物理存储节点(Storage Node)。实现上,查找全局路由表的过程不需要每次都请求元数据服务器(Config Server),而是代理节点通过一个异步线程将路由信息同步到本地。
4)代理服务器通过VBucket序号定位到的是一组物理存储节点,其中第一个节点是主节点,负责该VBucket的所有读取和写入请求,后续为冗余备份节点。代理服务器将客户端的GET请求转发给主节点。
5)物理存储节点接收到GET请求后,从本地存储引擎中取出KEY对应的数据,发送应答包给代理节点。
6)代理节点接收到物理存储节点的应答包后,将应答包返回给客户端。
参照图6,示出了KEY和VBucket之间,VBucket和物理存储节点之间的映射关系示意图。在KEY和VBucket之间,通过固定哈希的方式获取映射关系,在VBucket和物理存储节点之间,通过查表的方式获取映射关系。
下面描述一个物理存储节点失效的故障转移流程的示例。
1)A节点失效。
2)元数据服务器上有对所有物理存储节点存活状态的实时监控进程。当发现A节点失效时,即会修改路由表,将A节点作为主节点的VBucket,其主节点重新映射到下一个冗余节点上。
3)所有代理节点,都会从元数据服务器同步路由表信息。当发现路由表变更后,后续的请求将依据新的路由表来做路由。
下面描述一个增加一个物理存储节点的流程的示例。
1)新增物理存储节点B,B会向元数据服务器发送一个注册请求。
2)元数据服务器收到注册请求后,确认B是否是工作节点,若不是合法工作节点则拒绝,若是则进入下面新节点数据准备的流程。
3)假设之前有m个物理存储节点,而VBucket总数为vt,元数据服务器计算新加入节点可以承载的VBucket个数为number=abs(vt/m+1)。元数据服务器发起指令通知B从当前活跃的存储节点中同步number个(N个)VBucket。
4)新存储节点B完成VBucket数据同步,通知元数据服务器其准备完毕。
5)元数据服务器生成一张新的路由表。
6)代理节点收到元数据服务器的路由表更新通知,将后续请求依据新的路由表路由,至此,新物理节点B正式加到集群当中服务。
因为新增存储节点分担了VBucket,增加了***容量。在空闲时间,当前活跃的存储节点会逐步淘汰已经不属于自身的VBucket。
本发明实现了一个由多台机器组成,可容纳海量数据,并可以通过增加集群机器数量扩大集群数据规模,稳定可靠的键-值存储***,以及存储之上的适应高并发访问的网络模型。本发明具有以下的一些创新点:
本发明实现了基于一致性哈希算法的数据分布策略。集群内部有轻量级的元数据服务器,只存储全局路由表信息,即数据区块区号和存储物理节点的映射关系,对键的访问请求,会先根据哈希算法计算出数据区块区号,再通过全局路由表找到所负责的存储物理节点。
本发明的集群内部可以平滑增加或者减少机器个数,无须停止服务。增减机器后,数据会自动在多台机器之间重新达到平滑点。
本发明支持数据冗余存储。所有数据节点均可以同时作为其他节点的冗余节点。
本发明的集群对外可以采用支持高并发的网络访问接口,并可以通过增加代理节点和存储节点的数量提高整个集群的并发能力。代理节点对外通讯,代理节点和存储节点之间的内部通讯可以优选采用基于IO复用的TCP网络模型。
本发明还支持存储引擎的定制化。可以根据应用需求,选用内存存储引擎、或者固态硬盘存储引擎、或者SAS/SATA硬盘的存储引擎;或者可以选用混用的多级存储引擎,将热数据在高速设备(内存、固态硬盘)上缓存。
总之,本发明可以实现自动化的集群扩容,通过增加集群内部物理存储节点的数量,内部数据会自动转移到新的存储节点上,从而达到扩大集群的存储容量和并发访问能力的目的。本发明可以承载海量数据的存储和每日千亿级别的高并发访问。由其适用于木马云查杀服务、网址云查杀服务、云安全中心数据索引中心等相关安全产品和后台应用服务中。
参照图7示出了本发明一种元数据服务器实施例,作为本发明方案中的关键部件,其可以包括:
存储模块701,用于存储反映目标KEY和存储节点映射关系的全局路由表信息;
全局路由表信息同步模块702,用于将所述全局路由表信息同步到至少一个代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
在优选实现中,元数据服务器还可以包括:数据同步模块703,用于依据新增存储节点的属性参数,通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;路由表变更模块704,用于当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;第一更新通知模块705,用于向代理节点发送路由表更新通知。
对于具有故障转移功能的元数据服务器而言,其还可以包括:监控模块706,用于监控各存储节点的存活状态,当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;第二更新通知模块707,用于向代理节点发送路由表更新通知。
参照图8,示出了本发明一种代理节点实施例,作为本发明方案中的关键部件,其可以包括:
查询转发模块801,用于响应客户端发出的包括目标KEY的请求,通过查询全局路由表信息,将客户端请求转发给相应的存储节点;
数据转发模块802,用于将相应存储节点返回的包括目标Value的回应包传送给客户端。
在优选实现中,代理节点还可以包括:路由表同步模块803,用于将服务器上的全局路由表信息同步至本地;其中,所述查询转发模块基于本地的全局路由表信息进行查询。
在优选实现中,代理节点还可以包括:路由表更新模块804,用于当收到路由表更新通知时,获取新的全局路由表信息。当然,在具体实现中,也可以直接将路由表更新模块804的功能集成到路由表同步模块803中。
在本发明的一个优选实现方案中,所述查询转发模块801具体可以包括:
哈希子模块8011,用于基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;
定位子模块8012,用于依据计算得到的目标KEY所在的数据区块标识,查询所述全局路由表信息,定位相应的存储节点;
转发子模块8013,用于将客户端请求转发至相应存储节点。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请所提供的一种分布式键-值查询引擎***、分布式键-值查询方法、代理节点、元数据服务器、增加物理存储节点的方法和一种故障转移方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (22)

1.一种分布式键-值查询引擎***,其特征在于,包括:
元数据服务器,用于维护指向存储节点的全局路由表信息;
至少一个代理节点,包括:
查询转发模块,用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;
数据转发模块,用于将相应存储节点返回的包括目标Value的回应包传送给客户端;
至少一个存储节点,用于基于接收到的客户端请求,从本地存储中获取所需数据,并发送包括目标Value的回应包给代理节点。
2.根据权利要求1所述的***,其特征在于,所述代理节点还包括:
路由表同步模块,用于将元数据服务器的全局路由表信息同步至本地;
其中,所述查询转发模块基于本地的全局路由表信息进行查询。
3.根据权利要求2所述的***,其特征在于,所述代理节点还包括:
路由表更新模块,用于当收到元数据服务器的路由表更新通知时,从元数据服务器获取新的全局路由表信息。
4.根据权利要求1所述的***,其特征在于,所述查询转发模块具体包括:
哈希子模块,用于基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;
定位子模块,用于依据计算得到的目标KEY所在的数据区块的标识,查询所述全局路由表信息,定位相应的存储节点;
转发子模块,用于将客户端请求转发至相应存储节点。
5.根据权利要求1所述的***,其特征在于,所述元数据服务器还包括:
数据同步模块,用于通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;
路由表变更模块,用于当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;
第一更新通知模块,用于向代理节点发送路由表更新通知。
6.根据权利要求2或5所述的***,其特征在于,所述元数据服务器还包括:
监控模块,用于监控各存储节点的存活状态,当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;
第二更新通知模块,用于向代理节点发送路由表更新通知。
7.根据权利要求1所述的***,其特征在于,所述至少一个存储节点包括:
用于存储热点数据的高速存储节点,和用于存储非热点数据的其他类型存储节点;
其中,所述高速存储节点包括内存节点或者固态硬盘节点,所述其他类型存储节点包括SAS/SATA硬盘节点。
8.一种分布式键-值查询方法,其特征在于,包括:
接收客户端指向当前代理节点的包括目标KEY的请求;
当前代理节点通过查询全局路由表信息,将客户端请求转发给相应的存储节点;
当前代理节点将相应存储节点返回的包括目标Value的回应包传送给客户端。
9.如权利要求8所述的方法,其特征在于,还包括:
当前代理节点通过异步线程将维护在服务器上的全局路由表信息同步至本地,在本地进行对全局路由表信息的查询。
10.如权利要求8所述的方法,其特征在于,还包括:
当收到路由表更新通知时,获取新的全局路由表信息。
11.如权利要求8所述的方法,其特征在于,所述当前代理节点通过查询全局路由表信息,将客户端请求转发给相应的存储节点的过程具体包括:
基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;
依据计算得到的目标KEY所在的数据区块标识,查询所述全局路由表信息,定位相应的存储节点;
将客户端请求转发给相应的存储节点。
12.一种分布式键-值(Key-Value)查询引擎***的故障转移方法,其特征在于,包括:
监测各存储节点是否存活;其中,同一个数据区块存储在一个存储主节点和至少一个存储冗余节点上;
当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;
将新的全局路由表信息更新至各代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
13.一种分布式键-值(Key-Value)查询引擎***的增加物理存储节点方法,其特征在于,包括:
接收新增存储节点的注册请求;
依据新增存储节点的属性参数,通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;
当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;
将新的全局路由表信息更新至代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
14.如权利要求13所述的方法,其特征在于,在接收新增存储节点的注册请求之后,还包括:
如果所述新增存储节点为合法工作节点,则进入下一步,否则,拒绝所述新增存储节点的加入。
15.如权利要求13所述的方法,在将新的全局路由表信息更新至代理节点之后,还包括:
在所选定的存储节点的空闲时间,逐步删除其所存储的已同步到所述新增存储节点的所述N个数据区块。
16.一种元数据服务器,其特征在于,包括:
存储模块,用于存储反映目标KEY和存储节点映射关系的全局路由表信息;
全局路由表信息同步模块,用于将所述全局路由表信息同步到至少一个代理节点;所述代理节点用于响应客户端发出的包括目标KEY的请求,基于所述全局路由表信息,将客户端请求转发给相应的存储节点;以及将相应存储节点返回的包括目标Value的回应包传送给客户端。
17.根据权利要求16所述的元数据服务器,其特征在于,还包括:
数据同步模块,用于依据新增存储节点的属性参数,通知所述新增的存储节点从所选定的存储节点中同步N个数据区块;所述N由所述新增存储节点的属性参数计算得到;
路由表变更模块,用于当所述新增的存储节点完成数据同步后,生成新的全局路由表信息;
第一更新通知模块,用于向代理节点发送路由表更新通知。
18.根据权利要求16或17所述的元数据服务器,其特征在于,还包括:
监控模块,用于监控各存储节点的存活状态,当监测到一个存储节点失效时,修改全局路由表信息;所述修改包括:针对以该失效的存储节点作为主节点的数据区块,将其主节点重新映射到另一个冗余节点上;
第二更新通知模块,用于向代理节点发送路由表更新通知。
19.一种代理节点,其特征在于,包括:
查询转发模块,用于响应客户端发出的包括目标KEY的请求,通过查询全局路由表信息,将客户端请求转发给相应的存储节点;
数据转发模块,用于将相应存储节点返回的包括目标Value的回应包传送给客户端。
20.根据权利要求19所述的代理节点,其特征在于,还包括:
路由表同步模块,用于将服务器上的全局路由表信息同步至本地;
其中,所述查询转发模块基于本地的全局路由表信息进行查询。
21.根据权利要求20所述的代理节点,其特征在于,还包括:
路由表更新模块,用于当收到路由表更新通知时,获取新的全局路由表信息。
22.根据权利要求19所述的代理节点,其特征在于,所述查询转发模块具体包括:
哈希子模块,用于基于所接收的包括目标KEY的客户端请求,通过哈希算法计算目标KEY所在的数据区块;
定位子模块,用于依据计算得到的目标KEY所在的数据区块标识,查询所述全局路由表信息,定位相应的存储节点;
转发子模块,用于将客户端请求转发至相应存储节点。
CN201410256925.2A 2011-12-31 2011-12-31 一种分布式键-值查询方法和查询引擎*** Expired - Fee Related CN104050250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410256925.2A CN104050250B (zh) 2011-12-31 2011-12-31 一种分布式键-值查询方法和查询引擎***

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110460494.8A CN102591970B (zh) 2011-12-31 2011-12-31 一种分布式键-值查询方法和查询引擎***
CN201410256925.2A CN104050250B (zh) 2011-12-31 2011-12-31 一种分布式键-值查询方法和查询引擎***

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201110460494.8A Division CN102591970B (zh) 2011-12-31 2011-12-31 一种分布式键-值查询方法和查询引擎***

Publications (2)

Publication Number Publication Date
CN104050250A true CN104050250A (zh) 2014-09-17
CN104050250B CN104050250B (zh) 2018-06-05

Family

ID=51503082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410256925.2A Expired - Fee Related CN104050250B (zh) 2011-12-31 2011-12-31 一种分布式键-值查询方法和查询引擎***

Country Status (1)

Country Link
CN (1) CN104050250B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601720A (zh) * 2015-01-30 2015-05-06 乐视网信息技术(北京)股份有限公司 一种缓存访问控制方法及装置
CN105530162A (zh) * 2014-10-21 2016-04-27 中兴通讯股份有限公司 离线消息处理方法及装置
CN106254240A (zh) * 2016-09-18 2016-12-21 腾讯科技(深圳)有限公司 一种数据处理方法和路由层设备以及***
CN106453449A (zh) * 2015-08-06 2017-02-22 泰兴市智瀚科技有限公司 信息即时推送的方法和分布式***服务器
CN106817402A (zh) * 2016-11-29 2017-06-09 上海亿账通互联网科技有限公司 缓存数据的处理方法及装置
CN106878414A (zh) * 2017-02-14 2017-06-20 北京奇虎科技有限公司 数据写请求处理方法、装置及分布式数据存储***
CN104461817B (zh) * 2014-11-26 2017-08-11 华为技术有限公司 一种检测键的方法和服务器
CN108197498A (zh) * 2017-12-22 2018-06-22 中国联合网络通信集团有限公司 获取数据的方法及装置
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问***、方法及装置
CN108494835A (zh) * 2018-03-08 2018-09-04 郑州云海信息技术有限公司 基于Raft算法的分布式动态路由的实现方法及***
CN108829545A (zh) * 2018-07-02 2018-11-16 山东汇贸电子口岸有限公司 一种实现分布式数据库备份的方法
WO2019062856A1 (zh) * 2017-09-29 2019-04-04 杭州海康威视***技术有限公司 数据重构方法及装置、数据存储***
CN109933568A (zh) * 2019-03-13 2019-06-25 安徽海螺集团有限责任公司 一种工业大数据平台***及其查询方法
CN110198269A (zh) * 2018-04-03 2019-09-03 腾讯科技(深圳)有限公司 分布式机群的路由同步***、方法及相关装置
CN110275681A (zh) * 2019-06-27 2019-09-24 深圳前海微众银行股份有限公司 一种数据存储方法及数据存储***
CN110334543A (zh) * 2019-06-20 2019-10-15 广东技术师范大学天河学院 一种基于算力的区块链知识***及其使用方法
CN111581451A (zh) * 2019-03-28 2020-08-25 北京忆芯科技有限公司 分布式kv存储***的更新与查询
CN112448985A (zh) * 2019-09-02 2021-03-05 阿里巴巴集团控股有限公司 分布式***、网络处理方法和装置以及电子设备
CN112995285A (zh) * 2018-03-29 2021-06-18 北京忆芯科技有限公司 基于区块技术的分布式kv存储***
CN113065054A (zh) * 2021-03-31 2021-07-02 北京达佳互联信息技术有限公司 请求处理方法、装置、电子设备及存储介质
CN113542382A (zh) * 2018-03-30 2021-10-22 北京忆芯科技有限公司 云计算与雾计算***中的kv存储设备
CN115934006A (zh) * 2023-03-14 2023-04-07 北京志凌海纳科技有限公司 Io接入点和数据处理任务管理方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170416A (zh) * 2006-10-26 2008-04-30 阿里巴巴公司 网络数据存储***及其数据访问方法
CN101232422A (zh) * 2008-01-18 2008-07-30 北京交通大学 一种基于网格技术的网络存储***
CN102201010A (zh) * 2011-06-23 2011-09-28 清华大学 无共享架构的分布式数据库***及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170416A (zh) * 2006-10-26 2008-04-30 阿里巴巴公司 网络数据存储***及其数据访问方法
CN101232422A (zh) * 2008-01-18 2008-07-30 北京交通大学 一种基于网格技术的网络存储***
CN102201010A (zh) * 2011-06-23 2011-09-28 清华大学 无共享架构的分布式数据库***及其实现方法

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530162A (zh) * 2014-10-21 2016-04-27 中兴通讯股份有限公司 离线消息处理方法及装置
WO2016062079A1 (zh) * 2014-10-21 2016-04-28 中兴通讯股份有限公司 离线消息处理方法及装置
CN104461817B (zh) * 2014-11-26 2017-08-11 华为技术有限公司 一种检测键的方法和服务器
CN104601720A (zh) * 2015-01-30 2015-05-06 乐视网信息技术(北京)股份有限公司 一种缓存访问控制方法及装置
CN106453449A (zh) * 2015-08-06 2017-02-22 泰兴市智瀚科技有限公司 信息即时推送的方法和分布式***服务器
CN106254240A (zh) * 2016-09-18 2016-12-21 腾讯科技(深圳)有限公司 一种数据处理方法和路由层设备以及***
CN106254240B (zh) * 2016-09-18 2019-07-05 腾讯科技(深圳)有限公司 一种数据处理方法和路由层设备以及***
CN106817402B (zh) * 2016-11-29 2018-02-27 上海壹账通金融科技有限公司 缓存数据的处理方法及装置
CN106817402A (zh) * 2016-11-29 2017-06-09 上海亿账通互联网科技有限公司 缓存数据的处理方法及装置
CN108206779B (zh) * 2016-12-16 2020-08-14 北京金山云网络技术有限公司 一种集群访问***、方法及装置
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问***、方法及装置
CN106878414B (zh) * 2017-02-14 2019-06-07 北京奇虎科技有限公司 数据写请求处理方法、装置及分布式数据存储***
CN106878414A (zh) * 2017-02-14 2017-06-20 北京奇虎科技有限公司 数据写请求处理方法、装置及分布式数据存储***
WO2019062856A1 (zh) * 2017-09-29 2019-04-04 杭州海康威视***技术有限公司 数据重构方法及装置、数据存储***
CN108197498A (zh) * 2017-12-22 2018-06-22 中国联合网络通信集团有限公司 获取数据的方法及装置
CN108494835B (zh) * 2018-03-08 2020-11-03 浪潮云信息技术股份公司 基于Raft算法的分布式动态路由的实现方法及***
CN108494835A (zh) * 2018-03-08 2018-09-04 郑州云海信息技术有限公司 基于Raft算法的分布式动态路由的实现方法及***
CN112995285B (zh) * 2018-03-29 2023-04-18 北京忆芯科技有限公司 基于区块技术的分布式kv存储***
CN112995285A (zh) * 2018-03-29 2021-06-18 北京忆芯科技有限公司 基于区块技术的分布式kv存储***
CN113542382B (zh) * 2018-03-30 2024-04-26 北京忆芯科技有限公司 云计算与雾计算***中的kv存储设备
CN113542382A (zh) * 2018-03-30 2021-10-22 北京忆芯科技有限公司 云计算与雾计算***中的kv存储设备
CN110198269A (zh) * 2018-04-03 2019-09-03 腾讯科技(深圳)有限公司 分布式机群的路由同步***、方法及相关装置
CN108829545A (zh) * 2018-07-02 2018-11-16 山东汇贸电子口岸有限公司 一种实现分布式数据库备份的方法
CN108829545B (zh) * 2018-07-02 2021-08-10 上海浪潮云计算服务有限公司 一种实现分布式数据库备份的方法
CN109933568A (zh) * 2019-03-13 2019-06-25 安徽海螺集团有限责任公司 一种工业大数据平台***及其查询方法
CN111581451A (zh) * 2019-03-28 2020-08-25 北京忆芯科技有限公司 分布式kv存储***的更新与查询
CN111581451B (zh) * 2019-03-28 2021-08-06 北京忆芯科技有限公司 分布式kv存储***的更新与查询
CN110334543A (zh) * 2019-06-20 2019-10-15 广东技术师范大学天河学院 一种基于算力的区块链知识***及其使用方法
CN110334543B (zh) * 2019-06-20 2023-01-17 广东技术师范大学天河学院 一种基于算力的区块链知识***及其使用方法
CN110275681A (zh) * 2019-06-27 2019-09-24 深圳前海微众银行股份有限公司 一种数据存储方法及数据存储***
CN112448985A (zh) * 2019-09-02 2021-03-05 阿里巴巴集团控股有限公司 分布式***、网络处理方法和装置以及电子设备
CN112448985B (zh) * 2019-09-02 2022-07-15 阿里巴巴集团控股有限公司 分布式***、网络处理方法和装置以及电子设备
CN113065054A (zh) * 2021-03-31 2021-07-02 北京达佳互联信息技术有限公司 请求处理方法、装置、电子设备及存储介质
CN113065054B (zh) * 2021-03-31 2024-03-01 北京达佳互联信息技术有限公司 请求处理方法、装置、电子设备及存储介质
CN115934006A (zh) * 2023-03-14 2023-04-07 北京志凌海纳科技有限公司 Io接入点和数据处理任务管理方法、装置、设备和介质

Also Published As

Publication number Publication date
CN104050250B (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
CN102591970B (zh) 一种分布式键-值查询方法和查询引擎***
CN104050250A (zh) 一种分布式键-值查询方法和查询引擎***
CN104050249A (zh) 分布式查询引擎***和方法及元数据服务器
US11294890B2 (en) Batch data ingestion in database systems
US10534776B2 (en) Proximity grids for an in-memory data grid
CN103067433B (zh) 一种分布式存储***的数据迁移方法、设备和***
CN101930472A (zh) 一种支持分布式数据库基于并行查询的方法
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其***
KR101928529B1 (ko) 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
US11245774B2 (en) Cache storage for streaming data
CN103729436A (zh) 一种分布式元数据管理方法及***
CN102779185A (zh) 一种高可用分布式全文索引方法
CN102158540A (zh) 分布式数据库实现***及方法
CN102314506B (zh) 基于动态索引的分布式缓冲区管理方法
CN113377868B (zh) 一种基于分布式kv数据库的离线存储***
CN103944958A (zh) 一种广域文件***及实现方法
CN104184812A (zh) 一种基于私有云的多点数据传输方法
CN105159845A (zh) 存储器读取方法
US10298709B1 (en) Performance of Hadoop distributed file system operations in a non-native operating system
CN103595799A (zh) 一种实现分布式共享数据库的方法
CN105516284A (zh) 一种集群数据库分布式存储的方法和装置
CN106960011A (zh) 分布式文件***元数据管理***及方法
CN106202082A (zh) 组装基础数据缓存的方法及装置
KR101511098B1 (ko) 분산된 컨테이너들을 사용하여 데이터를 관리하는 시스템 및 방법
CN110309229A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180605

Termination date: 20211231

CF01 Termination of patent right due to non-payment of annual fee