一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式KV存储系统的更新与查询的制作方法

2021-10-24 06:43:00 来源:中国专利 TAG:分布式 存储系统 更新 查询 装置

分布式kv存储系统的更新与查询
技术领域
1.本技术涉及分布式kv存储系统,具体地,涉及分布式kv存储系统中实施更新与查询的方法与装置。


背景技术:

2.图1a展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer system interface,小型计算机系统接口)、sas(serial attached scsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral component interconnect express,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamic random access memory,动态随机访问存储器)110。
3.nand闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram(resistive random access memory,阻变存储器)等是常见的nvm。
4.接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。
5.控制部件104用于控制在接口103、nvm芯片105以及dram 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field

programmable gate array,现场可编程门阵列)、asic(application specific integrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram 110,并可访问dram 110的数据。在dram可存储ftl表和/或缓存的io命令的数据。
6.控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。
7.支持key

value(关键字

值,也简称为“kv”)存储模型的存储设备,提供基于键(关键字)的读操作(get(key))与写操作(put(key,value))。写操作也被称为更新操作。为执行写操作,主机向存储设备提供关键字(key)与值(value),以将值写入存储设备,并将关键字
作为所写入的数据的索引。为执行读操作,主机向存储设备提供关键字,存储设备根据关键字找到对应的值,并将值提供给主机。因而在kv存储系统中,关键字是用来访问数据的索引,而值(value)是被访问的数据。关键字(key)与值(v)一一对应。
8.图1b展示了现有技术的kv存储设备的地址转换系统的示意图。kv存储设备的地址转换系统(也称为ftl表)提供从关键字(k)到逻辑地址或物理地址(例如,ppa,physical page address,物理页地址)的映射。响应于获取关键字(k),用关键字(k)作为索引查询ftl表,得到对应的逻辑地址或物理地址。
9.在申请号为201711392529.2、201711474660.3、201810332295.0、201810286955.6与201810286986.1的中国专利申请中提供了kv存储设备或利用kv存储设备的分布式存储系统。


技术实现要素:

10.根据本技术的第一方面,提供了根据本技术第一方面的第一分布式kv存储系统,包括服务器与多个存储设备,服务器与存储设备通过网络耦合;存储设备包括k

d表,用于记录存储系统的存储设备能够响应的一个或多个关键字。
11.根据本技术的第一方面的第一分布式kv存储系统,提供了根据本技术第一方面的第二分布式kv存储系统,各个存储设备的k

d表是相同的。
12.根据本技术的第一方面的第一或第二分布式kv存储系统,提供了根据本技术第一方面的第三分布式kv存储系统,k

d表的每行记录了每个存储设备的存储设备id与对应的关键字列表,关键字列表包括一个或多个关键字。
13.根据本技术的第一方面的第三分布式kv存储系统,提供了根据本技术第一方面的第四分布式kv存储系统,关键字包括一个或多个属性。
14.根据本技术的第一方面的第一至第四分布式kv存储系统之一,提供了根据本技术第一方面的第五分布式kv存储系统,属性包括图片/视频生成的时间、采集图片/视频的摄像头标识、图片/视频中出现的对象类别、同对象类别相关的属性中的一种或多种;缩略图、快照和/或存储原始图片/视频的地址作为同关键字对应的值。
15.根据本技术的第一方面的第一至第五分布式kv存储系统之一,提供了根据本技术第一方面的第六分布式kv存储系统,k

d表的每行还记录时间、采集对应图片/视频的摄像头id、存储设备的工作状态。
16.根据本技术的第一方面的第一至第六分布式kv存储系统之一,提供了根据本技术第一方面的第七分布式kv存储系统,服务器通过向网络广播命令来访问各存储设备。
17.根据本技术的第一方面的第一至第七分布式kv存储系统之一,提供了根据本技术第一方面的第八分布式kv存储系统,服务器使用更新命令,以将<关键字,值>对插入到分布式存储系统中的一个或多个存储设备中。
18.根据本技术的第一方面的第一至第八分布式kv存储系统之一,提供了根据本技术第一方面的第九分布式kv存储系统,服务器使用查询命令,以获取同关键字对应的值。
19.根据本技术的第一方面的第一至第九分布式kv存储系统之一,提供了根据本技术第一方面的第十分布式kv存储系统,服务器还包括可被各存储设备访问的存储空间:一个或多个共享存储器,以使每个存储设备访问共享存储器,来向服务器申请处理所接收的命
令。
20.根据本技术的第一方面的第一至第十分布式kv存储系统之一,提供了根据本技术第一方面的第十一分布式kv存储系统,存储设备接收网络广播的同更新命令关联的关键字,并使用待更新关键字查询自身的k

d表。
21.根据本技术的第一方面的第十一分布式kv存储系统,提供了根据本技术第一方面的第十二分布式kv存储系统,响应于自身存储了待更新的关键字,向服务器指示自身能够处理对应于待更新关键字的更新命令。
22.根据本技术的第一方面的第十一或第十二分布式kv存储系统,提供了根据本技术第一方面的第十三分布式kv存储系统,存储设备向服务器的第一共享存储器写入自身的存储设备id,以向服务器指示自身能够处理对应于待更新关键字的更新命令。
23.根据本技术的第一方面的第十三分布式kv存储系统,提供了根据本技术第一方面的第十四分布式kv存储系统,各存储设备竞争第一共享存储器的使用权,得到第一共享存储器的使用权的存储设备将自身的存储设备id写入第一共享存储器。
24.根据本技术的第一方面的第十四分布式kv存储系统,提供了根据本技术第一方面的第十五分布式kv存储系统,第一共享存储器临时存储竞争失败的存储设备的id,以作为竞争成功的存储设备出现故障时的替代。
25.根据本技术的第一方面的第十一至第十五分布式kv存储系统之一,提供了根据本技术第一方面的第十六分布式kv存储系统,响应于识别出自身未存储待更新的关键字,则该存储设备不尝试更新第一共享存储器。
26.根据本技术的第一方面的第十一至第十六分布式kv存储系统之一,提供了根据本技术第一方面的第十七分布式kv存储系统,响应于识别出自身未存储待更新的关键字,但具有记录待更新的关键字的能力,则该存储设备也竞争第一共享存储器的使用权。
27.根据本技术的第一方面的第十七分布式kv存储系统,提供了根据本技术第一方面的第十八分布式kv存储系统,若第一存储设备中记录了待更新的关键字,而第二存储设备有能力记录该待更新的关键字,在竞争共享存储器时,第一存储设备具有优先于第二存储设备的优先级。
28.根据本技术的第一方面的第十一至第十八分布式kv存储系统之一,提供了根据本技术第一方面的第十九分布式kv存储系统,服务器响应于第一共享存储器被更新,或者在更新命令被发出的一段时间后,访问同该更新命令关联的第一共享存储器,以识别申请要处理该更新命令的存储设备的id。
29.根据本技术的第一方面的第十九分布式kv存储系统,提供了根据本技术第一方面的第二十分布式kv存储系统,服务器从同该更新命令关联的第一共享存储器中获取处理该更新命令的第一存储设备的存储设备id,并将所获取的存储设备id写入第二共享存储器,以指示由第一存储设备来处理该更新命令。
30.根据本技术的第一方面的第二十分布式kv存储系统,提供了根据本技术第一方面的第二十一分布式kv存储系统,所有向服务器申请处理该更新命令的存储设备读取第二共享存储器,以识别自身是否获得了处理该更新命令的授权。
31.根据本技术的第一方面的第二十一分布式kv存储系统,提供了根据本技术第一方面的第二十二分布式kv存储系统,存储设备在将自身的存储设备id写入第一共享存储器后
的指定时间段内,读取第二共享存储器。
32.根据本技术的第一方面的第二十二分布式kv存储系统,提供了根据本技术第一方面的第二十三分布式kv存储系统,各存储设备各自更新自己的k

d表,在自己的k

d表中记录关联于该更新命令的关键字的存储设备的id。
33.根据本技术的第一方面的第十一至第二十三分布式kv存储系统之一,提供了根据本技术第一方面的第二十四分布式kv存储系统,在k

d表中,还同存储设备id相关联地记录其最后被更新的时间、引起更新的摄像头的标识、存储设备的状态。
34.根据本技术的第一方面的第十一至第二十四分布式kv存储系统之一,提供了根据本技术第一方面的第二十五分布式kv存储系统,响应于更新了第二共享存储器,服务器还广播在第二共享存储器记录的处理该更新命令的存储设备id,使每个收到广播的存储设备,均在自身的k

d表中记录广播的存储设备id与该更新命令的关键字。
35.根据本技术的第一方面的第十一至第二十五分布式kv存储系统之一,提供了根据本技术第一方面的第二十六分布式kv存储系统,未被授权处理更新命令的其他存储设备,在完成了对k

d表的更新后,还向服务器指示k

d表更新处理完成,自身已记录了处理更新命令的存储设备的id以及与更新命令关联的关键字的关联关系。
36.根据本技术的第一方面的第一至第十分布式kv存储系统之一,提供了根据本技术第一方面的第二十七分布式kv存储系统,响应于存储设备接收到广播的同更新命令关联的关键字,向服务器给出应答,并在应答中向服务器指示自身是否有能力响应该更新命令;接收广播的服务器选中的处理该更新命令的存储设备;各个存储设备都更新自身的k

d表;以及被服务器选中的存储设备还记录更新命令指示的关键字与同该关键字对应的值。
37.根据本技术的第一方面的第二十七分布式kv存储系统,提供了根据本技术第一方面的第二十八分布式kv存储系统,存储设备根据自身是否有空闲存储空间、空闲的计算能力和/或自身的k

d表中是否包含了待更新关键字,来决定向服务器给出怎样的指示。
38.根据本技术的第一方面的第二十七或第二十八分布式kv存储系统,提供了根据本技术第一方面的第二十九分布式kv存储系统,若存储设备的k

d表包含了待更新的关键字,但该存储设备当前负载很高,该存储设备可以向服务器指示自己无能力响应该更新命令。
39.根据本技术的第一方面的第二十七至第二十九分布式kv存储系统之一,提供了根据本技术第一方面的第三十分布式kv存储系统,服务器响应于从一个、多个或所有的存储设备收到对其自身是否有能力处理该更新命令的响应,从有能力处理该更新命令的存储设备中选择一个或多个存储设备处理该更新命令。
40.根据本技术的第一方面的第二十七至第三十分布式kv存储系统之一,提供了根据本技术第一方面的第三十一分布式kv存储系统,接收广播的服务器选中的处理该更新命令的存储设备后,各个存储设备在自身的k

d表中相关联地记录处理更新命令的存储设备的id与该更新命令的关键字。
41.根据本技术的第一方面的第二十七至第三十一分布式kv存储系统之一,提供了根据本技术第一方面的第三十二分布式kv存储系统,被选中的存储设备在完成了对自身k

d表的更新与自身的kv存储设备后,向服务器指示对该更新命令的处理完成;未被选中的存储设备在完成了对自身k

d表的更新后,向服务器指示对自身k

d表更新完成。
42.根据本技术的第一方面的第二十七至第三十二分布式kv存储系统之一,提供了根
据本技术第一方面的第三十三分布式kv存储系统,服务器响应于收到各存储设备的响应,更新自身的k

d表,以记录该更新命令的关键字同存储设备的关联。
43.根据本技术的第一方面的第二十七至第三十三分布式kv存储系统之一,提供了根据本技术第一方面的第三十四分布式kv存储系统,服务器无须等待收到所有存储设备的响应后再更新自身的k

d表,而是在发出选中存储设备的消息的指定的时间段后,基于所收集的响应更新自身的k

d表。
44.根据本技术的第一方面的第一至第十分布式kv存储系统之一,提供了根据本技术第一方面的第三十五分布式kv存储系统,响应于存储设备接收广播的同查询命令关联的关键字;使用查询命令的关键字访问自身的k

d表,从k

d表获取同该关键字对应的存储设备id;响应于获取的同该关键字对应的存储设备id与自身的存储设备id相同,向服务器给出查询命令命中消息;响应于收到查询执行消息,执行kv查询,以得到通过关键字对应的值。
45.根据本技术的第一方面的第三十五分布式kv存储系统,提供了根据本技术第一方面的第三十六分布式kv存储系统,存储设备将值传输给服务器。
46.根据本技术的第一方面的第三十五或第三十六分布式kv存储系统,提供了根据本技术第一方面的第三十七分布式kv存储系统,服务器还联同关键字一道广播用于接收同关键字对应的值的存储器地址。
47.根据本技术的第一方面的第三十五至第三十七分布式kv存储系统之一,提供了根据本技术第一方面的第三十八分布式kv存储系统,若响应于发现自身未作为kv存储设备记录查询命令的关键字,向服务器发出查询命令未命中的消息,或者不向服务器给出对该查询命令的应答。
48.根据本技术的第一方面的第三十五至第三十八分布式kv存储系统之一,提供了根据本技术第一方面的第三十九分布式kv存储系统,服务器向一个、多个或所有应答了查询命令命中消息的存储设备发出查询执行消息,以指示收到了查询执行消息的存储设备向服务器传输查询命令的关键字对应的值。
49.根据本技术的第一方面的第三十五至第三十九分布式kv存储系统之一,提供了根据本技术第一方面的第四十分布式kv存储系统,服务器提供的查询执行消息还指示了接收值的存储器地址和/或容量。
50.根据本技术的第一方面的第三十五至第四十分布式kv存储系统之一,提供了根据本技术第一方面的第四十一分布式kv存储系统,存储设备向服务器提供的值不超过查询执行消息指示的存储器容量。
51.根据本技术的第一方面的第三十五至第四十一分布式kv存储系统之一,提供了根据本技术第一方面的第四十二分布式kv存储系统,服务器拒绝接收超过存储器容量的值的部分。
52.根据本技术的第一方面的第三十五至第四十二分布式kv存储系统之一,提供了根据本技术第一方面的第四十三分布式kv存储系统,服务器通过查询执行消息指示各存储设备通过多次传输来提供值。
53.根据本技术的第一方面的第三十五至第四十三分布式kv存储系统之一,提供了根据本技术第一方面的第四十四分布式kv存储系统,响应于向服务器传输的值已传输了指定长度,还向服务器发送指示存储器满的消息。
54.根据本技术的第一方面的第四十四分布式kv存储系统,提供了根据本技术第一方面的第四十五分布式kv存储系统,服务器向存储设备指示已经出现了可用的存储器,以使存储设备继续向服务器传输值的其他部分。
55.根据本技术的第一方面的第三十五至第四十五分布式kv存储系统之一,提供了根据本技术第一方面的第四十六分布式kv存储系统,响应于向服务器传输值完成,还向服务器发送查询命令处理完成的消息。
56.根据本技术的第二方面,提供了根据本技术第二方面的第一处理更新命令的方法,包括:接收网络广播的同更新命令关联的关键字;向服务器指示自身能够处理对应于待更新关键字的更新命令;响应于收到更新执行消息,并记录更新命令指示的关键字与同该关键字对应的值。
57.根据本技术的第二方面的第一处理更新命令的方法,提供了根据本技术第二方面的第二处理更新命令的方法,响应于自身存储了待更新的关键字,向服务器指示自身能够处理对应于待更新关键字的更新命令。
58.根据本技术的第二方面的第一处理更新命令的方法,提供了根据本技术第二方面的第三处理更新命令的方法,更新完成后,向服务器指示更新命令处理完成。
59.根据本技术的第二方面的第一处理更新命令的方法,提供了根据本技术第二方面的第四处理更新命令的方法,响应于收到更新执行消息,还更新自身的k

d表。
60.根据本技术的第二方面的第一处理更新命令的方法,提供了根据本技术第二方面的第五处理更新命令的方法,使用待更新关键字查询自身的k

d表,以识别自身能够处理对应于待更新关键字的更新命令。
61.根据本技术的第二方面的第一处理更新命令的方法,提供了根据本技术第二方面的第六处理更新命令的方法,还向各存储设备提供同待更新关键字关联的共享存储器的地址。
62.根据本技术的第二方面的第一至第六处理更新命令的方法之一,提供了根据本技术第二方面的第七处理更新命令的方法,向服务器的第一共享存储器写入自身的存储设备id,以向服务器指示自身能够处理对应于待更新关键字的更新命令。
63.根据本技术的第二方面的第一至第七处理更新命令的方法之一,提供了根据本技术第二方面的第八处理更新命令的方法,各存储设备竞争第一共享存储器的使用权,得到第一共享存储器的使用权的存储设备将自身的存储设备id写入第一共享存储器。
64.根据本技术的第二方面的第八处理更新命令的方法,提供了根据本技术第二方面的第九处理更新命令的方法,第一共享存储器临时存储竞争失败的存储设备的id,以作为竞争成功的存储设备出现故障时的替代。
65.根据本技术的第二方面的第一至第六处理更新命令的方法之一,提供了根据本技术第二方面的第十处理更新命令的方法,响应于识别出自身未存储待更新的关键字,则该存储设备不尝试更新第一共享存储器。
66.根据本技术的第二方面的第一至第六处理更新命令的方法之一,提供了根据本技术第二方面的第十一处理更新命令的方法,响应于识别出自身未存储待更新的关键字,但具有记录待更新的关键字的能力,则该存储设备也竞争第一共享存储器的使用权。
67.根据本技术的第二方面的第十一处理更新命令的方法,提供了根据本技术第二方
面的第十二处理更新命令的方法,若第一存储设备中记录了待更新的关键字,而第二存储设备有能力记录该待更新的关键字,在竞争共享存储器时,第一存储设备具有优先于第二存储设备的优先级。
68.根据本技术的第二方面的第一至第十二处理更新命令的方法之一,提供了根据本技术第二方面的第十三处理更新命令的方法,服务器响应于第一共享存储器被更新,或者在更新命令被发出的一段时间后,访问同该更新命令关联的第一共享存储器,以识别申请要处理该更新命令的存储设备的id。
69.根据本技术的第二方面的第十三处理更新命令的方法,提供了根据本技术第二方面的第十四处理更新命令的方法,服务器从同该更新命令关联的第一共享存储器中获取处理该更新命令的第一存储设备的存储设备id,并将所获取的存储设备id写入第二共享存储器,以指示由第一存储设备来处理该更新命令。
70.根据本技术的第二方面的第十四处理更新命令的方法,提供了根据本技术第二方面的第十五处理更新命令的方法,所有向服务器申请处理该更新命令的存储设备读取第二共享存储器,以识别自身是否获得了处理该更新命令的授权。
71.根据本技术的第二方面的第十五处理更新命令的方法,提供了根据本技术第二方面的第十六处理更新命令的方法,存储设备在将自身的存储设备id写入第一共享存储器后的指定时间段内,读取第二共享存储器。
72.根据本技术的第二方面的第十六处理更新命令的方法,提供了根据本技术第二方面的第十七处理更新命令的方法,各存储设备各自更新自己的k

d表,在自己的k

d表中记录关联于该更新命令的关键字的存储设备的id。
73.根据本技术的第二方面的第一至十七处理更新命令的方法之一,提供了根据本技术第二方面的第十八处理更新命令的方法,在k

d表中,还同存储设备id相关联地记录其最后被更新的时间、引起更新的摄像头的标识、存储设备的状态。
74.根据本技术的第二方面的第十五至第十八处理更新命令的方法之一,提供了根据本技术第二方面的第十九处理更新命令的方法,响应于更新了第二共享存储器,服务器还广播在第二共享存储器记录的处理该更新命令的存储设备id,使每个收到广播的存储设备,均在自身的k

d表中记录广播的存储设备id与该更新命令的关键字。
75.根据本技术的第二方面的第一至第十九处理更新命令的方法之一,提供了根据本技术第二方面的第二十处理更新命令的方法,未被授权处理更新命令的其他存储设备,在完成了对k

d表的更新后,还向服务器指示k

d表更新处理完成,自身已记录了处理更新命令的存储设备的id以及与更新命令关联的关键字的关联关系。
76.根据本技术的第三方面,提供了根据本技术第三方面的第一处理更新命令的方法,包括:接收广播的同更新命令关联的关键字;向服务器给出应答,并在应答中向服务器指示自身是否有能力响应该更新命令;接收广播的服务器选中的处理该更新命令的存储设备;各个存储设备都更新自身的k

d表;以及被服务器选中的存储设备还记录更新命令指示的关键字与同该关键字对应的值。
77.根据本技术的第三方面的第一处理更新命令的方法,提供了根据本技术第三方面的第二处理更新命令的方法,存储设备根据自身是否有空闲存储空间、空闲的计算能力和/或自身的k

d表中是否包含了待更新关键字,来决定向服务器给出怎样的指示。
78.根据本技术的第三方面的第一或第二处理更新命令的方法,提供了根据本技术第三方面的第三处理更新命令的方法,若存储设备的k

d表包含了待更新的关键字,但该存储设备当前负载很高,该存储设备可以向服务器指示自己无能力响应该更新命令。
79.根据本技术的第三方面的第一至第三处理更新命令的方法之一,提供了根据本技术第三方面的第四处理更新命令的方法,服务器响应于从一个、多个或所有的存储设备收到对其自身是否有能力处理该更新命令的响应,从有能力处理该更新命令的存储设备中选择一个或多个存储设备处理该更新命令。
80.根据本技术的第三方面的第一至第四处理更新命令的方法之一,提供了根据本技术第三方面的第五处理更新命令的方法,接收广播的服务器选中的处理该更新命令的存储设备后,各个存储设备在自身的k

d表中相关联地记录处理更新命令的存储设备的id与该更新命令的关键字。
81.根据本技术的第三方面的第一至第五处理更新命令的方法之一,提供了根据本技术第三方面的第六处理更新命令的方法,被选中的存储设备在完成了对自身k

d表的更新与自身的kv存储设备后,向服务器指示对该更新命令的处理完成;未被选中的存储设备在完成了对自身k

d表的更新后,向服务器指示对自身k

d表更新完成。
82.根据本技术的第三方面的第一至第六处理更新命令的方法之一,提供了根据本技术第三方面的第七处理更新命令的方法,服务器响应于收到各存储设备的响应,更新自身的k

d表,以记录该更新命令的关键字同存储设备的关联。
83.根据本技术的第三方面的第一至第七处理更新命令的方法之一,提供了根据本技术第三方面的第八处理更新命令的方法,服务器无须等待收到所有存储设备的响应后再更新自身的k

d表,而是在发出选中存储设备的消息的指定的时间段后,基于所收集的响应更新自身的k

d表。
84.根据本技术的第四方面,提供了根据本技术第四方面的第一处理查询命令的方法,包括:接收广播的同查询命令关联的关键字;使用查询命令的关键字访问自身的k

d表,从k

d表获取同该关键字对应的存储设备id;响应于获取的同该关键字对应的存储设备id与自身的存储设备id相同,向服务器给出查询命令命中消息;响应于收到查询执行消息,执行kv查询,以得到通过关键字对应的值。
85.根据本技术的第四方面的第一处理查询命令的方法,提供了根据本技术第四方面的第二处理查询命令的方法,并将值传输给服务器。
86.根据本技术的第四方面的第一处理查询命令的方法,提供了根据本技术第四方面的第三处理查询命令的方法,服务器还联同关键字一道广播用于接收同关键字对应的值的存储器地址。
87.根据本技术的第四方面的第一至第三处理查询命令的方法之一,提供了根据本技术第四方面的第四处理查询命令的方法,若响应于发现自身未作为kv存储设备记录查询命令的关键字,向服务器发出查询命令未命中的消息,或者不向服务器给出对该查询命令的应答。
88.根据本技术的第四方面的第一至第四处理查询命令的方法之一,提供了根据本技术第四方面的第五处理查询命令的方法,服务器向一个、多个或所有应答了查询命令命中消息的存储设备发出查询执行消息,以指示收到了查询执行消息的存储设备向服务器传输
查询命令的关键字对应的值。
89.根据本技术的第四方面的第一至第五处理查询命令的方法之一,提供了根据本技术第四方面的第六处理查询命令的方法,服务器提供的查询执行消息还指示了接收值的存储器地址和/或容量。
90.根据本技术的第四方面的第一至第六处理查询命令的方法之一,提供了根据本技术第四方面的第七处理查询命令的方法,存储设备向服务器提供的值不超过查询执行消息指示的存储器容量。
91.根据本技术的第四方面的第一至第七处理查询命令的方法之一,提供了根据本技术第四方面的第八处理查询命令的方法,服务器拒绝接收超过存储器容量的值的部分。
92.根据本技术的第四方面的第一至第八处理查询命令的方法之一,提供了根据本技术第四方面的第九处理查询命令的方法,服务器通过查询执行消息指示各存储设备通过多次传输来提供值。
93.根据本技术的第四方面的第一至第九处理查询命令的方法之一,提供了根据本技术第四方面的第十处理查询命令的方法,响应于向服务器传输的值已传输了指定长度,还向服务器发送指示存储器满的消息。
94.根据本技术的第四方面的第十处理查询命令的方法,提供了根据本技术第四方面的第十一处理查询命令的方法,服务器向存储设备指示已经出现了可用的存储器,以使存储设备继续向服务器传输值的其他部分。
95.根据本技术的第四方面的第一至第十一处理查询命令的方法之一,提供了根据本技术第四方面的第十二处理查询命令的方法,服务器汇集从一个、多个或所有传输了值的存储设备获取的数据,作为查询命令的结果。
96.根据本技术的第四方面的第一至第十二处理查询命令的方法之一,提供了根据本技术第四方面的第十三处理查询命令的方法,响应于向服务器传输值完成,还向服务器发送查询命令处理完成的消息。
97.根据本技术的第五方面,提供一种包括程序代码的程序,当被载入存储设备并在存储设备上执行时,所述程序代码使所述存储设备执行根据本技术第二方面、第三方面或第四方面的方法之一。
附图说明
98.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
99.图1a是现有技术中存储设备的框图;
100.图1b是现有技术的存储设备的地址转换系统的示意图;
101.图2a展示了根据本技术实施例的k

d表的示意图;
102.图2b展示了根据本技术实施例的分布式存储系统的框图;
103.图3展示了根据本技术实施例的处理更新命令的流程图;
104.图4展示了根据本技术又一实施例的处理更新命令的流程图;
105.图5展示了根据本技术实施例的处理查询命令的流程图;
106.图6展示了根据本技术又一实施例的处理查询命令的流程图。
具体实施方式
107.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
108.以应用于视频监控的存储系统为例,对摄像头采集的图片或视频生成多种维度的属性并存储。属性包括例如图片/视频生成的时间、采集图片/视频的摄像头标识、图片/视频中出现的对象类别(例如人、动物、车辆)、同对象类别相关的属性(例如年龄、性别、车牌号等)。还为图片/视频生成缩略图或快照,以便于用户通过浏览缩略图或快照而快速分辨查询的结果。
109.根据本技术的实施例,将多种维度的属性与缩略图/快照作为结构化信息存储,从而分布式存储系统提供根据一种或多种属性查询缩略图/快照的功能,可选地或进一步地提供根据一种或多种属性查询采集的原始图片/视频的功能。显然,在一次查询中,具有被查询的属性的缩略图/快照可以有多个。将属性作为关键字(k),而将缩略图、快照和/或存储原始图片/视频的地址作为同关键字对应的值(v)。
110.图2a展示了根据本技术实施例的k

d表的示意图。
111.根据本技术的实施例,提供了k

d表,用于记录属性与存储设备(例如,硬盘)的对应关系,从而指示了哪个或哪些存储设备能响应指定关键字的查询。
112.图2a中,用表的形式展示了k

d表,表的每行记录了“存储设备id”与关键字列表。存储设备id用于指示存储设备,而关键字列表包括一个或多个关键字。k

d表的每行中相关联地记录了在某个存储设备中存储的关键字。
113.可选地,存储设备是kv存储设备。根据本技术的实施例,除了作为kv存储设备,还提供k

d表,并提供对k

d表的更新与查询功能。根据本技术实施例的教导,所属领域技术人员将能够容易地实现或获得提供k

d表的kv存储设备,其提供两种存储能力,其一为kv存储设备,其二为根据关键字查询k

d表,并返回存储设备id。
114.可选地,k

d表的每行还记录时间(更新时间)、采集对应图片/视频的摄像头id、存储设备的工作状态(可读、已满、关键字数量达到/未达到上限等)。
115.图2b展示了根据本技术实施例的分布式存储系统的框图。
116.分布式存储系统包括服务器与多个存储设备,服务器与存储设备通过网络耦合。存储设备的每个,包括k

d表。每个存储设备的k

d表都是用于整个分布式存储系统的k

d表,其中记录了分布式存储系统的各存储设备能够响应的一个或多个关键字。可选地,各存储设备的k

d表是相同的。
117.服务器通过向网络广播命令来访问各存储设备。被广播的命令将被每个正常工作的存储设备接收。服务器使用更新命令,以将<关键字key,值v>对插入到分布式存储系统中的一个或多个存储设备。服务器使用查询命令,以获取同关键字key对应的值v。
118.可选地,服务器不知道关键字key与存储设备的对应关系,从而对更新命令与查询
命令,服务器均向全网广播,从而使得有能力处理更新命令/查询命令的存储设备能接收到服务器发出的命令。
119.根据本技术的实施例,服务器还包括可被各存储设备访问的存储空间,例如共享存储器。服务器为广播的每条更新命令提供共享存储区a与b,分布式存储系统的每个存储设备访问共享存储器a和/或b,以向服务器申请处理所接收的更新命令。存储设备使用例如rdma(remotedirectmemoryaccess,远程直接存储器访问)访问共享存储器a和/或b。
120.图3展示了根据本技术实施例的处理更新命令的流程图。
121.分布式存储系统包括服务器与通过网络耦合到服务器的存储设备1与存储设备2。更新命令的处理包括两个阶段。在第一阶段,服务器向网络广播同更新命令关联的关键字(key)(称为待更新关键字)。可选地,服务器还通过广播向各存储设备提供同待更新关键字关联的存储区a和/或b的地址。
122.接收到服务器发出的待更新关键字的存储设备,使用待更新关键字查询自身的k

d表,以识别自身作为kv存储设备是否存储了待更新的关键字。例如,存储设备从自身的k

d表中查询包含了待更新关键字的关键字列表所对应的存储设备id是否指示了自身存储设备。
123.识别出自身存储了待更新的关键字的存储设备向服务器给出应答。通过在服务器的共享存储器a中写入自身的存储设备id,存储设备向服务器指示自身能够处理对应于待更新关键字的更新命令。
124.在图2的例子中,存储设备1与存储设备2均识别出自身存储了待更新的关键字。在此情况下,存储设备1与存储设备2竞争共享存储器a的使用权。竞争成功得到了共享存储器a的使用权的存储设备(例如,存储设备1),将自身的存储设备id写入共享存储器a。而存储设备2向共享存储器a写入自身的存储设备id的操作失败。可选地,服务器临时存储存储设备2的存储设备id,以作为存储设备1出现故障时的替代。
125.可选地,若存储设备识别出自身未存储待更新的关键字,则该存储设备不尝试更新共享存储器a。可选地,该存储设备就该更新命令不做出响应以减少网络中的不必要流量。
126.依然可选地,若存储设备识别出自身未存储待更新的关键字,但该存储设备有能力(例如有空闲存储空间)来记录待更新的关键字,则该存储设备也尝试向共享存储器a写入自身的存储设备id。可选地,若存储设备1中记录了待更新的关键字,而存储设备2有能力记录该待更新的关键字,在竞争共享存储器a时,存储设备1与存储设备2有不同的优先级。
127.在处理更新命令的第二阶段,服务器响应于共享存储器a被更新,或者在更新命令被发出的一段时间后,访问同该更新命令关联的共享存储器a,以识别哪个存储设备申请要处理该更新命令。服务器从同该更新命令关联的共享存储器a中获取存储设备id(存储设备1),并将所获取的存储设备id写入共享存储器b,以指示由存储设备1来处理该更新命令。
128.所有向服务器申请处理该更新命令的存储设备在尝试更新共享存储器a后,读取共享存储器b。以识别自身是否获得了处理该更新命令的授权。可选地,存储设备在尝试更新共享存储器a后的指定时间段内,读取共享存储器b。从而服务器无须知晓各存储设备的地址,而各存储设备从更新命令中获取服务器的地址。
129.作为举例,参看图2,存储设备1从共享存储器b读到了自身的存储设备id,而存储
设备2未从共享存储器读到自身的存储设备id,而是读到了存储设备1的存储设备id。从而存储设备1知晓自身获得了处理该更新命令的权力,而存储设备2知晓自身未获得处理该更新命令的权力,而是存储设备1获得了处理该更新命令的权力。
130.作为响应,存储设备1与存储设备2各自更新自己的k

d表,在自己的k

d表中记录存储设备1关联于该更新命令的关键字。从而依据存储设备1或存储设备2的k

d表,均记录了存储设备1存储了该更新命令的关键字与对应的值。
131.可选地,在k

d表中,还同存储设备id相关联地记录其最后被更新的时间、引起更新的摄像头的标识、存储设备的状态等信息。
132.可选地,伴随着服务器更新了共享存储器b,还向网络广播在共享存储器b记录的处理该更新命令的存储设备id。从而网络中每个收到广播的存储设备,均在自身的k

d表中记录广播的存储设备id与该更新命令的关键字。
133.继续参看图3,由于存储设备1被服务器授权处理该更新命令,除了更新自身的k

d表,存储设备1作为kv存储设备响应该更新命令,以记录更新命令指示的关键字与同该关键字对应的值(更新kv存储)。
134.被授权处理更新命令的存储设备1,在完成了对k

d表更新与kv存储设备的更新后,向服务器指示更新命令处理完成,自身已执行了更新命令。未被授权处理该更新命令的存储设备2,在完成了对k

d表的更新后,向服务器指示k

d表更新处理完成,自身已记录了存储设备1同该更新命令的关键字的关联关系。
135.图4展示了根据本技术又一实施例的处理更新命令的流程图。
136.分布式存储系统包括服务器与通过网络耦合到服务器的存储设备1与存储设备2。各存储设备维护自身的k

d表。可选地,服务器自己维护全局的k

d表。
137.更新命令的处理包括两个阶段。在第一阶段,服务器向网络广播同更新命令关联的关键字(key)(称为待更新关键字)。
138.接收到服务器发出的待更新关键字的所有存储设备,都向服务器给出应答,并在应答中向服务器指示自身是否有能力响应该更新命令。存储设备根据自身是否有空闲存储空间、空闲的计算能力和/或自身的k

d表中是否包含了待更新关键字,来决定向服务器给出怎样的指示。作为举例,存储设备1的k

d表包含了待更新的关键字,但存储设备1当前负载很高,存储设备1可以向服务器指示自己无能力响应该更新命令。
139.服务器响应于从一个、多个或所有的存储设备收到对其自身是否有能力处理该更新命令的响应,从有能力处理该更新命令的存储设备中选择一个或多个,并进入更新命令处理的第二阶段。在第二阶段,服务器向网络广播其选中的处理该更新命令的存储设备。作为举例,图3中,服务器选择了存储设备1来处理该更新命令。
140.响应于收到服务器提供的选择存储设备1来处理该更新命令的消息,存储设备1与存储设备2都更新自身的k

d表,在自身的k

d表中相关联地记录存储设备1与该更新命令的关键字。以及服务器被选中的存储设备1还作为kv存储设备响应该更新命令,以记录更新命令指示的关键字与同该关键字对应的值(更新kv存储)。
141.被选中的存储设备1在完成了对自身k

d表的更新与自身的kv存储设备后,向服务器指示对该更新命令的处理完成。未被选中的存储设备在完成了对自身k

d表的更新后,向服务器指示对自身k

d表更新完成。
142.可选地,服务器响应于收到各存储设备的响应,更新自身的k

d表,以记录该更新命令的关键字同存储设备1关联。可选地,服务器无须等待收到所有存储设备的响应后再更新自身的k

d表,而是服务器在发出选中存储设备的消息的指定的时间段流逝后,基于所收集的响应更新自身的k

d表。
143.图5展示了根据本技术实施例的处理查询命令的流程图。
144.分布式存储系统包括服务器与通过网络耦合到服务器的存储设备1与存储设备2。各存储设备维护自身的k

d表。可选地,服务器自己维护全局的k

d表。
145.查询命令的处理包括两个阶段。在第一阶段,服务器向网络广播同查询命令关联的关键字(key)(称为待查询关键字)。
146.收到广播的查询命令的各存储设备用查询命令的关键字访问自身的k

d表,从k

d表获取同该关键字对应的存储设备id,以识别自身作为kv存储设备是否记录了该关键字key。
147.识别出自身作为kv存储设备记录了查询命令的关键字的存储设备,向服务器给出查询命令命中消息。图5的例子中,存储设备1与存储设备2通过查询自身的k

d表,发现各自都作为kv存储设备记录了查询命令的关键字。因而,存储设备1与存储设备2都向服务器给出查询命令命中消息。若存储设备发现自身未作为kv存储设备记录查询命令的关键字,向服务器发出查询命令未命中的消息,或者不向服务器给出对该查询命令的应答。
148.服务器依据从存储设备接收的对查询命令的应答,开始查询命令的处理的第二阶段。在第二阶段,服务器向一个、多个或所有应答了查询命令命中消息的存储设备发出查询执行消息,以指示收到了查询执行消息的存储设备向服务器传输查询命令的关键字(key)对应的值(v)。
149.响应于收到查询执行消息,存储设备执行kv查询,用该关键字(key)访问自身的存储介质,以得到通过关键字(key)对应的值(v)。并将值(v)传输给服务器。
150.服务器汇集从一个、多个或所有传输了值(v)的存储设备获取的数据,作为查询命令的结果。例如,查询命令的关键字指示了汽车,而各存储设备在给出的值(v)中提供一个或多个具有属性汽车的图片/视频或者图片的缩略图/视频的快照。服务器将获得的所有结果汇集为查询命令的结果。
151.可选地,服务器提供的查询执行消息还指示了接收值(v)的存储器地址和/或容量。存储设备提供的值(v)不超过查询执行消息指示的存储器容量。或者服务器拒绝接收超过存储器容量的值(v)的部分。依然可选地,服务器通过查询执行消息指示各存储设备通过多次传输来提供值(v)。
152.图6展示了根据本技术又一实施例的处理查询命令的流程图。
153.分布式存储系统包括服务器与通过网络耦合到服务器的存储设备1与存储设备2。各存储设备维护自身的k

d表。可选地,服务器自己维护全局的k

d表。
154.服务器向网络广播同查询命令关联的关键字(key)(称为待查询关键字)。可选地,服务器还联同关键字一道广播用于接收同关键字(key)对应的值的存储器地址。
155.收到广播的查询命令的各存储设备用查询命令的关键字访问自身的k

d表,从k

d表获取同该关键字对应的存储设备id,以识别自身作为kv存储设备是否记录了该关键字key。
156.识别出自身作为kv存储设备记录了查询命令的关键字的存储设备,向服务器给出查询命令命中消息。以及还向服务器传输同查询命令的关键字key对应的值。
157.图6的例子中,存储设备1与存储设备2通过查询自身的k

d表,发现各自都作为kv存储设备记录了查询命令的关键字。因而,存储设备1与存储设备2都向服务器给出查询命令命中消息。并且,存储设备1与存储设备2也都基于用关键字key查询自身的存储介质得到的值(v)传输给服务器。
158.可选地,响应于向服务器传输值(v)完成,存储设备还向服务器发送查询命令处理完成的消息。
159.依然可选地,响应于向服务器传输的值(v)已传输了指定长度(使得服务器的接收值(v)的存储器被填满),存储设备还向服务器发送指示缓存满的消息。服务器相应地释放缓存,并向存储设备指示已经出现了可用的缓存。存储设备响应于收到服务器提供的缓存可用的消息,继续向服务器传输值(v)的其他部分。
160.可选地,若通过查询自身的k

d表而知晓自身不能响应查询命令的存储设备,不就服务器的查询命令做出应答。
161.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜