分布式KV存储系统的制作方法

文档序号:18985666发布日期:2019-10-29 04:22阅读:328来源:国知局
分布式KV存储系统的制作方法

本申请涉及kv存储,具体地,涉及分布式kv存储系统。



背景技术:

图1a展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serialadvancedtechnologyattachment,串行高级技术附件)、scsi(smallcomputersysteminterface,小型计算机系统接口)、sas(serialattachedscsi,串行连接scsi)、ide(integrateddriveelectronics,集成驱动器电子)、usb(universalserialbus,通用串行总线)、pcie(peripheralcomponentinterconnectexpress,pcie,高速外围组件互联)、nvme(nvmexpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamicrandomaccessmemory,动态随机访问存储器)110。

nand闪存、相变存储器、feram(ferroelectricram,铁电存储器)、mram(magneticrandomaccessmemory,磁阻存储器)、rram(resistiverandomaccessmemory,阻变存储器)等是常见的nvm。

接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。

控制部件104用于控制在接口103、nvm芯片105以及dram110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field-programmablegatearray,现场可编程门阵列)、asic(applicationspecificintegratedcircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram110,并可访问dram110的数据。在dram可存储ftl表和/或缓存的io命令的数据。

控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。

存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。

在固态存储设备中,利用ftl(flashtranslationlayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。

存储了从逻辑地址到物理地址的映射信息的表结构被称为ftl表。ftl表是固态存储设备中的重要元数据。通常ftl表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。

支持key-value(键-数据,也简称为“kv”)存储模型的存储设备,提供基于键(key)的读操作(get(key))与写操作(put(key,value))。为执行写操作,主机向存储设备提供键(key)与数据(value),以将数据写入存储设备,并将键作为所写入的数据的索引。为执行读操作,主机向存储设备提供键,存储设备根据键找到数据,并将数据提供给主机。因而在kv存储系统中,键是用来访问数据的索引,而数据(value)是被访问的数据。一般地,键与数据的长度均不是定长。以及可选地,为了降低复杂性,键和/或数据的长度可具有指定范围。

图1b展示了现有技术的支持kv存储模型的固态存储设备的地址转换系统的示意图。支持kv存储模型的固态存储设备的地址转换系统(也称为ftl表)提供从键(k)到逻辑地址或物理地址(例如,ppa,physicalpageaddress,物理页地址)的映射。可选地,除了物理页地址,ftl表中记录的物理地址可以是物理页内部的数据帧(dataframe)的起始地址。数据帧是具有固定大小的数据单元,物理页包括1个或多个数据帧。响应于获取键(k),用键(k)作为索引查询ftl表,得到对应的逻辑地址或物理地址。可选地,将不定长的键进行哈希运算,得到定长的哈希键(例如,4字节/8字节),作为ftl表的索引。



技术实现要素:

根据本申请的第一方面,提供了根据本申请第一方面的第一分布式kv存储系统,包括客户机与多个kv存储装置,客户机与kv存储装置通过网络耦合;每个kv存储装置包括:kv存储设备和计算设备;计算设备同kv存储设备相耦合,客户机与多个kv存储装置通过网络耦合。

根据本申请的第一方面的第一分布式kv存储系统,提供了根据本申请第一方面的第二分布式kv存储系统,还包括冷数据存储设备。

根据本申请的第一方面的第二分布式kv存储系统,提供了根据本申请第一方面的第三分布式kv存储系统,还包括数据采集设备。

根据本申请的第一方面的第三分布式kv存储系统,提供了根据本申请第一方面的第四分布式kv存储系统,冷数据存储设备用于记录数据采集设备捕获的原始数据。

根据本申请的第一方面的第一至第四分布式kv存储系统之一,提供了根据本申请第一方面的第五分布式kv存储系统,计算设备集成在kv存储设备中。

根据本申请的第一方面的第一至第五分布式kv存储系统之一,提供了根据本申请第一方面的第六分布式kv存储系统,一个或多个kv存储装置中包括冷数据存储设备。

根据本申请的第一方面的第六分布式kv存储系统,提供了根据本申请第一方面的第七分布式kv存储系统,kv存储装置中的kv存储设备同对应的一个或多个冷数据存储设备通过网络耦合。

根据本申请的第一方面的第七分布式kv存储系统,提供了根据本申请第一方面的第八分布式kv存储系统,kv存储设备中记录的<键,值>对与同其对应的冷数据存储设备相关联,“值”中记录的原始数据存储位置位于该对应的冷数据存储设备。

根据本申请的第一方面的第一至第八分布式kv存储系统之一,提供了根据本申请第一方面的第九分布式kv存储系统,客户机的搜索请求被通过网络发送给一个或多个计算设备。

根据本申请的第一方面的第一至第九分布式kv存储系统之一,提供了根据本申请第一方面的第十分布式kv存储系统,计算设备根据搜索请求生成对应的键,并用键访问自己所属的kv存储设备。

根据本申请的第一方面的第一至第十分布式kv存储系统之一,提供了根据本申请第一方面的第十一分布式kv存储系统,若kv存储设备中记录了同键对应的值,向客户机提供值。

根据本申请的第一方面的第十一分布式kv存储系统,提供了根据本申请第一方面的第十二分布式kv存储系统,计算设备或客户机还根据值中记录的原始数据存储位置,访问冷数据存储设备以获取原始数据。

根据本申请的第一方面的第一至第十二分布式kv存储系统之一,提供了根据本申请第一方面的第十三分布式kv存储系统,还包括耦合到网络的kv数据库。

根据本申请的第一方面的第十三分布式kv存储系统,提供了根据本申请第一方面的第十四分布式kv存储系统,kv数据库根据搜索请求生成对应的键,并且记录该键所属的<键,值>对由哪个或哪些kv存储设备存储或响应。

根据本申请的第一方面的第十三或第十四分布式kv存储系统,提供了根据本申请第一方面的第十五分布式kv存储系统,客户机的搜索请求被通过网络发送给kv数据库。

根据本申请的第一方面的第十五分布式kv存储系统,提供了根据本申请第一方面的第十六分布式kv存储系统,kv数据库根据搜索请求生成对应的键并获取哪个kv存储设备能够响应对键的查询。

根据本申请的第一方面的第十六分布式kv存储系统,提供了根据本申请第一方面的第十七分布式kv存储系统,kv存储设备的排序表中记录了以键为索引的条目。

根据本申请的第一方面的第十五至第十七分布式kv存储系统之一,提供了根据本申请第一方面的第十八分布式kv存储系统,kv数据库将客户机的搜索请求转发给能响应查询的kv存储设备,或者根据kv数据库的指示,客户机将搜索请求再发送给能响应查询的kv存储设备。

根据本申请的第一方面的第二至第十八分布式kv存储系统之一,提供了根据本申请第一方面的第十九分布式kv存储系统,响应于更新分布式kv存储系统中的冷数据存储设备,对被添加的冷数据存储设备进行认证。

根据本申请的第一方面的第十九分布式kv存储系统,提供了根据本申请第一方面的第二十分布式kv存储系统,对于通过认证的冷数据存储设备,通过冷数据存储设备表以识别通过认证的冷数据存储设备是新添加的冷数据存储设备还是对旧的冷数据存储设备的更换。

根据本申请的第一方面的第十九或第二十分布式kv存储系统,提供了根据本申请第一方面的第二十一分布式kv存储系统,若通过认证的冷数据存储设备是新添加的冷数据存储设备,向其写入来自数据采集设备的原始数据。

根据本申请的第一方面的第二十一分布式kv存储系统,提供了根据本申请第一方面的第二十二分布式kv存储系统,响应于该新加入的冷数据存储设备被写入原始数据,还根据对原始数据的可能的搜索生成<键,值>对记录在同该新加入的冷数据存储设备对应的kv存储设备中。

根据本申请的第一方面的第二十一分布式kv存储系统,提供了根据本申请第一方面的第二十三分布式kv存储系统,响应于新加入的冷数据存储设备被分配用于访问存储的原始数据的全局地址,还将kv存储设备中记录的引用的原始数据地址属于被分配的全局地址的<键,值>对删除。

根据本申请的第一方面的第二十分布式kv存储系统,提供了根据本申请第一方面的第二十四分布式kv存储系统,响应于冷数据存储设备表中已经存在通过认证的冷数据存储设备,用该通过认证的冷数据存储设备中记录的原始数据生成<键,值>对,并用<键,值>对更新第一kv存储设备。

根据本申请的第一方面的第二十四分布式kv存储系统,提供了根据本申请第一方面的第二十五分布式kv存储系统,若更新第一kv存储设备之前,第一kv存储设备中有对该通过认证的冷数据存储设备中记录的原始数据的引用,则更新第一kv存储设备中引用了该通过认证的冷数据存储设备中记录的原始数据的记录,使得该记录中存储了通过认证的冷数据存储设备相关信息。

根据本申请的第一方面的第二十四分布式kv存储系统,提供了根据本申请第一方面的第二十六分布式kv存储系统,若第一kv存储设备中不存在对通过认证的冷数据存储设备中记录的第一原始数据的引用,还根据对第一原始数据的可能的搜索生成<键,值>对,将生成的<键,值>对记录在第二kv存储设备中。

根据本申请的第一方面的第二至第十八分布式kv存储系统之一,提供了根据本申请第一方面的第二十七分布式kv存储系统,响应于向分布式kv存储系统添加冷数据存储设备,分布式kv存储系统对被添加的冷数据存储设备进行认证;响应于冷数据存储设备通过认证,将通过认证的冷数据存储设备记录在等待队列中;对于新加入到分布式kv存储系统中的冷数据存储设备,将kv存储设备中由于新加入的冷数据存储设备而导致无效的<键,值>对删除;针对该新加入的冷数据存储设备被写入的原始数据,根据对原始数据的可能的搜索生成<键,值>对,并将生成的<键,值>对记录在kv存储设备中。

根据本申请的第一方面的第二十七分布式kv存储系统,提供了根据本申请第一方面的第二十八分布式kv存储系统,如果被加入的冷数据存储设备未通过认证,将其记录在待删除集合中。

根据本申请的第一方面的第二十七分布式kv存储系统,提供了根据本申请第一方面的第二十九分布式kv存储系统,响应于通过认证的冷数据存储设备是在分布式kv存储系统中曾出现过的冷数据存储设备;遍历kv存储设备,从kv存储设备中获取各个<键,值>对;若<键,值>对的值中记录的原始数据被存储在位于等待队列中的冷数据存储设备中,根据等待队列中的冷数据存储设备更新该<键,值>对。

根据本申请的第一方面的第二十七至第二十九分布式kv存储系统之一,提供了根据本申请第一方面的第三十分布式kv存储系统,在分布式kv存储系统使用期间,若基于第一<键,值>对的值中记录的由冷数据存储设备存储的原始数据读取失败,将存储该原始数据的冷数据存储设备标记为无效,以及将kv存储设备中该冷数据存储设备的无效而导致无效的<键,值>对删除。

根据本申请的第二方面,提供了根据本申请第二方面的第一更新分布式kv存储系统中的冷数据存储设备的方法,包括:对被添加的冷数据存储设备进行认证;向所述冷数据存储设备写入来自数据采集设备的原始数据,并响应于搜索请求从该新加入的冷数据存储设备读取原始数据。

根据本申请的第二方面的第一更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第二更新分布式kv存储系统中的冷数据存储设备的方法,被添加的冷数据存储设备,被写入了设备认证信息。

根据本申请的第二方面的第二更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第三更新分布式kv存储系统中的冷数据存储设备的方法,设备认证信息是用加密算法与密钥对设备的独有信息进行计算得到的。

根据本申请的第二方面的第三更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第四更新分布式kv存储系统中的冷数据存储设备的方法,加密算法为非对称加密算法,设备的独有信息为设备的标识符或序列符。

根据本申请的第二方面的第一至第四更新分布式kv存储系统中的冷数据存储设备的方法之一,提供了根据本申请第二方面的第五更新分布式kv存储系统中的冷数据存储设备的方法,分布式kv存储系统通过非对称加密算法解密认证信息,以识别解密后的认证信息与冷数据存储设备的独有信息是否一致,并据此认证冷数据存储设备,并拒绝未通过认证的冷数据存储设备被添加到分布式kv存储系统。

根据本申请的第二方面的第一至第五更新分布式kv存储系统中的冷数据存储设备的方法之一,提供了根据本申请第二方面的第六更新分布式kv存储系统中的冷数据存储设备的方法,对于通过认证的冷数据存储设备,通过分布式kv存储系统的冷数据存储设备表以识别通过认证的冷数据存储设备是新添加的冷数据存储设备还是对旧的冷数据存储设备的更换。

根据本申请的第二方面的第六更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第七更新分布式kv存储系统中的冷数据存储设备的方法,响应于通过认证的冷数据存储设备是新添加的冷数据存储设备,更新冷数据存储设备表。

根据本申请的第二方面的第一至第七更新分布式kv存储系统中的冷数据存储设备的方法之一,提供了根据本申请第二方面的第八更新分布式kv存储系统中的冷数据存储设备的方法,响应于kv存储装置使用新加入的冷数据存储设备,向其写入来自数据采集设备的原始数据,并响应于搜索请求从该新加入的冷数据存储设备读取原始数据。

根据本申请的第二方面的第一至第八更新分布式kv存储系统中的冷数据存储设备的方法之一,提供了根据本申请第二方面的第九更新分布式kv存储系统中的冷数据存储设备的方法,响应于该新加入的冷数据存储设备被写入原始数据,还根据对原始数据的可能的搜索生成<键,值>对记录在同该新加入的冷数据存储设备对应的kv存储设备中。

根据本申请的第二方面的第九更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十更新分布式kv存储系统中的冷数据存储设备的方法,响应于新加入的冷数据存储设备被分配用于访问存储的原始数据的全局地址,还将kv存储设备中记录的引用的原始数据地址属于被分配的全局地址的<键,值>对删除。

根据本申请的第二方面的第一至第十更新分布式kv存储系统中的冷数据存储设备的方法之一,提供了根据本申请第二方面的第十一更新分布式kv存储系统中的冷数据存储设备的方法,若被启用的冷数据存储设备记录了原始数据,根据对原始数据的可能的搜索生成<键,值>对,将生成的<键,值>对记录在kv存储设备中。

根据本申请的第二方面的第一更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十二更新分布式kv存储系统中的冷数据存储设备的方法,响应于冷数据存储设备表中已经存在通过认证的第一冷数据存储设备,用第一冷数据存储设备中记录的原始数据生成<键,值>对,并将所生成的<键,值>对写入第一kv存储设备。

根据本申请的第二方面的第十二更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十三更新分布式kv存储系统中的冷数据存储设备的方法,遍历第一kv存储设备,查询第一冷数据存储设备中记录的各原始数据在第一kv存储设备中是否被引用。

根据本申请的第二方面的第十二或第十三更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十四更新分布式kv存储系统中的冷数据存储设备的方法,若更新第一kv存储设备之前,第一kv存储设备中有对该通过认证的冷数据存储设备中记录的原始数据的引用,则更新第一kv存储设备中引用了该通过认证的冷数据存储设备中记录的原始数据的记录,使得该记录中存储了通过认证的冷数据存储设备相关信息。

根据本申请的第二方面的第十二或第十三更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十五更新分布式kv存储系统中的冷数据存储设备的方法,若第一kv存储设备中不存在对通过认证的冷数据存储设备中记录的第一原始数据的引用,还根据对第一原始数据的可能的搜索生成<键,值>对,将生成的<键,值>对记录在第二kv存储设备中。

根据本申请的第二方面的第十五更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十六更新分布式kv存储系统中的冷数据存储设备的方法,对于未在第一kv存储设备中被引用的原始数据,还对其进行认证。

根据本申请的第二方面的第十六更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十七更新分布式kv存储系统中的冷数据存储设备的方法,冷数据存储设备中还为每条原始数据记录与其对应的数据段认证信息。

根据本申请的第二方面的第十七更新分布式kv存储系统中的冷数据存储设备的方法,提供了根据本申请第二方面的第十八更新分布式kv存储系统中的冷数据存储设备的方法,仅对通过认证的原始数据获取在第二kv存储设备中记录的引用了该原始数据的<键,值>对,并根据新的冷数据存储设备更新该<键,值>对。

根据本申请的第三方面,提供了根据本申请第三方面的第一向分布式kv存储系统添加冷数据存储设备的方法,包括:分布式kv存储系统对被添加的冷数据存储设备进行认证;响应于冷数据存储设备通过认证,将通过认证的冷数据存储设备记录在等待队列中;对于新加入到分布式kv存储系统中的冷数据存储设备,将kv存储设备中由于新加入的冷数据存储设备而导致无效的<键,值>对删除;针对该新加入的冷数据存储设备被写入的原始数据,根据对原始数据的可能的搜索生成<键,值>对。

根据本申请的第三方面的第一向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第二向分布式kv存储系统添加冷数据存储设备的方法,将根据对原始数据的可能的搜索生成的<键,值>对记录在kv存储设备中。

根据本申请的第三方面的第一或第二向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第三向分布式kv存储系统添加冷数据存储设备的方法,如果被加入的冷数据存储设备未通过认证,将其记录在待删除集合中。

根据本申请的第三方面的第三向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第四向分布式kv存储系统添加冷数据存储设备的方法,冷数据存储设备具有全局地址,还将kv存储设备中记录的引用的原始数据地址属于被分配给待删除集合中的冷数据存储设备的全局地址的<键(k),值(v)>对删除。

根据本申请的第三方面的第一至第四向分布式kv存储系统添加冷数据存储设备的方法之一,提供了根据本申请第三方面的第五向分布式kv存储系统添加冷数据存储设备的方法,响应于通过认证的冷数据存储设备是在分布式kv存储系统中曾出现过的冷数据存储设备;遍历kv存储设备,从kv存储设备中获取各个<键,值>对;若<键,值>对的值中记录的由冷数据存储设备存储的原始数据被存储在位于等待队列中的冷数据存储设备中,根据等待队列中的冷数据存储设备更新该<键,值>对。

根据本申请的第三方面的第五向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第六向分布式kv存储系统添加冷数据存储设备的方法,若<键,值>对的值中记录的冷数据存储设备已被删除或被记录在待删除集合中,删除该<键,值>对。

根据本申请的第三方面的第五向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第七向分布式kv存储系统添加冷数据存储设备的方法,若<键,值>对的值中记录的由冷数据存储设备存储的原始数据不复存在,删除该<键,值>对。

根据本申请的第三方面的第五向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第八向分布式kv存储系统添加冷数据存储设备的方法,若<键,值>对的值中记录的由冷数据存储设备存储的原始数据被存储在位于等待队列中的冷数据存储设备中,对该<键,值>对对应的冷数据存储设备中存储的原始数据进行认证。

根据本申请的第三方面的第八向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第九向分布式kv存储系统添加冷数据存储设备的方法,响应于原始数据通过认证,才对该<键,值>对进行更新。

根据本申请的第三方面的第八向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第十向分布式kv存储系统添加冷数据存储设备的方法,响应于原始数据未通过认证,删除认证失败的原始数据对应的<键,值>对。

根据本申请的第三方面的第一至第十向分布式kv存储系统添加冷数据存储设备的方法之一,提供了根据本申请第三方面的第十一向分布式kv存储系统添加冷数据存储设备的方法,在分布式kv存储系统使用期间,若基于某<键,值>对的值中记录的由冷数据存储设备存储的原始数据读取失败,删除该<键,值>对。

根据本申请的第三方面的第一至第十向分布式kv存储系统添加冷数据存储设备的方法之一,提供了根据本申请第三方面的第十二向分布式kv存储系统添加冷数据存储设备的方法,在分布式kv存储系统使用期间,若基于第一<键,值>对的值中记录的由冷数据存储设备存储的原始数据读取失败,将存储该原始数据的冷数据存储设备标记为无效,以及将kv存储设备中该冷数据存储设备的无效而导致无效的<键,值>对删除。

根据本申请的第三方面的第十一或第十二向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第十三向分布式kv存储系统添加冷数据存储设备的方法,若原始数据读取失败的发生次数超过阈值,遍历kv存储设备的各个<键,值>对,获取无法被访问的冷数据存储设备。

根据本申请的第三方面的第十三向分布式kv存储系统添加冷数据存储设备的方法,提供了根据本申请第三方面的第十四向分布式kv存储系统添加冷数据存储设备的方法,响应于识别出一个或多个冷数据存储设备无法被使用而做出警告,以提示需要更换冷数据存储设备。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1a是现有技术中固态存储设备的框图;

图1b是现有技术的固态存储设备的地址转换系统的示意图;

图2是根据本申请实施例的kv存储的键与值的生成系统的框图;

图3是根据本申请实施例的机器学习部件的示意图;

图4是根据本申请实施例通过kv存储设备响应检索请求的示意图;

图5是根据本申请实施例的分布式kv存储系统的示意图;

图6是根据本申请又一实施例的分布式kv存储系统的示意图;

图7是根据本申请实施例在分布式kv存储系统中更新冷数据存储设备的示意图;

图8是根据本申请实施例向分布式kv存储系统添加冷数据存储设备的流程图。

具体实施方式

下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

图2是根据本申请实施例的kv存储的键与值的生成系统的框图。

原始数据是例如视频、图片、文本文件等非结构化数据。

对原始数据进行结构化处理。例如,对原始数据添加标签,以指示原始数据的来源、格式、存储位置、所需的访问权限等结构化信息;对原始数据的内容进行分析,例如从视频或图片中提取、缩略图、摘要,提取诸如人像、汽车等物体,提取人面部特征、身高、性别、年龄等特征,提取汽车品牌、车牌照等特征。与原始数据关联的标签、特征等都作为结构化处理生成的结构化信息。结构化信息是便于检索的,通过现有技术的数据库或搜索引擎技术,或者现有或将来出现的其他搜索技术对结构化信息进行检索。

结构化处理模块210生成的结构化信息包括多种可检索的要素(例如,视频或图片中所含有的物体,物体的特征,文件摘要中的关键字等)。用户可检索这些要素。例如,用户检索包含人物的图片或视频,并进一步指定作为检索目标的人物的面部特征、身高、性别等特征。根据本申请的实施例,检索式生成模块220根据结构化处理模块210提供的可检索要素及其组合生成多种可能的检索式。检索式中包括了被检索的一个或多个检索要素。

可选地,或进一步地,检索式生成模块220还获取用户的检索行为,从用户的检索行为中获取用户所描述的检索式。

检索式生成模块220使用生成的检索式实施检索。例如通过向搜索引擎、数据库提供检索式来实施检索。搜索引擎或数据库230根据检索式产生检索结果。可选地,一些搜索引擎/数据库230支持模糊检索、语义检索、图像检索等检索方式。检索式生成模块220也使用这些检索方式实施检索,并将实施检索过程中向搜索引擎/数据库230提供的检索命令也称为检索式。

检索式生成模块220将实施检索的检索式也提供给机器学习部件240。机器学习部件240是例如现有技术的机器学习部件或将来出现的机器学习部件。

机器学习部件240以检索式生成模块220提供的检索式作为输入。可选地,将检索式的各个检索要素分别提供给机器学习部件240的各个输入节点。机器学习部件240根据被输入的检索式,产生对检索式的打分作为输出。可选地,打分作为对检索式优劣的评价。例如,相对高的打分,意味着检索式有较好的检索效果,而相对低的打分,意味着检索式有较坏的检索效果从而不被建议使用。较好的检索效果,例如,从检索结果中能迅速有效的获得检索目标,检索结果中的无关内容较少;反之,则意味着较坏的检索效果。

可选地,机器学习部件240被训练为对具有相似检索结果的检索式产生相似的打分。例如,根据实施检索的检索结果作为对机器学习部件240输出的检索式的打分的评价,使得对相似的检索结果的检索式,机器学习部件240输出相似的打分。

在机器学习部件240的学习过程中,以检索式作为输入,根据输入产生打分,以打分评价模块250提供的评价作为对所产生的打分的反馈。机器学习部件240根据评价更新其内部节点的权值,以逐步产生能更准确评价检索式优劣的打分。

被输入给机器学习部件240的检索式,也被提供给搜索引擎/数据库230。搜索引擎或数据库230根据检索式产生检索结果。打分评价模块250根据搜索引擎或数据库230产生的检索结果对机器学习部件240产生的打分进行评价,并将评价提供给机器学习部件240。可选地,通过人工标注获得对检索式的评价,或者根据用户使用搜索引擎或数据库230实施检索后的后续行为作为对机器学习部件240输出的检索式的打分的评价,并将评价提供给机器学习部件240(例如,用户点击了一个或多个检索结果,意味着检索式具有较好的检索效果,而用户忽视了搜索引擎或数据库230提供的所有或大部分检索结果,意味着检索式具有较差的检索效果)。

在另一种实施方式中,打分评价模块250还对搜索引擎或数据库230实施检索的检索结果分类,不同的分类对应于不同的值,用对应于类别的值与机器学习部件240打分的差作为对机器学习部件240输出的检索式的打分的评价,并将评价提供给机器学习部件240。

对于经历了学习过程的机器学习部件240,对于输入的检索式(记为s),机器学习部件240的内部节点的计算结果被提供给键生成(k生成)模块260。k生成模块260根据机器学习部件240提供的各节点的计算结果生成用于kv存储设备的键(k)。键(k)对应于检索式(s)。

搜索引擎/数据库230处理检索式(s)得到的结果被提供给值生成(v生成)模块270。v生成模块270根据搜索引擎/数据库230提供的结果生成用于kv存储设备的值(v)。值(v)也对应于检索式(s)。

将对应于相同检索式(s)的键(k)与值(v)提供给kv存储设备,在kv存储设备中记录键(k)与值(v)。

图3是根据本申请实施例的机器学习部件的示意图。

机器学习部件240包括例如由多层节点构成的人工神经网络。图2展示的人工神经网络包括4层(例如l0层、l1层、l2层与l3层),l0层是输入层,l3层是输出层,l1层与l2层是内部层。各层包括多个节点。作为举例,l0层包括节点c1、c2……c5,l1层包括节点0、节点1、节点2与节点3,l2层包括节点4、节点5、节点6与节点7,输出层l3包括节点8与节点9。

输入层l0的各节点接收输入的检索式。例如,每个节点接收构成检索式的检索要素之一。

输出层l3的各节点的值指示机器学习部件240的输出(对输入的检索式的打分)。

内部层的各个节点代表了对同其耦合的节点计算得到的值(记为nn,其中n指示节点在图3中的序号)。作为举例:

n0=c1*f0(c1)+c2*f0(c2)+c3*f0(c3)+c4*f0(c4)+c5*f0(c5)

n1=c1*f1(c1)+c2*f1(c2)+c3*f1(c3)+c4*f1(c4)+c5*f1(c5),其中

c1~c5指示节点c1~c5各自接收的输入(被量化为值),f0()指示同节点0关联的函数,f1()指示同节点1关联的函数。对于人工神经网络中的其他节点,以类似的方式得到节点对应的值。

从而响应于指定的输入(例如,检索式s),节点0到节点9将生成各自的值(分别记为n0~n9)。

可选地,现有技术的神经网络的各节点根据多种已知的函数来得到节点的值。

记(n0,n1,n2,n3)为对节点值n0、n1、n2与n3的连接。例如,若节点值n0~n3分别为数字0、1、2与3,则(n0,n1,n2,n3)为数字序列“0123”。根据本申请的实施例,对人工神经网络的各层的节点值分别连接,得到同人工神经网络的各层对应的序列。例如,l1层对应的序列为(n0,n1,n2,n3),l2层对应的序列为(n4,n5,n6,n7),而l3层对应的序列为(n8,n9)。

对同各层对应的序列分别进行哈希计算,得到同各层对应的哈希值。例如,同l1层对应的哈希值为hash((n0,n1,n2,n3)),同l2层对应的哈希值为hash((n4,n5,n6,n7)),同l3层对应的哈希值为hash((n8,n9))。可选地,各层对应的哈希值具有相同的长度。

连接同人工神经网络的一层或多层对应的哈希值,作为提供给kv存储设备的键(k)。例如,连接人工神经网络的l2-l4层对应的哈希值,得到(hash((n0,n1,n2,n3)),hash((n4,n5,n6,n7)),hash((n8,n9)))作为提供给kv存储设备的键(k)。可选地,对同人工神经网络的一层或多层对应的哈希值的连接结果(例如,(hash((n0,n1,n2,n3)),hash((n4,n5,n6,n7)),hash((n8,n9))))再进行哈希计算,将得到的结果作为提供给kv存储设备的键(k),使得键(k)的长度被缩短或具有指定长度。

也参看图2,k生成模块160根据人工神经网络的一层或多层节点的值生成提供给kv存储设备的键(k)。

返回参看图2,在kv存储设备中记录了同检索式(s)对应的成对的键(k)与值(v)。以及kv存储设备响应于收到对键(k)的查询请求,输出同键(k)对应的值(v)作为对查询请求的响应。

实施例二

图4是根据本申请实施例通过kv存储设备响应检索请求的示意图。

用户提供用于搜索数据库或搜索引擎的检索式,检索式包括一个或多个检索要素。可选地,分析检索式,从检索式中提取检索要素。

将检索要素提供给机器学习部件240。也参看例如图3,将各个检索要素分别提供给机器学习部件240的人工神经网络的各输入节点。机器学习部件240的人工神经网络的各个节点响应于输入的检索要素生成各自的节点值。节点值被提供给k生成模块260。根据结合图2与图3描述的k生成模块260生成键(k)的方式,图4的k生成模块260根据被提供的节点值生成键(k)。

所生成的键(k)被提供给kv存储设备,用于从kv存储设备读取同键(k)对应的值(v)。值(v)中记录了同键(k)对应的结构化信息。结构化信息中还包括生成结构化信息的原始数据的存储位置。用从kv存储设备获取的同键(k)对应的结构化信息作为对搜索的响应。可选地,向用户展示结构化信息作为搜索的结果。作为举例,结构化信息中包括根据用户搜索的特征所命中的图像或视频的缩略图。向用户展示这些缩略图,以便于用户识别所需的搜索目标。响应于用户对搜索目标的进一步选择,从结构化信息中获取同搜索目标对应的原始数据存储位置,并获取原始数据以提供给用户。

可选地,还根据结构化信息中记录的原始数据存储位置,在用户进一步选择之前而提前加载原始数据。从而加快对用户进一步选择搜索目标的响应速度。

实施例三

图5是根据本申请实施例的分布式kv存储系统的示意图。根据本申请图5展示的实施例的分布式kv存储系统包括冷数据存储设备(例如,现有技术的机械硬盘hdd、固态驱动器ssd)与根据本申请实施例的kv存储设备,还包括使用分布式kv存储系统的客户机(例如,计算机、移动终端或服务器)。

冷数据存储设备同数据采集设备(例如,摄像头或视频监控设备)相耦合,用于记录数据采集设备捕获的原始数据。

具有机器学习部件的计算设备同根据本申请实施例的kv存储设备相耦合。可选地,计算设备集成到根据本申请实施例的kv存储设备中。

分布式kv存储系统的各个部分通过网络耦合在一起。

根据图5的实施例,kv存储设备同冷数据存储设备一一对应。例如,kv存储设备同对应的冷数据存储设备通过直连的数据通路耦合。如图5所示,kv存储设备510与冷数据存储设备520对应,kv存储设备530与冷数据存储设备540对应。kv存储设备中记录的<键(k),值(v)>对与同其对应的冷数据存储设备相关联,“值(v)”中记录的原始数据存储位置位于该对应的冷数据存储设备。

作为举例,客户机对根据本申请实施例的分布式kv存储设备的搜索请求被通过网络(例如广播)发送给各个计算设备。计算设备根据搜索请求生成对应的键(k)并用键(k)访问自己所属的kv存储设备。若kv存储设备中记录了同键(k)对应的值(v),向客户机提供值(v)。以及可选地计算设备或客户机还根据值(v)中记录的原始数据存储位置,访问冷数据存储设备以获取原始数据。

实施例四

图6是根据本申请又一实施例的分布式kv存储系统的示意图。

同图5展示的实施例相比,图6的分布式kv存储系统还包括耦合到网络的kv数据库。kv数据库根据搜索请求生成对应的键(k),并且记录了该键(k)所属的<键,值>对由哪个或哪些kv存储设备存储或响应。

作为举例,客户机对根据本申请实施例的分布式kv存储设备的搜索请求被通过网络发送给kv数据库。kv数据库根据搜索请求生成对应的键(k)并获取哪个kv存储设备能够响应对键(k)的查询(例如,其排序表中记录了以键(k)为索引的条目)。kv数据库将客户机的搜索请求转发给能响应查询的kv存储设备,或者根据kv数据库的指示,客户机将搜索请求再发送给能响应查询的kv存储设备。若kv存储设备中记录了同键(k)对应的值(v),向客户机提供值(v)。以及可选地计算设备或客户机还根据值(v)中记录的原始数据存储位置,访问冷数据存储设备以获取原始数据。

根据图6的实施例,kv存储设备同冷数据存储设备是一对多关系。例如,kv存储设备同对应的一个或多个冷数据存储设备通过网络耦合。如图6所示,kv存储设备610对应于冷数据存储设备620与冷数据存储设备630,kv存储设备640对应于与冷数据存储设备65与冷数据存储设备660。kv存储设备中记录的<键(k),值(v)>对与同其对应的冷数据存储设备相关联,“值(v)”中记录的原始数据存储位置位于该对应的冷数据存储设备。

实施例五

图7是根据本申请实施例在分布式kv存储系统中更新冷数据存储设备的示意图。

一些情况下,需要更新冷数据存储设备。例如,向分布式kv存储系统中添加了新的数据采集设备,或者已经在使用的冷数据存储设备发生故障而需要更换。

被添加到根据本申请实施例的分布式kv存储系统的冷数据存储设备,被写入了设备认证信息(参看图7,设备认证信息0、设备认证信息1)。设备认证信息是用指定的加密算法与密钥(例如非对称加密算法)对设备的独有信息(例如标识符、序列号等)进行计算得到的。

分布式kv存储系统对被添加的冷数据存储设备(参看图7,新冷数据存储设备)进行认证(图7,由①所指示)。例如,分布式kv存储系统通过非对称加密算法解密被添加的冷数据存储设备中的认证信息,以识别解密后的认证信息与被添加的冷数据存储设备的独有信息是否一致,并据此认证被添加的冷数据存储设备,并拒绝未通过认证的被添加的冷数据存储设备被添加到分布式kv存储系统。

对添加的冷数据存储设备的认证可由kv数据库或kv存储设备的计算设备实施(参看图5与图6)。

对于通过认证的冷数据存储设备,通过分布式kv存储系统的冷数据存储设备表以识别通过认证的冷数据存储设备是新添加的冷数据存储设备还是对旧的冷数据存储设备(图7,由②所指示)的更换。

若冷数据存储设备表中不经存在该通过认证的冷数据存储设备的记录,意味着该通过认证的冷数据存储设备是新添加的冷数据存储设备,若通过认证的冷数据存储设备是新添加的冷数据存储设备,更新冷数据存储设备表(图7,由③所指示),并在分布式kv存储系统中启用该冷数据存储设备(图7,由④所指示),从而分布式kv存储设备将使用该新加入的冷数据存储设备,向其写入来自数据采集设备的原始数据,并响应于搜索请求从该新加入的冷数据存储设备读取原始数据。以及响应于该新加入的冷数据存储设备被写入原始数据,还根据对原始数据的可能的搜索生成<键(k),值(v)>对记录在同该新加入的冷数据存储设备对应的kv存储设备中。

可选地,被启用的冷数据存储设备,被分配给用于分布式kv存储系统的全局地址,全局地址用于访问冷数据存储设备存储的原始数据。响应于被分配的全局地址,还将kv存储设备中记录的引用的原始数据地址属于被分配的全局地址的<键(k),值(v)>对删除,因为这些<键(k),值(v)>对所记录的值(v)已经无效。依然可选地,若被启用的冷数据存储设备记录了原始数据,根据对原始数据的可能的搜索生成<键(k),值(v)>对,将生成的<键(k),值(v)>对记录在kv存储设备中。

若冷数据存储设备表中已经存在该通过认证的冷数据存储设备,意味着该通过认证的冷数据存储设备是旧的冷数据存储设备,用旧的冷数据存储设备中记录的原始数据生成<键(k),值(v)>对,并用<键(k),值(v)>对更新kv存储设备(图7,由⑤所指示)。作为举例,遍历kv存储设备,查询旧的冷数据存储设备中记录的各原始数据(记为d0)在kv存储设备中是否被引用(原始数据的地址)。若kv存储设备中有对原始数据的d0的引用(例如,记录了原始数据d0的地址),则更新kv存储设备中引用了原始数据d0的记录,更新该记录的值(v)中存储的冷数据存储设备相关信息。若kv存储设备中不存在对原始数据的d0的引用(例如,记录了原始数据d0的地址),还根据对原始数据d0的可能的搜索生成<键(k),值(v)>对,将生成的<键(k),值(v)>对记录在kv存储设备(记为ks1)中。

可选地,还更新kv数据库(参看图6),使得kv数据库知晓kv存储设备ks1能响应对键(k)的查询。

可选地,对于未在kv存储设备中被引用的原始数据d0,还对其进行认证(图7,由⑥所指示)。冷数据存储设备中还为每条原始数据记录与其对应的数据段认证信息。以对冷数据存储设备的认证类似的方式对原始数据进行认证。仅对通过认证的原始数据记录获取在kv存储设备中记录的引用了该原始数据的<键(k),值(v)>对,并根据新的冷数据存储设备更新该<键(k),值(v)>对,以避免kv存储设备中的<键(k),值(v)>对被恶意更新。

实施例六

图8是根据本申请实施例向分布式kv存储系统添加冷数据存储设备的流程图。

对于被新加入分布式kv存储系统的冷数据存储设备(810),首先对其进行认证,以确定其是否可被加入到分布式kv存储系统(820)。

可选地,将通过认证的冷数据存储设备记录在等待队列中。等待队列中记录的冷数据存储设备不会被使用,以防止新的冷数据存储设备同分布式存储系统中记录的其他数据存在冲突。

如果被加入的冷数据存储设备未通过认证,在其记录在待删除队列中。

可选地,冷数据存储设备具有全局地址,还将kv存储设备中记录的引用的原始数据地址属于被分配给待删除队列中的冷数据存储设备的全局地址的<键(k),值(v)>对删除,因为这些<键(k),值(v)>对所记录的值(v)已经无效。

对于通过认证的冷数据存储设备(例如,从等待队列中获取),识别其是新的冷数据存储设备,还是在分布式kv存储系统中曾出现过的冷数据存储设备(830)。

对于新加入到分布式kv存储系统中的冷数据存储设备,将kv存储设备中由于新加入的冷数据存储设备而导致无效的<键(k),值(v)>对删除(840)。例如,冷数据存储设备具有全局地址,新的冷数据存储设备的加入,使得kv存储设备中存储的对应于新加入的冷数据存储设备的全局地址的<键(k),值(v)>对变为无效。

针对该新加入的冷数据存储设备被写入的原始数据,根据对原始数据的可能的搜索生成<键(k),值(v)>对(845),将新生成的<键(k),值(v)>对记录在kv存储设备中(850)。

若通过认证的冷数据存储设备是在分布式kv存储系统中曾出现过的冷数据存储设备,遍历kv存储设备,从kv存储设备中获取各个<键(k),值(v)>对(860)。若<键(k),值(v)>对的值(v)中记录的冷数据存储设备已被删除或被记录在待删除队列中(865),删除该<键(k),值(v)>对(870)。可选地,若<键(k),值(v)>对的值(v)中记录的由冷数据存储设备存储的原始数据不复存在,删除该<键(k),值(v)>对。

若<键(k),值(v)>对的值(v)中记录的由冷数据存储设备存储的原始数据被存储在位于等待队列中的冷数据存储设备中,根据等待队列中的冷数据存储设备更新该<键(k),值(v)>对(880)。

可选地,若<键(k),值(v)>对的值(v)中记录的由冷数据存储设备存储的原始数据被存储在位于等待队列中的冷数据存储设备中,对该<键(k),值(v)>对对应的冷数据存储设备中存储的原始数据进行认证。仅在该原始数据通过认证的情况下,才对该<键(k),值(v)>对进行更新,以避免kv存储设备中的<键(k),值(v)>对被恶意更新。可选地,删除认证失败的原始数据对应的<键(k),值(v)>对。

依然可选地,在分布式kv存储系统使用期间,若基于某<键(k),值(v)>对的值(v)中记录的由冷数据存储设备存储的原始数据读取失败,删除该<键(k),值(v)>对。或者将存储该原始数据的冷数据存储设备标记为无效,以及将kv存储设备中因该冷数据存储设备的无效而导致无效的<键(k),值(v)>对删除。依然可选地,若原始数据读取失败的发生次数超过阈值,遍历kv存储设备的各个<键(k),值(v)>对,获取无法被访问的冷数据存储设备(885)。对一个或多个无法被使用的冷数据存储设备做出警告,以提示需要更换冷数据存储设备(890)。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1