CN110324371B - 基于区块的分布式kv存储系统 - Google Patents
基于区块的分布式kv存储系统 Download PDFInfo
- Publication number
- CN110324371B CN110324371B CN201810271465.9A CN201810271465A CN110324371B CN 110324371 B CN110324371 B CN 110324371B CN 201810271465 A CN201810271465 A CN 201810271465A CN 110324371 B CN110324371 B CN 110324371B
- Authority
- CN
- China
- Prior art keywords
- node
- query
- resource
- query request
- network
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了基于区块的分布式KV存储系统。所提供的分布式存储系统,包括耦合到网络的查询节点、中继节点与资源节点,查询节点用于向网络发出用于查询网络中的资源的查询请求,中继节点用于在网络中转发查询请求或转发指示查询成功的消息,资源节点用于提供分布式存储系统的资源;中继节点记录了资源映射信息,资源映射信息包括多条记录,每条记录指示查询请求从被查询节点发出到资源节点应答所经历的各个网络节点的区块;资源节点记录了转换信息,转换信息的每条记录指示从键到地址的映射。
Description
技术领域
本申请涉及存储系统,具体地,涉及使用KV存储设备通过区块技术构建的分布式存储系统。
背景技术
图1A展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储器目标(Target)是NAND闪存封装内的共享CE(,Chip Enable,芯片使能)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
FTL表包括多个FTL表条目(或称表项)。在一种情况下,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一种情况下,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一种情况下,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一种情况下,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。
支持Key-Value(键-数据,也简称为“KV”)存储模型的存储设备,提供基于键(Key)的读操作(Get(Key))与写操作(Put(Key,Value))。为执行写操作,主机向存储设备提供键(Key)与数据(Value),以将数据写入存储设备,并将键作为所写入的数据的索引。为执行读操作,主机向存储设备提供键,存储设备根据键找到数据,并将数据提供给主机。因而在KV存储系统中,键是用来访问数据的索引,而数据(Value)是被访问的数据。
图1B展示了现有技术的KV存储设备的地址转换系统的示意图。支持KV存储模型的固态存储设备的地址转换系统(也称为FTL表)提供从键到逻辑地址或物理地址的映射。可选地,FTL表中记录的逻辑地址或物理地址可以是数据帧(Data frame)的起始地址。数据帧是具有固定大小的数据单元,物理页包括1个或多个数据帧。键作为FTL表的索引。用键作为索引查询FTL表,得到对应的物理地址。FTL表可以由数组、链表、树等多种数据结构实现。可选地,将不定长的键进行哈希运算,得到定长的哈希键(例如,4字节/8字节),作为FTL表的索引。
发明内容
分布式存储系统需要解决全网存储资源的管理与使用问题,还要应对非法节点对网络的入侵,防止非法节点窃取网络中的资源数据以及对分布式存储系统正常运行的干扰。
根据本申请的第一方面,提供了根据本申请第一方面的第一分布式存储系统,包括耦合到网络的查询节点、中继节点与资源节点,查询节点用于向网络发出用于查询网络中的资源的查询请求,中继节点用于在网络中转发查询请求或转发指示查询成功的消息,资源节点用于提供分布式存储系统的资源;中继节点记录了资源映射信息,资源映射信息包括多条记录,每条记录指示查询请求从被查询节点发出到资源节点应答所经历的各个网络节点的区块;资源节点记录了转换信息,转换信息的每条记录指示从键到地址的映射。
根据本申请第一方面的第一分布式存储系统,提供了根据本申请第一方面的第二分布式存储系统,其中查询请求携带了键。
根据本申请第一方面的第一分布式存储系统,提供了根据本申请第一方面的第三分布式存储系统,其中资源节点根据查询请求生成键。
根据本申请第一方面的第一至第三分布式存储系统之一,提供了根据本申请第一方面的第四分布式存储系统,其中资源节点根据转换信息识别自身是否记录了查询请求所指示的键所对应的值,并在自身记录了查询请求所指示的键所对应的值的情况下,生成指示查询成功的消息,并发送给网络。
根据本申请第一方面的第一至第四分布式存储系统之一,提供了根据本申请第一方面的第五分布式存储系统,其中资源节点还记录资源映射信息。
根据本申请第一方面的第一至第五分布式存储系统之一,提供了根据本申请第一方面的第六分布式存储系统,其中查询节点通过广播向网络发送查询请求,中继节点通过广播在网络中转发查询请求或指示查询成功的消息。
根据本申请第一方面的第一至第六分布式存储系统之一,提供了根据本申请第一方面的第七分布式存储系统,其中中继节点响应于收到指示查询成功的消息,更新资源映射信息。
根据本申请第一方面的第一至第八分布式存储系统之一,提供了根据本申请第一方面的第八分布式存储系统,其中中继节点或资源节点响应于收到查询请求,在查询请求中添加记录了自身信息的区块,并向网络转发查询请求。
根据本申请第一方面的第五分布式存储系统,提供了根据本申请第一方面的第九分布式存储系统,其中资源节点在自身未记录查询请求所指示的键所对应的值的情况下,在查询请求中添加记录了自身信息的区块,并向网络转发查询请求。
根据本申请第一方面的第一至第九分布式存储系统之一,提供了根据本申请第一方面的第十分布式存储系统,其中区块包括节点的节点标识、节点的特征信息的数字签名与指示区块被添加的时间的时间戳。
根据本申请第一方面的第十分布式存储系统之一,提供了根据本申请第一方面的第十一分布式存储系统,其中节点的特征信息的数字签名经过加密,并且可通过节点的公钥而被解密。
根据本申请第一方面的第七分布式存储系统,提供了根据本申请第一方面的第十二分布式存储系统,其中资源节点或中继节点响应于收到指示查询成功的消息,向网络广播指示查询成功的消息。
根据本申请第一方面的第四分布式存储系统,提供了根据本申请第一方面的第十三分布式存储系统,其中资源节点通过在查询消息中添加对应于自身的区块来生成指示查询成功的消息。
根据本申请第一方面的第一至第十一分布式存储系统之一,提供了根据本申请第一方面的第十四分布式存储系统,其中资源节点或中继节点响应于收到指示查询成功的消息,根据指示查询成功的消息的区块,对区块进行验证。
根据本申请第一方面的第十四分布式存储系统,提供了根据本申请第一方面的第十五分布式存储系统,其中资源节点或中继节点响应于对区块进行的验证失败,丢弃所收到的指示查询成功的消息。
根据本申请第一方面的第十四或十五分布式存储系统,提供了根据本申请第一方面的第十六分布式存储系统,其中资源节点或中继节点响应于对区块进行的验证成功,更新资源映射信息,并向网络转发所收到的指示查询成功的消息。
根据本申请第一方面的第十四至十六分布式存储系统之一,提供了根据本申请第一方面的第十七分布式存储系统,其中资源节点或中继节点解密区块的特征信息的数字签名,识别解密后的区块的特征信息同区块的节点标识是否一致来识别对区块的验证是否成功。
根据本申请第一方面的第十七分布式存储系统,提供了根据本申请第一方面的第十八分布式存储系统,其中若解密后的区块的特征信息同区块的节点标识不一致,实施验证的资源节点或中继节点识别区块被篡改,从而识别验证失败。
根据本申请第一方面的第十七或十八分布式存储系统,提供了根据本申请第一方面的第十九分布式存储系统,其中若解密后的区块的特征信息同区块的节点标识一致,实施验证的资源节点或中继节点查询合法节点集合以识别区块对应的节点是否为合法节点,若区块对应的节点不是合法节点,对区块的验证失败。
根据本申请第一方面的第十四至第十十九分布式存储系统之一,提供了根据本申请第一方面的第二十分布式存储系统,其中资源映射信息中记录通过查询请求中的各区块指示的路径成功响应查询请求的次数。
根据本申请第一方面的第二十分布式存储系统,提供了根据本申请第一方面的第二十一分布式存储系统,其中资源节点或中继节点响应于对第一指示查询成功的消息的各区块进行的验证成功,进一步比较第一指示查询成功的消息中的成功响应第一查询请求的第一资源节点,与资源映射信息中记录的成功响应第一查询请求的第二资源节点是否为相同的资源节点。
根据本申请第一方面的第二十一分布式存储系统,提供了根据本申请第一方面的第二十二分布式存储系统,其中若第一资源节点与第二资源节点是相同的资源节点,资源节点或中继节点更新资源映射信息中对应于第一查询请求的条目的计数值。
根据本申请第一方面的第二十一或二十二分布式存储系统,提供了根据本申请第一方面的第二十三分布式存储系统,其中,若第一资源节点与第二资源节点是不同的资源节点,资源节点或中继节点忽略第一指示查询成功的消息。
根据本申请第一方面的第二十二分布式存储系统,提供了根据本申请第一方面的第二十四分布式存储系统,其中,还比较第一条目记录的查询请求到达第一资源节点所通过的各个节点形成的第一路径与接收的指示查询成功的消息中所指示的查询请求到达第二资源节点所通过的各个节点形成的第二路径是否相同,若第一路径与第二路径相同,资源节点或中继节点更新资源映射信息中对应于第一查询请求的条目的计数值。
根据本申请第一方面的第二十四分布式存储系统,提供了根据本申请第一方面的第二十五分布式存储系统,其中若第一路径与第二路径不同,资源节点或中继节点忽略第一指示查询成功的消息。
根据本申请第一方面的第十九分布式存储系统,提供了根据本申请第一方面的第二十六分布式存储系统,其中响应于识别出非法节点,资源节点或中继节点向网络广播消息来指示网络中的节点屏蔽所识别的非法节点。
根据本申请第一方面的第二十三或二十五分布式存储系统,提供了根据本申请第一方面的第二十七分布式存储系统,其中资源节点或中继节点响应于忽略第一指示查询成功的消息的次数超过阈值,则向网络广播消息来指示网络中的节点屏蔽第一资源节点。
根据本申请第一方面的第二十分布式存储系统,提供了根据本申请第一方面的第二十八分布式存储系统,资源节点或中继节点响应于对第二指示查询成功的消息的各区块进行的验证成功,进一步比较第二指示查询成功的消息中的成功响应第二查询请求的第一查询节点,与资源映射信息中记录的成功响应第二查询请求的第二查询节点是否为相同的资源节点。
根据本申请第一方面的第二十八分布式存储系统,提供了根据本申请第一方面的第二十九分布式存储系统,若第一查询节点与第二查询节点是不同的资源节点,资源节点或中继节点忽略第二指示查询成功的消息。
根据本申请第一方面的第二十九分布式存储系统,提供了根据本申请第一方面的第三十分布式存储系统,其中资源节点或中继节点响应于忽略第二指示查询成功的消息的次数超过阈值,则向网络广播消息来指示网络中的节点屏蔽第一查询节点。
根据本申请的第二方面,提供了根据本申请第二方面的第一处理网络消息的方法,包括:响应于接收查询请求,生成区块;若找到了查询请求所指示的键所对应的值,在区块中标记查询成功,将区块添加到查询请求得到指示查询成功的消息,并向网络广播指示查询成功的消息。根据本申请第二方面的第一处理网络消息的方法,提供了根据本申请第二方面的第二处理网络消息的方法,还包括:若未找到查询请求所指示的键所对应的值,将区块添加到查询请求,并向网络广播查询请求。
根据本申请第二方面的第一或第二处理网络消息的方法,提供了根据本申请第二方面的第三处理网络消息的方法,还包括:验证所接收的查询请求的区块,响应于对区块的验证失败,丢弃查询请求。
根据本申请第二方面的第一至第三处理网络消息的方法之一,提供了根据本申请第二方面的第四处理网络消息的方法,还包括:响应于接收指示查询成功的消息,向网络广播指示查询成功的消息。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A是相关技术中固态存储设备的框图;
图1B展示了现有技术的固态存储设备的地址转换系统的示意图;
图2展示了根据本申请实施例的分布式KV存储系统的架构图;
图3展示了根据本申请实施例的分布式KV存储系统的示意图;
图4展示了根据本申请实施例的查询请求;以及
图5是根据本申请实施例的资源节点处理消息的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2展示了根据本申请实施例的分布式KV存储系统的架构图。
根据图2的实施例的分布式KV存储系统包括通过网络耦合到一起的查询节点、资源节点与中继节点。查询节点是使用分布式KV存储系统的客户端(例如,计算机、移动终端或服务器)。资源节点是例如根据本申请实施例的KV存储设备,为分布式KV存储系统提供资源。中继节点用于在网络中转发查询请求以及转发对查询请求的响应。一些作为资源节点的KV存储也转发查询请求以及转发对查询请求的响应。作为举例,资源节点与中继节点的区别在于,资源节点被关联于数据采集设备(例如,摄像头或视频监控设备)。同数据采集设备关联的KV存储设备,记录了数据采集设备采集的原始数据的索引,作为KV存储设备记录的同键(K)对应的值(V)。
参看图2的实施例,网络包括多个部分,网络的各部分可独立地作为网络而工作。网络之间通过例如中继节点耦合,通过中继节点,将一个网络中传播的请求发送或广播到另一个网络。查询节点向网络发出查询请求,查询请求在网络中被广播。收到查询请求的中继节点,在查询请求中添加记录了自身信息的区块,并将查询请求在网络中继续广播。收到查询请求的资源节点,确定自身是否有能力处理查询请求,例如,利用查询请求指示的键(K)访问KV存储设备,以识别KV存储设备是否存储了同键(K)对应的值(V),KV存储设备存储了同查询请求指示的键(K)对应的值(V),意味着KV存储设备有能力处理查询请求。若资源节点没有能力处理查询请求,资源节点在查询请求中添加记录了自身信息的区块,并将查询请求在网络中继续广播。若资源节点有能力处理查询请求,资源节点在查询请求中添加记录了自身信息的区块,并将指示查询成功的消息在网络中广播。
响应于收到指示查询成功的消息,中继节点与资源节点记录指示查询成功的消息中携带的从发出查询请求的查询节点到有能力处理查询请求的资源节点的区块以及这一过程中查询消息在网络上被转发所经过的路径中的各资源节点和/或中继节点的区块,这些区块指示了从查询节点到有能力处理查询请求的资源节点的网络路径。指示查询成功的消息是在网络中被广播的,从而网络中的大多数或全部节点中都将收到该消息。
响应于收到指示查询成功的消息,查询节点从该消息中获取有能力处理查询请求的资源节点,以及访问该资源节点。
可选地,网络中的各节点还对收到的消息进行认证,以识别消息内容的真实性和/或消息内容是否被篡改。
图3展示了根据本申请实施例的分布式KV存储系统的示意图。
参看图3的实施例,查询节点、资源节点与中继节点通过网络相耦合。查询节点通过网络发出查询请求。查询请求例如携带了用于访问作为资源节点的KV存储设备的键(K)。依然可选地,接收访问查询请求的资源节点根据查询请求进行处理以生成用于访问KV存储设备的键(K)。在申请号为201810207416.9的中国专利申请(发明名称为“KV存储的键与值的生成方法与装置”)提供了根据查询请求生成键(K)的方案,将其全文通过引用合并于此。
中继节点接收查询请求或指示查询成功的消息,并向自己所在的网络转发(广播)接收的查询请求或指示查询成功的消息。中继节点记录了资源映射信息。资源映射信息包括多条记录,每条记录指示一个查询请求从被查询节点发出到被资源节点应答(指示查询成功)所经历的各个网络节点的区块(也参看图4)。中继节点基于收到指示查询成功的消息,而更新资源映射信息。
同中继节点相比,除了资源映射信息,资源节点还记录了KV映射信息。KV映射信息是例如图1B展示的提供从键到逻辑地址或物理地址的映射的FTL表。资源节点还记录了同键(K)对应的值(V)。作为KV存储设备,根据键(K),资源节点提供同键(K)对应的值(V),资源节点还能够提供自身是否存储了同键(K)对应的值(V)的指示。
继续参看图3,资源节点的值(V)还记录了原始数据的索引。原始数据同资源节点关联,来自例如摄像头或视频监控设备的数据采集设备。
图4展示了根据本申请实施例的查询请求。
查询请求包括多个区块,每个区块对应于处理查询请求的节点(查询节点、资源节点或中继节点)之一。参看图4,查询请求包括3个区块。区块410对应于查询节点。查询节点发出查询请求时,查询请求中仅包括区块410。区块420对应于中继节点或资源节点,但区块420所对应的节点无法对查询请求指示的键(K)进行处理,从而转发收到的查询请求,并在查询请求中添加了区块420。区块430对应于资源节点,该资源节点能够对查询请求指示的键(K)进行处理,并在查询请求中添加了区块430。
可选地,在同区块430对应的资源节点收到查询请求前,一个或多个其他资源节点或中继节点对该查询请求进行转发,并在查询请求中追加了区块。
作为举例,区块410记录了查询请求中要查询的键(K),发出查询请求的查询节点NC的节点标识0。例如,节点标识0唯一识别查询节点。区块410还包括经过加密的查询节点NC的特征信息的数字签名0。例如,采用查询节点NC的私钥对查询节点NC的特征信息加密。区块410还包括查询节点NC的公钥0。通过公钥0可解密得到数字签名0。区块410还包括指示了查询节点NC发出该查询请求的时间的时间戳0。
区块420包括对查询请求进行转发的中继节点(作为举例,N1)的节点标识1,经过加密的中继节点N1的特征信息的数字签名1,用于解密数字签名1的中继节点N1的公钥1,以及指示中继节点N1转发该查询请求的时间的时间戳1。中继节点N1转发该查询请求时,将区块420追加到区块410之后,以生成包括区块410与区块420的查询请求。
作为举例,资源节点N2接收到资源节点N1转发的查询请求,并且资源节点N2拥有同待查询的键(K)对应的值(V)。资源节点N2将区块430追加到区块420之后,以得到包括区块410、区块420与区块430的指示查询成功的消息。区块430包括查询成功的资源节点(作为举例,N2)的节点标识n,经过加密的资源节点N2的特征信息的数字签名n,用于解密数字签名n的资源节点N2的公钥n,指示资源节点N2处理该查询请求的时间的时间戳1,以及指示资源节点N2成功处理该查询请求的查询成功标记。响应于成功处理了查询请求,资源节点N2向整个网络广播指示查询成功的消息。
可选地,为将查询请求发送给资源节点N2,网络中的一个或多个资源节点/中继节点转发该查询请求,并在查询请求中追加了对应于自身的区块。
可以理解地,由于查询请求在网络中被广播,通过不同的节点与转发路径,形成了查询请求的多种版本。以及从查询节点NC到资源节点N2可能有不同的网络路径,从而在网络中形成了多种指示查询成功的消息,各自包括不同数量与种类的区块。网络中的节点根据指定的策略确定接受哪个指示查询成功的消息,和/或拒绝哪个指示成功的消息。并根据接受的指示查询成功的消息更新自身记录的资源映射信息。
图5是根据本申请实施例的资源节点处理消息的流程图。中继节点以同图5类似的方式处理消息,其差异之处在下面结合图5而详细描述。
资源节点从网络中接收消息(510),并识别消息的类型是查询请求还是指示查询成功的消息(512)。对于查询请求,资源节点根据查询请求获取要访问KV存储设备的键(K)(514)。一个例子中,查询请求中携带键(K);另一个例子中,资源节点根据查询请求生成键(K)。资源节点生成对应于自身的区块(516)(也参看区块420),在区块中记录例如自身的节点标识,经过加密的节点自身的特征信息的数字签名,用于解密数字签名的同所使用的私钥对应的公钥,以及可选地指示收到该查询请求的时间的时间戳。资源节点识别键(K)是否是自身的KV存储设备所记录的键(518),即资源节点是否有能力处理收到的查询请求。若资源节点发现自身的KV存储设备未记录同待访问的键(K)对应的值(V),则将对应于自身的区块添加到查询请求中,并向网络转发或广播查询请求(524)。
若资源节点识别键(K)是自身的KV存储设备所记录的键(518),则还更新对应于自身的区块(430),例如在对应于自身的区块中记录查询成功标记(也参看区块430),以及可选地在区块中记录指示查询成功的时间的时间戳。接下来,将更新后的区块添加到查询请求中。由于更新后的区块指示查询成功,将包括了更新后的区块的查询请求也称为指示查询成功的消息。以及向网络转发或广播指示查询成功的消息(522)。
可选地,资源节点还将自身成功响应待查询的键(K)的次数添加到同自身对应区块。资源节点还在自身的资源映射信息中记录自身成功响应待查询的键(K)的次数。可选地,资源节点还在自身的资源映射信息中记录通过查询请求中的各区块指示的路径自身成功响应待查询的键(K)的次数,例如,查询节点NC发出的指示待查询的键(K)的查询、通过中继节点N1转发并由资源节点N2成功响应的次数。
在步骤522或步骤522之后,流程转向步骤510,以从网络接收新的消息。可选地,接收消息的步骤510响应于有消息出现在耦合到资源节点的网络上而发生,而不依赖于步骤522或步骤524的执行完成。
可选地,响应于接收了消息(510),资源节点还对消息中的各区块进行验证。例如利用区块中携带的公钥对区块中的经加密的数字签名进行解密,以识别区块所携带的节点标识是否被篡改,和/或区块所携带的节点标识是否指示合法的节点。
依然可选地,对于中继节点,在图5的步骤516之后,将生成的区块添加到查询消息,并通过步骤524向网络转发或广播查询消息。
继续参看图5,在步骤512,若资源节点或中继节点识别消息的类型指示查询成功的消息,转向步骤542对指示查询成功的消息进行验证(542)。例如对于消息中的各个区块,利用区块中携带的公钥对区块中的经加密的数字签名进行解密,以识别区块所携带的节点标识是否被篡改,和/或区块所携带的节点标识是否指示合法的节点。若对指示查询成功的消息的验证失败,节点丢弃该消息,并转向步骤510。若对指示查询成功的消息的验证成功(542),节点向网络转发或广播该指示查询成功的消息。节点还根据通过验证的指示查询成功的消息更新节点自身的资源映射信息(550)。若自身的资源映射信息的条目中记录了指示查询成功的消息中所指示的从查询节点到成功响应查询请求的资源节点所经历的各个网络节点,则在资源映射信息的该条目中更新计数值,计数值指示从查询节点发出包含待查询键(K)的请求且资源节点成功响应该查询请求的次数。若节点自身的资源映射信息的条目中未记录指示查询成功的消息中所指示的从查询节点到成功响应查询请求的资源节点所经历的各个网络节点,则在资源映射信息增加新条目,并将计数值设置为1。
可选地,对于通过验证的指示查询成功的消息(542),节点识别指示查询成功的消息所指示的键(K)在自身的资源映射信息中是否存在。若键(K)在自身的资源映射信息中不存在,节点在资源映射信息中添加新条目以记录键(K)与指示查询成功的消息中所指示的从查询节点到成功响应查询请求的资源节点所经历的各个网络节点。若键(K)在自身的资源映射信息的条目(称为条目E)中已存在,进一步比较条目E所记录的成功响应查询请求的资源节点(记为A)与接收的指示查询成功的消息中所指示的成功响应查询请求的资源节点(记为B)是否为相同的资源节点。
在一个例子中,若资源节点A与资源节点B是相同的节点,更新条目E的计数,例如使计数值递增。作为又一个例子,若资源节点A与资源节点B是相同的节点,还比较条目E记录的查询请求到达节点A所通过的各个节点形成的路径与接收的指示查询成功的消息中所指示的查询请求到达节点B所通过的各个节点形成的路径是否相同。若二者的路径相同,更新条目E的计数。若二者的路径不同,进一步识别条目E所记录的资源节点A的时间戳(记为T1)和/或计数值(记为C1),以及识别指示查询成功的消息中所指示的时间戳(记为T2)和/或计数值(记为C2)。T1与T2比较的结果与C1与C2比较的结果各自具有权重,根据T1与T2比较的结果与C1与C2比较的结果,以及各自的权重,确定使用二者的路径的哪个更新条目E。一般地,倾向于使用关联于较早的时间戳与较大的计数值的路径。
根据本申请的实施例,网络中接入了非法的资源节点。非法资源节点收到查询请求,并生成假的指示查询成功的消息。若非法的资源节点使用自己的真实节点标识,网络中的合法的节点将发现非法节点的节点标识没有被记录,从而拒绝假的指示查询成功的消息,并可通过广播向网络其他节点告知该非法的资源节点。若非法的资源节点冒用合法节点的节点标识,假的指示查询成功的消息将指示与真实情况不同的从查询节点到成功响应查询请求的资源节点所通过的各个节点形成的路径。非法的资源节点获得合法节点的节点标识的前提是从网络获得了合法的节点标识,这也意味着网络中的其他节点收到过具有合法节点标识的指示查询成功的消息,并在自身的资源映射表中记录了该合法节点标识。而收到假的指示查询成功的消息的节点,基于自身的资源映射信息的条目中存在的从查询节点到成功响应查询请求的资源节点的路径具有更大的计数值,而拒绝假的指示查询成功的消息。可选地,若非法的资源节点冒用合法节点的节点标识,并反复生成假的指示查询成功的消息,网络中的其他节点反复拒绝假的指示查询成功的消息。
当网络中的其他节点拒绝假的指示查询成功的消息次数超过指定阈值后,该节点还请求网络开启节点验证过程,并向网络中的验证节点或验证服务器提供假的指示查询成功的消息中携带的节点标识(记为M)。网络中的验证节点或验证服务器记录了合法的节点的真实物理位置(例如节点耦合到网络的物理端口)。验证节点基于该其他节点的请求,获取具有节点标识M的合法节点的真实物理位置(P),并在网络中屏蔽具有节点标识M却不在位置P的节点。
根据本申请的又一实施例,网络中接入了非法的查询节点。非法的查询节点生成假的查询请求。若非法的查询节点使用自己的真实节点标识,网络中的合法的节点将发现非法查询节点的节点标识没有被记录,从而拒绝假的查询请求,并可通过广播向网络其他节点告知该非法的查询节点。若非法的查询节点冒用合法节点的节点标识,响应假的查询请求的指示查询成功的消息将指示与真实情况不同的从查询节点到成功响应查询请求的资源节点所通过的各个节点形成的路径。非法的查询节点获得合法节点的节点标识的前提是从网络获得了合法的节点标识,这也意味着网络中的其他节点收到过具有合法查询节点标识的指示查询成功的消息,并在自身的资源映射表中记录了该合法查询节点标识。而收到对应于假的查询请求的指示查询成功的消息的节点,基于自身的资源映射信息的条目中存在的从查询节点到成功响应查询请求的资源节点的路径具有更大的计数值,而拒绝对应于假的查询请求的指示查询成功的消息。
当网络中的其他节点拒绝假的指示查询成功的消息次数超过指定阈值后,该其他节点还请求网络开启节点验证过程,并向网络中的验证节点或验证服务器提供假的指示查询成功的消息中携带的查询节点标识(记为C)。网络中的验证节点或验证服务器记录了合法的查询节点的真实物理位置(例如查询节点耦合到网络的物理端口)。验证节点基于该其他节点的请求,获取具有查询节点标识C的合法查询节点的真实物理位置(PC),并在网络中屏蔽具有查询节点标识C却不在位置PC的节点。
根据本申请的实施例还提供了一种固态存储设备,该设备包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种处理方法。
根据本申请的实施例还提供了一种存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得固态存储设备执行根据本申请实施例提供的任意一种处理方法。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种分布式存储系统,包括多个网络、耦合到网络的查询节点、中继节点与资源节点;
查询节点用于向网络发出用于查询网络中的资源的查询请求;
中继节点和/或资源节点用于响应于接收查询请求,生成区块,所述区块记录了中继节点和/或资源节点的节点标识、中继节点和/或资源节点的特征信息的数字签名、用于解密数字签名的同所使用的私钥对应的公钥;中继节点用于在网络之间转发查询请求或转发指示查询成功的消息;
资源节点用于提供分布式存储系统的资源,并响应于找到了查询请求所指示的键所对应的值,在自身区块中标记查询成功,将区块添加到查询请求得到指示查询成功的消息,资源节点还用于在网络内转发查询请求或转发指示查询成功的消息;
中继节点记录了资源映射信息,资源映射信息包括多条记录,每条记录指示查询请求从被查询节点发出到资源节点应答所经历的各个网络节点的区块;
资源节点记录了转换信息,转换信息的每条记录指示从键到地址的映射;
所述查询请求包括多个区块,每个区块对应于处理所述查询请求的查询节点、资源节点或中继节点。
2.根据权利要求1所述的分布式存储系统,其中资源节点根据转换信息识别自身是否记录了查询请求所指示的键所对应的值,并在自身记录了查询请求所指示的键所对应的值的情况下,生成指示查询成功的消息,并发送给网络。
3.根据权利要求1或2所述的分布式存储系统,其中中继节点响应于收到指示查询成功的消息,更新资源映射信息。
4.根据权利要求1所述的分布式存储系统,其中中继节点或资源节点响应于收到查询请求,在查询请求中添加记录了自身信息的区块,并向网络转发查询请求。
5.根据权利要求4所述的分布式存储系统,其中资源节点在自身未记录查询请求所指示的键所对应的值的情况下,在查询请求中添加记录了自身信息的区块,并向网络转发查询请求。
6.根据权利要求1所述的分布式存储系统,其中资源节点或中继节点响应于收到指示查询成功的消息,根据指示查询成功的消息的区块,对区块进行验证。
7.根据权利要求6所述的分布式存储系统,其中资源节点或中继节点响应于对区块进行的验证失败,丢弃所收到的指示查询成功的消息。
8.根据权利要求6或7所述的分布式存储系统,其中资源节点或中继节点响应于对区块进行的验证成功,更新资源映射信息,并向网络转发所收到的指示查询成功的消息。
9.一种处理网络消息的方法,包括:
查询节点向网络发出用于查询网络中的资源的查询请求;中继节点和/或资源节点响应于接收查询节点向网络发出的查询请求,生成区块,所述区块记录中继节点和/或资源节点的节点标识、中继节点和/或资源节点的特征信息的数字签名、用于解密数字签名的同所使用的私钥对应的公钥;
若资源节点找到了查询请求所指示的键所对应的值,在自身区块中标记查询成功,将区块添加到查询请求得到指示查询成功的消息,并向网络广播指示查询成功的消息;
中继节点和/或资源节点还通过网络转发查询请求或转发指示查询成功的消息;
中继节点还记录资源映射信息,资源映射信息包括多条记录,每条记录指示查询请求从被查询节点发出到资源节点应答所经历的各个网络节点的区块;
资源节点还记录转换信息,转换信息的每条记录指示从键到地址的映射;
所述查询请求包括多个区块,每个区块对应于处理所述查询请求的查询节点、资源节点或中继节点。
10.根据权利要求9所述的方法,还包括:
若未找到查询请求所指示的键所对应的值,将区块添加到查询请求,并向网络广播查询请求。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110152868.3A CN112995285B (zh) | 2018-03-29 | 2018-03-29 | 基于区块技术的分布式kv存储系统 |
CN201810271465.9A CN110324371B (zh) | 2018-03-29 | 2018-03-29 | 基于区块的分布式kv存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810271465.9A CN110324371B (zh) | 2018-03-29 | 2018-03-29 | 基于区块的分布式kv存储系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110152868.3A Division CN112995285B (zh) | 2018-03-29 | 2018-03-29 | 基于区块技术的分布式kv存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110324371A CN110324371A (zh) | 2019-10-11 |
CN110324371B true CN110324371B (zh) | 2021-03-12 |
Family
ID=68110879
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810271465.9A Active CN110324371B (zh) | 2018-03-29 | 2018-03-29 | 基于区块的分布式kv存储系统 |
CN202110152868.3A Active CN112995285B (zh) | 2018-03-29 | 2018-03-29 | 基于区块技术的分布式kv存储系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110152868.3A Active CN112995285B (zh) | 2018-03-29 | 2018-03-29 | 基于区块技术的分布式kv存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110324371B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582845A (zh) * | 2009-06-16 | 2009-11-18 | 湖北工业大学 | 一种快速定位对等网络目标节点标识的方法 |
CN101867933A (zh) * | 2010-05-28 | 2010-10-20 | 东南大学 | 一种基于公钥数字签名和路由恶意检测的安全路由方法 |
CN102185766A (zh) * | 2011-04-26 | 2011-09-14 | 杭州华三通信技术有限公司 | Dhcp服务器回应报文的单播转发方法及中转设备 |
CN102404726A (zh) * | 2011-11-18 | 2012-04-04 | 重庆邮电大学 | 一种对用户访问物联网信息的分布式控制方法 |
US8458208B2 (en) * | 2008-10-09 | 2013-06-04 | International Business Machines Corporation | Automated data source assurance in distributed databases |
CN104050249A (zh) * | 2011-12-31 | 2014-09-17 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
CN104809130A (zh) * | 2014-01-27 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 数据查询的方法、设备及系统 |
CN105022791A (zh) * | 2015-06-19 | 2015-11-04 | 华南理工大学 | 一种新型的kv分布式数据存储方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710902B (zh) * | 2009-12-10 | 2014-03-05 | 北京邮电大学 | 一种无结构p2p网络及其数据查询方法和索引更新方法 |
CN102289508B (zh) * | 2011-08-31 | 2015-02-04 | 上海西本网络科技有限公司 | 分布式缓存阵列及其数据查询方法 |
CN104050250B (zh) * | 2011-12-31 | 2018-06-05 | 北京奇虎科技有限公司 | 一种分布式键-值查询方法和查询引擎系统 |
US20180006951A1 (en) * | 2016-07-02 | 2018-01-04 | Intel Corporation | Hybrid Computing Resources Fabric Load Balancer |
CN106339415B (zh) * | 2016-08-12 | 2019-08-23 | 北京奇虎科技有限公司 | 数据的查询方法、装置及系统 |
CN107092635B (zh) * | 2017-02-15 | 2020-08-04 | 北京星选科技有限公司 | 数据查询方法、装置、服务器、请求端及系统 |
-
2018
- 2018-03-29 CN CN201810271465.9A patent/CN110324371B/zh active Active
- 2018-03-29 CN CN202110152868.3A patent/CN112995285B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458208B2 (en) * | 2008-10-09 | 2013-06-04 | International Business Machines Corporation | Automated data source assurance in distributed databases |
CN101582845A (zh) * | 2009-06-16 | 2009-11-18 | 湖北工业大学 | 一种快速定位对等网络目标节点标识的方法 |
CN101867933A (zh) * | 2010-05-28 | 2010-10-20 | 东南大学 | 一种基于公钥数字签名和路由恶意检测的安全路由方法 |
CN102185766A (zh) * | 2011-04-26 | 2011-09-14 | 杭州华三通信技术有限公司 | Dhcp服务器回应报文的单播转发方法及中转设备 |
CN102404726A (zh) * | 2011-11-18 | 2012-04-04 | 重庆邮电大学 | 一种对用户访问物联网信息的分布式控制方法 |
CN104050249A (zh) * | 2011-12-31 | 2014-09-17 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
CN104809130A (zh) * | 2014-01-27 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 数据查询的方法、设备及系统 |
CN105022791A (zh) * | 2015-06-19 | 2015-11-04 | 华南理工大学 | 一种新型的kv分布式数据存储方法 |
Non-Patent Citations (1)
Title |
---|
云计算环境下支持复杂查询的多维数据索引机制;朱夏等;《计算机研究与发展》;20130831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112995285A (zh) | 2021-06-18 |
CN110324371A (zh) | 2019-10-11 |
CN112995285B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945355B (zh) | 基于扇区映射的快速数据加密策略遵从 | |
US12111759B2 (en) | Method and storage device for parallelly processing the deallocation command | |
CN102855452B (zh) | 基于加密组块的快速数据加密策略遵从 | |
CN107491519B (zh) | 区块链账本的查询方法及装置 | |
CN110147684B (zh) | 用于实现区块链数据隐私保护的方法及设备 | |
WO2021068963A1 (zh) | 云端服务访问的方法、云端服务器及终端 | |
WO2020029254A1 (zh) | 一种SoC芯片及总线访问控制方法 | |
CN111339201B (zh) | 基于区块链的测评方法及系统 | |
CN111460458A (zh) | 一种数据处理方法、相关装置及计算机可存储介质 | |
EP4290802A1 (en) | Blockchain editing method and blockchain node | |
CN103903042A (zh) | 一种数据流加密sd卡 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN112069169A (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
CN109284624A (zh) | 一种基于区块链存储的数据安全隔离方法及装置 | |
US12120100B2 (en) | Secure communication between an intermediary device and a network | |
CN112088376A (zh) | 一种文件存储方法、装置及存储介质 | |
CN109460182B (zh) | 一种数据存储、读取方法及装置 | |
CN110324371B (zh) | 基于区块的分布式kv存储系统 | |
CN113660336B (zh) | 利用kv存储设备的云计算与雾计算系统 | |
US20240020047A1 (en) | Network-Ready Storage Products with Cryptography based Access Control | |
CN112242979A (zh) | 基于区块链系统的ip地址前缀认证方法和设备 | |
CN113721838B (zh) | 用于存储设备的写、读数据方法、存储控制器以及dma引擎 | |
CN112242904B (zh) | 档案信息处理方法及设备 | |
US20240354448A1 (en) | Storage device including protected area and data write method thereof | |
US20230127278A1 (en) | Multi-factor authentication for a memory system based on internal asymmetric keys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |