CN110059099A - 用于在数据库中执行迭代器操作的设备 - Google Patents

用于在数据库中执行迭代器操作的设备 Download PDF

Info

Publication number
CN110059099A
CN110059099A CN201811515723.XA CN201811515723A CN110059099A CN 110059099 A CN110059099 A CN 110059099A CN 201811515723 A CN201811515723 A CN 201811515723A CN 110059099 A CN110059099 A CN 110059099A
Authority
CN
China
Prior art keywords
key
memory
information
host
value
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.)
Pending
Application number
CN201811515723.XA
Other languages
English (en)
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110059099A publication Critical patent/CN110059099A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储设备,包括控制器,所述控制器从主机接收与存储在存储器中的数据相对应的值和要参考以识别所述值的键。此外,所述控制器管理指示在部分键和值地址之间的对应关系的部分键‑值映射信息,以及响应于主机请求将信息返回给主机。该信息对应于包括与接收的键的特定位置处的字符相同的字符的键。该控制器通过以下方式确定该信息:基于该部分键‑值映射信息确定存储数据的所述存储器的部分区域,以及对所述部分区域执行读取操作以获得包括该部分键的整个键。

Description

用于在数据库中执行迭代器操作的设备
技术领域
这里描述的一个或多个实施例涉及用于在数据库中执行迭代器操作(iteratoroperation)的设备。
背景技术
数据库系统可以用于存储各种数据(例如,音频数据、视频数据和/或其它信息),并且可以被频繁地访问以满足用户请求。多年来,数据库业务量大幅增加。因此,已经尝试减少或分发业务以减轻数据库系统的负担。
一种尝试涉及使用诸如SQL(NoSQL)的数据存储技术,用于在诸如固态驱动器(SSD)的块设备中以键-值形式(key-value form)存储数据。然而,使用块设备的数据库系统可能执行不必要的映射转换,例如,可以将键转换为作为逻辑地址的逻辑块地址(LBA),并且再次将LBA转换为作为物理地址的物理块号(PBN)。
发明内容
根据一个或多个实施例,一种存储设备包括:用于存储数据的存储器和控制器,该控制器用于从主机接收与存储在所述存储器中的数据对应的值和要参考以识别所述值的键,以及管理指示在部分键和值地址之间的对应关系的部分键-值映射信息,其中控制器将响应于主机请求将信息返回给主机,该信息对应于包括与接收的键的特定位置处的字符相同的字符的键。该控制器通过以下方式确定该信息:基于该部分键-值映射信息确定存储数据的所述存储器的部分区域,以及对所述部分区域执行读取操作以获得包括该部分键的整个键。
根据一个或多个其他实施例,一种电子设备包括:主机和包括用于存储数据的存储器的存储设备,其中所述存储设备将从所述主机接收与存储在所述存储器中的数据对应的值和要参考以识别所述值的键,以及将管理键-值映射信息,所述存储设备将信息返回给主机,该信息对应于包括与接收的键的特定位置处的字符相同的字符的键,基于来自所述主机的请求使用该键-值映射信息确定该信息。
根据一个或多个其他实施例,一种存储设备包括:用于存储数据的存储器和控制器,所述控制器用于从主机接收与存储在所述存储器中的数据对应的值和要参考以识别所述值的键,以及管理键-值映射信息,其中该控制器向所述主机返回信息,该信息对应于包括与接收的键的特定位置处的字符相同的字符的键,该控制器响应于主机请求基于该键-值映射信息确定该信息。
附图说明
通过参考附图详细描述示例性实施例,各特征对于本领域技术人员将变得明晰,在附图中:
图1说明系统的实施例;
图2说明迭代器操作的实施例;
图3说明系统的另一实施例;
图4说明迭代器操作的另一实施例;
图5说明使用部分键-值映射信息的迭代器操作的实施例;
图6说明使用部分键-值映射信息在主机和存储设备之间传送信息的实施例;
图7说明可以被用于部分键-值映射信息的信息的示例;
图8说明电子系统的实施例;
图9说明电子设备的实施例;以及
图10说明用于使用键-值接口在数据库中执行迭代器操作的方法的实施例。
具体实施方式
图1说明系统100的实施例,系统100可以存储数据,管理存储的数据,并向用户提供信息。例如,系统100可以是用于存储数据的数据库或管理数据库的数据库管理系统,以将存储的数据保持在一致、完整的状态。根据实施例,系统100可以是一个或多个电子设备或用户设备。这些设备的示例包括个人计算机或移动电子设备,诸如便携式电话、个人数字助理(PDA)、相机或另一设备。
系统100可以包括主机120和存储设备140,它们在彼此通信的同时管理数据。例如,主机120可以从存储设备140请求数据或者可以将数据存储在存储设备140中。此外,主机120可以擦除存储在存储设备140中的数据。
主机120可以取决于例如一个或多个电子电路/芯片/设备的操作向主机120的用户提供各种服务。主机120可以执行各种操作以处理从主机120的用户接收的指令,然后可以将操作结果提供给主机120的用户。根据实施例,主机120可以包括操作系统、应用、或其他形式的其他硬件或软件。根据实施例,主机120可以包括操作处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)和应用处理器(AP)),其包括专用逻辑电路(例如,现场可编程门阵列(FPGA)和专用集成电路(ASIC))。
根据实施例,主机120可以是独立于存储设备140的电子设备。例如,主机120可以是移动通信终端、台式计算机、笔记本计算机、平板计算机、智能手机、可穿戴设备或另一设备。在一个实施例中,主机120可以是工作站、另一服务器或车辆。根据实施例,主机120可以与存储设备140一起在单个电子设备中。在一个示例中,主机120可以是操作处理器本身。主机120可以使用键-值接口请求存储设备140执行与特定数据相关联的各种操作。
存储设备140可以从主机120接收与要存储在存储器设备146中的数据对应的值和要参考来识别该值的键。存储设备140可以包括控制器142和用于存储数据的存储器设备146。存储器设备146可以包括例如用于存储数据的至少一个子存储器设备。
控制器142可以基于来自主机120的请求来管理和控制存储器设备146的操作。此外,控制器142可以从主机120接收与要存储在存储器设备146中的数据对应的值和要参考来识别该值的键。例如,控制器142可以使用与键对应的信息作为参数从主机120接收各种命令。控制器142可以管理键-值映射信息。
根据实施例,控制器142可以通过多个通道与存储器设备146连接。控制器142可以用硬件或软件实现,用于基于来自主机120的各种请求执行操作。根据实施例,控制器142可以包括例如易失性存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或同步DRAM(SDRAM)。
根据一个实施例,控制器142可以包括至少一个处理器,用于执行用于控制存储设备140的整体操作的各种操作。处理器可以包括例如一个或多个专用逻辑电路(例如,FPGA和ASIC),其执行各种算术运算和/或逻辑运算。
存储器设备146可以包括至少一个非易失性存储器。在一个实施例中,存储器设备146可以包括多个闪存。在一个实施例中,存储器设备146可以包括另一种类型的非易失性存储器,例如相变RAM(PRAM)、铁电RAM(FRAM)或磁阻RAM(MRAM)。存储器设备146可以每个存储器单元存储一个数据位或两个或更多个数据位。在一个实施例中,用于实现存储器设备146的非易失性存储器可以包括三维结构的存储器单元阵列。例如,存储设备140可以包括用于存储数据的任何类型的存储器设备。
根据实施例,为了请求存储设备140执行各种操作,主机120可以使用与键对应的信息作为参数来向存储设备140发送各种命令。例如键可以是字符串。字符串可以是一个或多个字符,并且字符可以包括能够在计算设备中处理的各种数据类型。例如,字符串可以包括一个或多个数字、位值、字符或其组合。
接收键的信息和来自主机120的请求的存储设备140可以使用键-值映射信息144来执行与请求对应的操作。要从主机120传送到存储设备140的各种请求(例如,命令)可以由存储设备140的控制器142接收。控制器142可以执行与接收的请求对应的操作,并且可以将执行的结果返回给主机120。
键-值映射信息144可以是例如指示在键和值之间的对应关系的信息。根据实施例,可以以表格的形式管理键-值映射信息144。在另一实施例中,可以以不同的形式管理键-值映射信息144。在一个实施例中,可以不同地改变或修改用于管理键-值映射信息的形式。例如,键-值映射信息144可以由存储设备140的控制器142(控制器存储器设备)的存储器设备管理。在一个实施例中,键-值映射信息144可以在存储设备140中的控制器142的易失性存储器中进行存储和管理。
根据实施例,可以管理键-值映射信息144以允许键“0xbbb”对应于存储器区域的地址,在该地址处存储对应于值V2的数据,以及允许键“0xfff”对应于在其中存储对应于值Vp的数据的存储器区域的地址。键-值映射信息144可以是映射键和存储与键对应的值的存储器的位置的信息。存储设备140可以管理键-值映射信息144,例如,以允许一个值对应于一个键。
根据实施例,主机120可以将读取请求(例如,获取或读取操作)与键一起传送到存储设备140。存储设备140可以基于接收的键向主机120输出存储在与接收的键对应的地址处的数据。例如,当主机120打算从存储设备140读取值V1时,主机120可以将与值V1对应的键“0xaaa”与读取命令一起传送到存储设备140。存储装置140可以参考键-值映射信息144的键“0xaaa”识别存储对应于值V1的数据在存储器设备146中的地址。存储设备140可以从识别的地址读取对应于值V1的数据并且可以将值V1输出到主机120。
根据实施例,主机120可以将写入请求(例如,放置或写入操作)与键一起传送到存储设备140。存储设备140可以基于接收的键在与接收的键对应的地址处写入(或存储)数据。例如,当主机120打算将值V1存储在存储设备140中时,主机120可以将值V1和对应于值V1的键“0xaaa”与写入命令一起传送到存储设备140。存储设备140可以将与值V1对应的数据存储在存储器设备146中。存储设备140可以在键-值映射信息144中存储存储器设备146的地址(在该地址处存储与值V1对应的数据)和键“0xaaa”。可以管理键-值映射信息144使得键“0xaaa”对应于存储器区域的地址(在该地址处存储与值V1对应的数据)。键-值映射信息144可以是例如部分键-值映射信息。
根据实施例,主机120可以将擦除请求(例如,删除、取消映射或擦除操作)与键一起传送到存储设备140。存储设备140可以基于接收的键擦除存在于与接收的键对应的地址处的数据。例如,当主机120打算从存储设备140擦除值V1时,主机120可以将与值V1对应的键“0xaaa”与擦除命令一起传送到存储设备140。存储设备140可以参考键-值映射信息144的键“0xaaa”识别存储器设备146中存储与值V1对应的数据的地址,并且可以擦除存在于识别的地址处的数据。
根据实施例,主机120可以用于检查键是否存在的请求与键一起传送到存储设备140。存储设备140可以基于接收的键来检查与接收的键对应的数据是否存在。例如,主机120可以将与值V2对应的键“0xbbb”与用于检查键是否存在的命令一起传送到存储设备140。存储设备140可以检查接收的键“0xbbb”是否存在于键-值映射信息144中,并且可以将检查结果返回给主机120。
根据实施例,主机120可以请求存储设备140搜索包括在与特定位置相同的位置处的、与键中的该特定位置处的字符相同的字符的所有键并且将它们与键一起返回。例如,特定位置可以对应于包括一个或多个字符的字符串中的特定字符的位置。例如,特定位置可以对应于由主机120指定的键中的位置。在一个实施例中,当键包括6个字符ABCDEF时,特定位置可以是第三位置而字符C可以处于第三位置。例如,当键包括8位00111100时,特定位置可以是第六和第七位置,并且位值1和0可以位于第六和第七位置。特定位置可以包括键中的一个或多个位置,并且一个或多个位置可以是连续的或彼此分开的。
存储设备140可以从主机120接收返回关于从主机120接收的全部键的信息的请求,该全部键包括在键的一个或多个特定位置处的相同字符。例如,当键的整个字符串是ABCDEFGH时,特定位置可以包括键的第三位置和第四位置,并且在特定位置处的字符可以是字符C和D。存储设备140可以参考键-值映射信息144搜索包括与从主机120接收的键相同的、在特定位置处的字符的全部键(例如,包括第三位置处的字符是C,并且第四位置处的字符是D的全部键)。存储设备140随后可以将关于所有找到的键的信息返回给主机120。根据至少一个实施例,迭代器操作可以被称为用于获得关于全部键的信息并返回获得的信息给主机120的操作,其中该全部键包括在参考键(例如,从主机120接收的键)的特定位置处的相同字符。
图2说明在系统200内执行的迭代器操作的实施例。例如,系统200可以是用于执行迭代器操作的图1的系统100的更详细的实施例。图2中的主机220、存储设备240、控制器242、键-值映射信息244和存储器设备246可以分别对应于图1的主机120、存储设备140、控制器142、键-值映射信息144和存储器设备146。
如上所述,迭代器操作可以包括涉及搜索具有与在参考键(例如从主机接收的键)的特定位置处的字符相同的在特定位置处的字符的全部键的操作。迭代器操作可以用于例如数据库的空间效率。根据实施例,主机220可以基于迭代器操作的结果执行再压缩、垃圾收集、重建、一致性检查等。
根据实施例,主机220可以从存储设备240请求针对与XXCDXXXX对应的所有键的信息连同XXCDXXXX。在该实施例中,键中的X可以是字符,并且传送的键XXCDXXXX可以是具有字符串的第三位置处的字符和字符串的第四位置处的字符分别为C和D的所有键。例如,主机220可以向存储设备240传送迭代器命令,该迭代器命令请求关于具有第三位置处的字符和第四位置处的字符分别为C和D的所有键的信息。接收与迭代器操作相关联的请求的存储设备240可以参考键-值映射信息244在这些位置搜索具有字符C和D的所有键。然后,存储设备240可以将找到的结果返回给主机220。例如,存储设备240可以向主机220传送对应于四个键ABCDEFGH、ABCDFFFF、ABCDGGGG和ABCDHJKF的信息。
因此,主机220可以从存储设备240请求迭代器操作,而不必管理用于将键转换为逻辑地址或物理地址的映射信息。此外,主机220可以向存储设备240传送主机220中实际使用的键而无需另外的转换以请求迭代器操作,并且存储设备240可以参考存储设备240管理的映射信息来执行迭代器操作。
图3说明系统300的另一实施例,例如其可以是用于执行迭代器操作的图1的系统100的更详细的实施例。关于图1的系统100给出的描述可以应用于图3的系统300。例如,图3中的主机320、存储设备340、控制器342和存储器设备346可以分别对应于图1的主机120、存储设备140、控制器142和存储器设备146。
根据实施例,存储器设备346可以包括多个非易失性存储器3460、3461、3462、3463和3464。在图3的实施例中,存储器设备346用多个非易失性存储器实现。在其他实施例中,存储器设备346可以用用于存储数据的不同类型的存储器设备(例如,易失性存储器)来实现。
根据实施例,系统300可以使用存储在主机320中的键-值映射信息来进行迭代器操作。例如,可以参考存储在主机320的DRAM中的键-值映射信息来确定对迭代器命令的响应。
在一个实施例中,如所描述的,例如,参考图2,可以在存储设备340中管理键-值映射信息。当在存储设备340中管理键-值映射信息时,可能由于存储设备340的有限资源而难以管理关于要在主机320中使用的键的整个区域的映射信息。例如,当要在主机320中使用的键的总尺寸大于参考值(例如,由存储设备能够处理的键的最大尺寸)时,可能难以在存储设备340中映射和管理键的整个区域和值的地址。
例如,当要在主机320中使用的键的总尺寸是255字节时,可能难以在键-值映射信息中存储用于键的整个区域的信息(例如,255字节尺寸的键)。这是因为与主机320相比,存储设备340可能具有受限制的资源。
因此,从主机320接收对迭代器操作的请求的存储设备340可以通过搜索存储器设备346并访问实际存储数据的区域来获得关于键的整个区域的信息。例如,考虑主机320向存储设备340做出请求关于具有在第三位置和第四位置处的字符的所有键(例如具有XXCDXXXX的键,其中X是任意字符)的信息的情况。在这种情况下,当将XXCDXXXX的键传送到存储设备340时,控制器342可以访问所有非易失性存储器3460、3461、3462、3643和3464,并且可以搜索在第三位置和第四位置分别具有字符C和D的所有键。在该实施例中,为了执行迭代器操作,存储设备340可以访问存储器设备346中的非易失性存储器3460、3461、3462、3463和3464以执行搜索操作。
根据实施例,存储设备340可以使用指示在值地址和部分键之间的对应关系的部分键-值映射信息,部分键是键的部分区域,而不是键的整个区域。下面,为了便于描述,在主机320中实际使用的键的整个区域被称为“整个键”。用于管理存储设备340中的映射信息的键的部分区域被称为“部分键”。例如,当整个键是ABCDEFGH时,部分键可以是CDEFGH。
根据实施例,部分键-值映射信息可以由存储设备340的易失性存储器设备343管理。在该实施例中,存储设备340是SSD,其中存储部分键-值映射信息的易失性存储器设备343是DRAM,并且其中可以存储关于整个键的信息的非易失性存储器3460、3461、3462、3463和3464是闪存。在其他实施例中,这些存储装置、存储器设备和存储器可以是不同的。
存储设备340可以使用整个键的部分区域来管理键-值映射信息,而不对主机320中实际使用的键执行额外的转换(例如,散列)。
图4说明可以在图3的系统中执行的迭代器操作。参考图4,系统400可以说明可以在图3的系统300中执行的迭代器操作的一个实施例。以上关于图3的系统300给出的描述可以应用于图4的系统400。主机420和存储设备440可以分别对应于图3的主机320和存储设备340。而且,用于控制器442的易失性存储器设备(对应于图3的易失性存储器设备343)可能存在。而且,非易失性存储器设备446可以对应于图3的非易失性存储器设备3460、3461、3462、3463和3464中的至少一个。
根据实施例,控制器442的易失性存储器设备可以管理部分键-值映射信息444,所述部分键-值映射信息444用于管理在部分键和值地址之间的映射信息。非易失性存储器设备446可以包括一个或多个块,并且一个块可以包括一个或多个页。非易失性存储器设备446是实际存储用户请求的数据的物理区域。
根据实施例,主机420可以从存储设备440请求关于在第三和第四位置处具有与发送的键XXCDXXXX的第三和第四位置处的值相同的值的所有键的信息连同XXCDXXXX。
接收对迭代操作的请求的控制器442可以参考在易失性存储器设备中的部分键-值映射信息444。在图4中,部分键-值映射信息444以表格的形式示出,其中部分键430记录在左列,而值地址450记录在右列。在另一实施例中,部分键-值映射信息444可以是不同的形式。
控制器442可以参考在部分键-值映射信息444的左列记录的部分键,搜索在第三和第四位置分别具有字符C和D的部分键。根据实施例,控制器442还可以包括关于用于搜索的偏移值的信息。
偏移值可以是一条信息,通过使用键-值接口允许在存储设备440(其使用部分键管理映射信息)和使用整个键的主机420之间进行迭代器操作是可能的。例如,偏移值可以表示部分键与整个键的第一位置或最后位置间隔开多少。例如,控制器442可以从主机420接收指示偏移值是3的信息,并且可以知道部分键的第一位置对应于整个键的第三位置。
因此,可以将存储在部分键-值映射信息444中的每个部分键的第一和第二位置的字符分别与接收的键的第三和第四位置的字符进行比较。控制器442可以将在左列的行433、434、435和436处记录的部分键确定为迭代器操作所需的部分键。
控制器442可以仅参考记录在行433、434、435和436的右列的值地址来确定非易失性存储器设备446的部分区域(其将被读取以用于迭代器操作)。根据实施例,控制器442可以使用部分键-值映射信息444获得物理地址(例如,物理块号(PBN)或物理页号(PPN)),并且可以基于所获得的物理地址至少确定非易失性存储器设备446的部分区域(其将被读取)。例如,由于在左列的行431、432和437处没有记录在第三和第四位置分别具有字符C和D的部分键,所以控制器442可以把该非易失性存储区域(由记录在行431、432、437的右列的值地址指示)排除于用于迭代器操作的访问和搜索目标之外。
最后,存储设备440可以从非易失性存储器设备446的部分区域获得整个键(例如,键的整个区域),并且可以将获得的整个键返回到主机420。
根据实施例,存储设备440可以仅管理指示在部分键和值地址之间的对应关系的映射信息,从而有效地管理用于迭代器操作的映射信息。此外,由于存储设备440参考部分键-值映射信息,因此可以不用访问和读取所有存储器以用于迭代器操作。因此,存储设备440可以快速地响应来自主机420的对迭代器操作的请求。
图5说明使用部分键-值映射信息执行的迭代器操作的实施例。在该实施例中,例如,主机420可以向存储设备440请求关于与XXCDXXXX对应的所有键的信息。
接收请求的存储设备440可以参考部分键-值映射信息444来确定在多个非易失性存储器520、530、540和550中的一些非易失性存储器530和540作为读取目标。可以在非易失性存储器520、530、540和550中的每一个处记录关于整个键的信息。为了便于描述,仅示出了在每个非易失性存储器处记录的整个键的一些,例如,非易失性存储器520可以包括键AAAAAAAA、AAAAAAAB、BBBCAAAA和BCAAAAAB。
根据实施例,存储设备440可以将关于整个键ABCDEFGH、GHCDEFGH、ABCDAAAA、IJCDAAAA、AACDGGGG、ABCDGGGG、ABCDHJKF和BCCDHJKF的信息从非易失性存储器530和540返回到主机420。在另一实施例中,存储器520、530、540和550中的每个可以是非易失性存储器或不同类型的存储器(例如,易失性存储器)。
图6说明用于在主机和存储设备之间传送信息以使用部分键-值映射信息的实施例。根据该实施例,例如,可以基于存储设备440中可用的键的最大尺寸、迭代器操作所需的偏移和区域值中的至少一个来确定要在存储设备440中使用的部分键。
例如,存储设备440中可用于管理映射信息的键的最大尺寸可以是6,并且图4的主机420中可用的实际键的整个尺寸可以是8。在这些条件下,当主机420(使用具有尺寸为8的键)向存储设备440请求关于在第三和第四位置具有与传送的键ABCDEFGH的第三和第四位置中的字符相同的字符的所有键的信息时,可以执行迭代器操作。然后,存储设备440可以参考部分键-值映射信息返回结果。
根据实施例,为了准备用于迭代器操作的部分键-值映射信息,存储设备440可以传送6(其是存储设备440中可用的键的最大尺寸值660)到主机420。
由于用于迭代器操作的键中的位置从第三位置开始,因此主机420可将偏移值670确定为3。如上所述,偏移值670可以是通过使用键-值接口允许迭代器操作在存储设备440(其通过使用部分键管理映射信息)和使用整个键的主机420之间成为可能的信息。
区域值680可以指代要在存储设备440中使用以管理映射信息的部分键的尺寸。区域值680可以被确定为等于或大于要与从主机420接收的用于迭代器操作的键进行比较的键区域的尺寸并且等于或小于最大尺寸值660。
参考图7,当要在主机420中实际使用的整个键是ABCDEFGH时,将在存储设备440中使用以管理用于迭代器操作的映射信息的部分键可以是CDEFGH。在这种情况下,存储设备440可以将最大尺寸值760确定为6并且可以将确定的值传送到主机420。主机420可以将偏移值770设置为3并且可以将确定的值传送到存储设备440。在这种情况下,用于迭代器操作进行比较的特定位置可以对应于从第三位置开始的位置(取决于偏移值770)并且等于或小于第八位置(偏移值770+最大尺寸值760-1)。区域值780可以被确定为等于或小于作为最大尺寸值760的6并且等于或大于2,2是进行比较的区域的尺寸(例如,第三位置和第四位置)。
根据实施例,可以考虑存储设备440中可用于管理映射信息的键的最大尺寸值760来确定在其中针对迭代器操作做出与部分键-值映射信息中的部分键比较的特定位置。例如,当存储设备440中可用的键的最大尺寸值760是K时,用于请求迭代器操作的特定位置可以包括第N到第(N+K-1)位置中的至少一个。
此外,根据实施例,可以考虑偏移值770来确定在其中针对迭代器操作做出与部分键-值映射信息中的部分键进行比较的特定位置。例如,当偏移值770是L时,用于请求迭代器操作的特定位置可以从整个键的第L位置开始。例如,当存储设备440中可用的键的最大尺寸值760是K并且偏移值770是L时,用于请求迭代器操作的特定位置可以对应于主机使用的键的第N到第(N+K-1)位置中的至少一个。换句话说,当在第Y位置之后存在特定位置(在其中针对迭代器操作做出与部分键-值映射信息的部分键的比较)时,可以确定偏移值770具有等于或小于Y的值。
系统400可以基于存储设备440中可用的键的最大尺寸值760、用于迭代器操作的偏移值770和区域值780中的至少一个来确定要在存储设备440中用于管理映射信息的部分键。系统400可以基于所确定的部分键来配置部分键-值映射信息。在另一实施例中,主机420中可用的整个键的尺寸和/或在存储设备440中可用的部分键的尺寸可以是不同的。
根据实施例,可以在初始化用于管理数据库的键-值映射信息时,或者紧接在键-值映射信息被映射擦除之后确定用于确定要在存储设备440中使用的部分键的至少一个信息(例如,760、770和780)。可以取决于各种方法确定用于确定要在存储设备440中使用的部分键的方法,而不限于上述实施例。
图8说明电子系统1000的实施例,电子系统1000可以包括主处理器1101、工作存储器1200、存储设备1300、通信块1400、用户接口1500和总线1600。例如,电子系统1000可以是如下的电子设备之一:诸如台式计算机、膝上型计算机、平板计算机、智能手机、可穿戴设备、视频游戏机、工作站、服务器和电动车辆。根据实施例,电子系统1000可以包括参考图1到图7描述的各系统中的任何一个。例如,电子系统1000可以包括图4的系统400。
主处理器1101可以控制电子系统1000的整体操作,并且可以处理各种算术运算和/或逻辑运算。主处理器1101可以包括例如专用逻辑电路(例如,现场可编程门阵列(FPGA)或专用集成芯片(ASIC))。例如,主处理器1101可以包括一个或多个处理器核心,并且可以用通用处理器、专用处理器或应用处理器来实现。
工作存储器1200可以存储要用于电子系统1000的操作的数据。例如,工作存储器1200可以临时存储由主处理器1101处理或将要处理的数据。工作存储器1200可以包括例如易失性存储器,诸如DRAM、SDRAM,和/或非易失性存储器,诸如PRAM、MRAM、电阻RAM(ReRAM)或FRAM。
存储设备1300可以包括至少一个存储器设备和控制器。无论电源如何,存储设备1300的存储器设备都可以保持数据。例如,存储设备1300可以包括非易失性存储器设备,诸如闪存、PRAM、MRAM、ReRAM或FRAM。例如,存储设备1300可以包括诸如固态驱动器(SSD)、卡存储装置或嵌入式存储装置的存储介质。
通信块1400可以与电子系统1000的外部设备/系统通信。例如,通信块1400可以支持各种无线通信协议中的至少一种,诸如长期演进(LTE)、全球微波接入互操作性(WiMax)、全球移动通信系统(GSM)、码分多址(CDMA)、蓝牙、近场通信(NFC)和无线保真(Wi-Fi)、射频识别(RFID),和/或各种有线通信协议中的至少一种,诸如传输控制协议/因特网协议(TCP/IP)、通用串行总线(USB)和火线接口。
用户接口1500可以在用户和电子系统1000之间执行通信中介。例如,用户接口1500可以包括输入接口、诸如键盘、鼠标、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器和振动传感器。例如,用户接口1500可以包括输出接口,诸如液晶显示(LCD)设备、发光二极管(LED)显示设备、有机LED(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、扬声器和马达。
总线1600可以提供电子系统1000的元件之间的通信路径。电子系统1000的元件可以基于总线1600的总线格式彼此交换数据。例如,总线格式可以包括各种接口协议中的一个或多个,诸如USB、小型计算机系统接口(SCSI)、外围组件互连快速(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行连接SCSI(SAS)、集成驱动电子设备(IDE)、增强型IDE(EIDE)、高速非易失性存储器(NVMe)和通用闪存装置(UFS)。
根据实施例,存储设备1300可以执行参考图1到图7描述的迭代器操作。在一个实施例中,存储设备1300可以包括图4的存储设备440。在一个实施例中,存储设备1300可以使用键作为参数从主处理器1101接收命令,并且可以通过使用存储设备1300中的键-值映射信息来执行迭代器操作。键-值映射信息可以是指示在部分键和值地址之间的对应关系的部分键-值映射信息。部分键是键的部分区域。由于存储设备1300参考部分键-值映射信息,因此不用访问或读取所有存储器来用于迭代器操作。因此,存储设备1300可以快速地响应从主处理器1101接收的对迭代器操作的请求。
根据实施例,由于主处理器1101通过总线1600与存储设备1300通信,因此主处理器1101可以从存储设备1300请求迭代器操作。主处理器1101可以包括例如图4的主机420。在一个实施例中,主处理器1101可以从存储设备1300请求迭代器操作,并且可以基于接收的迭代器操作的结果执行再压缩、垃圾收集、重建和一致性检查中的至少一个。
图9说明采用电子电路的电子设备4000的配置和接口的实施例。电子设备4000可以用能够使用或支持由MIPI联盟提出的接口协议的数据处理设备来实现。例如,电子设备4000可以是诸如便携式通信终端、个人数字助理(PDA)、便携式媒体播放器(PMP)、智能电话、平板计算机和可穿戴设备的电子设备之一。
电子设备4000可以包括应用处理器4100、显示器4220和图像传感器4230。应用处理器4100可以包括DigRF主设备4110、显示器串行接口(DSI)主机4120、相机串行接口(CSI)主机4130、物理层(PHY)4140和UFS主机-控制器接口(HCI)4150。
DSI主机4120可以通过DSI与显示器4220的DSI设备4225通信。例如,串行器SER可以在DSI主机4120中实现,并且解串器DES可以在DSI设备4225中实现。
CSI主机4130可以通过CSI与图像传感器4230的CSI设备4235通信。例如,解串器DES可以在CSI主机4130中实现,并且串行器SER可以在CSI设备4235中实现。电子设备4000还可以包括与应用处理器4100通信的射频(RF)芯片4240。RF芯片4240可以包括物理层(PHY)4242、DigRF从设备4244和天线4246。例如,RF芯片4240的物理层4242和应用处理器4100的物理层4140可以通过MIPI联盟提出的DigRF接口彼此交换数据。
电子设备4000还可以包括工作存储器4250和嵌入式/卡存储设备4255。工作存储器4250可以临时存储由应用处理器4100处理或要处理的数据。工作存储器4250可以包括易失性存储器,诸如静态随机存取存储器(SRAM)、DRAM或SDRAM,和/或非易失性存储器,诸如闪存、PRAM、MRAM、ReRAM或FRAM。
嵌入式/卡存储设备4255可以存储从应用处理器4100提供的数据,或者可以将存储的数据提供给应用处理器4100。嵌入式/卡存储设备4255可以包括不管是否向其供电都存储数据的非易失性存储器。嵌入式/卡存储设备4255可以执行参考图1到图7描述的迭代器操作。根据实施例,嵌入式/卡存储设备4255可以从应用处理器4100接收对迭代器操作的请求,并且可以通过使用键-值映射信息来执行迭代器操作。键-值映射信息可以是部分键-值映射信息,其指示与键的部分区域对应的部分键以及指示在部分键和值地址之间的对应关系。由于嵌入式/卡存储设备4255参考部分键-值映射信息,故无需访问和读取所有存储器以进行迭代器操作。因此,嵌入式/卡存储设备4255可以快速地响应从应用处理器4100接收的对迭代器操作的请求。
嵌入式/卡存储设备4255可以例如基于UFS通信协议与应用处理器4100通信。在该示例中,应用处理器4100可以通过UFS HCI 4150处理与嵌入式/卡存储设备4255的通信。
电子设备4000可以通过诸如全球微波接入互操作性(WiMAX)4260、无线局域网(WLAN)4262和超宽带(UWB)4264的通信模块与外部设备/系统通信。电子设备4000还可以包括扬声器4270和麦克风(MIC)4275,其用于处理语音信息。电子设备4000还可以包括用于处理位置信息的全球定位系统(GPS)设备4280。电子设备4000还可以包括用于管理与外围设备的连接的桥接芯片4290。
图10说明用于在系统中执行迭代器操作的方法的实施例。在操作S1000中,存储设备140可以初始化与主机120的通信。主机120和存储设备140可以在彼此通信的同时管理数据。存储设备140可以包括用于存储数据的存储器设备。例如,存储器设备可以包括至少一个非易失性存储器。存储设备140可以传送用于使用键-值接口的各种信息。例如,为了配置部分键-值映射信息,存储设备140可以向主机120传送关于在存储设备140中可用的键的最大尺寸的信息。键的最大尺寸的信息可以用于确定要在存储设备140中管理的部分键的尺寸,以及确定用于迭代器操作的请求的特定位置。
在操作S1020中,主机120可以将偏移值传送到存储设备140。偏移值可以是通过使用键-值接口允许在存储设备140(其通过使用部分键管理映射信息)和主机120(其使用整个键)之间的通信可能的信息。例如,偏移值可以表示部分键与整个键的第一位置或最后位置间隔开多少。
此外,主机120可以将关于区域的信息传送到存储设备140。可以确定关于作为与部分键的尺寸相关联的值的区域的信息具有等于或大于键区域(其中针对迭代器操作与从主机120接收的键进行比较)的尺寸,并且等于或小于存储设备140中可用的键的最大尺寸的值。
在操作S1040中,主机120可以从存储设备140请求迭代器操作。存储设备140可以从主机120接收与要存储在至少一个存储器设备的数据对应的值和被参考以识别该值的键。例如,主机120可以向存储设备140请求关于在第三和第四位置具有与传送的键ABCDEFGH的第三和第四位置处的字符相同的字符的所有键的信息。主机120可以向存储设备140传送迭代器命令,该迭代器命令请求关于具有在第三和第四位置处分别是C和D的字符的所有键的信息。参考图1到图7描述了迭代器操作的实施例。
在操作S1060中,存储设备140可以将关于所有键的信息返回给主机120。取决于从主机120接收的请求,存储设备140可以使用存储在存储设备140中的键-值映射信息将关于所有请求的键的请求的信息返回给主机120。存储设备140可以参考用于迭代器操作的键-值映射信息。根据实施例,存储设备140可以使用部分键-值映射信息,其指示在值地址和部分键之间的对应关系,该部分键是键的部分区域,而不是键的整个区域。关于包括部分键的键的整个区域的信息可以存储在存储设备140的非易失性存储器中。
操作S1060可以包括:使用部分键-值映射信息确定要读取的至少一个存储器设备的部分区域,并对所确定的部分区域执行读取操作。例如,存储设备140可以仅对非易失性存储器中的至少部分区域执行读取操作,以获得关于在操作S1040中请求的所有键的信息。获得的关于所有键的信息可以返回给主机120。
可以以计算机可读代码的形式在计算机可读记录介质中实现上述实施例。计算机可读记录介质包括存储计算机系统可读数据的所有类型的记录设备。计算机可读记录介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带和软盘、光学数据存储设备,并且可以以在通过互联网传输的形式实现。此外,计算机可读记录介质分布在通过网络连接的计算机系统上,并且处理器可读的代码以分布式方式存储和执行。
本文描述的方法、过程和/或操作可以通过将由计算机、处理器、控制器或其他信号处理设备执行的代码或指令来执行。计算机、处理器、控制器或其他信号处理设备可以是本文描述的那些或除了本文描述的元件之外的一个。因为详细描述了形成方法(或计算机、处理器、控制器或其他信号处理设备的操作)的基础的算法,所以用于实现方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理设备转换为用于执行本文所述方法的专用处理器。
所公开的实施例的控制器、处理器、比较器和其他信号生成和信号处理特征可以用逻辑实现,例如,逻辑可以包括硬件、软件或两者。当至少部分地以硬件实现时,控制器、处理器、比较器以及其他信号生成和信号处理特征可以是例如各种集成电路中的任何一种,包括但不限于专用集成电路、现场可编程门阵列、逻辑门的组合、片上系统、微处理器或另一类型的处理或控制电路。
当至少部分地以软件实现时,控制器、处理器、比较器和其他信号生成和信号处理特征可以包括例如用于存储要执行(例如,通过计算机、处理器、微处理器、控制器或其他信号处理设备执行)的代码或指令的存储器或其他存储设备。计算机、处理器、微处理器、控制器或其他信号处理设备可以是本文描述的那些或除了本文描述的元件之外的一个。因为详细描述了形成方法(或计算机、处理器、微处理器、控制器或其他信号处理设备的操作)的基础的算法,所以用于实现方法实施例的操作的代码或指令可以将计算机、处理器、控制器或其他信号处理设备转换为用于执行本文所述的方法的专用处理器。
本文已经公开了示例实施例,并且尽管采用了特定术语,但是它们仅以一般性和描述性意义来使用和解释,而不是出于限制的目的。在一些情况下,如对于截止提交本申请时的本领域技术人员将显而易见的,结合特定实施例描述的特征、特性和/或元件可单独使用,或者与结合其他实施例描述的特征、特性和/或元件组合使用,除非另有说明。因此,在不脱离权利要求中阐述的实施例的精神和范围的情况下,可以在形式和细节上进行各种改变。

Claims (20)

1.一种存储设备,包括:
存储器,用于存储数据;和
控制器,用于从主机接收与存储在所述存储器中的数据相对应的值和要参考以识别所述值的键,以及管理指示在部分键和值地址之间的对应关系的部分键-值映射信息,其中该控制器响应于主机请求将信息返回给所述主机,该信息对应于包括与接收的键的特定位置处的字符相同的字符的键,该控制器通过以下方式确定该信息:
基于该部分键-值映射信息确定存储数据的所述存储器的部分区域,以及
对所述部分区域执行读取操作以获得包括该部分键的整个键。
2.如权利要求1所述的存储设备,其中:
该控制器包括易失性存储器,用于管理所述部分键-值映射信息,以及
该存储器是非易失性存储器,用于存储包括所述部分键的所述整个键。
3.如权利要求1所述的存储设备,其中,该控制器用于从所述主机接收与偏移对应的信息,该偏移将用作比较所述部分键和由该存储设备接收的键的基础。
4.如权利要求1所述的存储设备,其中,该控制器将所述信息返回给所述主机以执行再压缩、垃圾收集、重建和一致性检查中的至少一个。
5.一种电子设备,包括:
主机;和
包括用于存储数据的存储器的存储设备,
其中,所述存储设备用于从所述主机接收与存储在所述存储器中的数据对应的值和要参考以识别所述值的键,以及用于管理键-值映射信息,所述存储设备将信息返回给所述主机,该信息对应于包括与接收的键的特定位置处的字符相同的字符的键,基于来自所述主机的请求使用该键-值映射信息确定该信息。
6.如权利要求5所述的电子设备,其中,该键-值映射信息包括部分键-值映射信息,该部分键-值映射信息指示作为所述键的部分区域的部分键和值地址之间的对应关系。
7.如权利要求6所述的电子设备,其中:
该存储设备还包括控制器存储器,用于管理所述部分键-值映射信息,以及
该存储器还存储包括部分键的整个键。
8.如权利要求7所述的电子设备,其中:
该控制器存储器是易失性存储器,以及
所述存储器是非易失性存储器。
9.如权利要求7所述的电子设备,其中,所述存储设备用于:
使用所述部分键-值映射信息确定所述存储器的部分区域,以及
对所述存储器的所述部分区域执行读取操作以获得包括所述部分键的所述整个键。
10.如权利要求9所述的电子设备,其中,所述存储设备基于关于偏移的信息比较所述部分键和接收的键,并且取决于比较的结果确定所述存储器的所述部分区域。
11.如权利要求9所述的电子设备,其中:
所述存储器包括多个闪存,以及
所述存储设备基于与偏移对应的信息来比较所述部分键和接收的键,并且用于取决于比较的结果确定所述多个闪存中将执行读取操作的至少一个闪存。
12.如权利要求6所述的电子设备,其中:
所述部分键将基于如下信息中的至少一个来确定:关于从所述存储设备传送到所述主机并且在所述存储设备中可用的键的最大尺寸的信息,与从所述主机传送到所述存储设备的用于所述请求的偏移对应的信息,以及与所述部分键的尺寸对应的信息。
13.一种存储设备,包括:
存储器,用于存储数据;和
控制器,用于从主机接收与存储在所述存储器中的数据对应的值和要参考以识别所述值的键,以及管理键-值映射信息,其中该控制器向所述主机返回信息,该信息对应于包括与接收的键的特定位置处的字符相同的字符的键,该控制器响应于主机请求基于该键-值映射信息确定该信息。
14.如权利要求13所述的存储设备,其中,所述键-值映射信息是部分键-值映射信息,所述部分键-值映射信息指示作为所述键的部分区域的部分键和值地址之间的对应关系。
15.如权利要求14所述的存储设备,其中:
所述控制器包括控制器存储器,用于管理所述部分键-值映射信息,以及
所述存储器还存储包括所述部分键的整个键。
16.如权利要求15所述的存储设备,其中:
所述控制器存储器是易失性存储器,以及
所述存储器是非易失性存储器。
17.如权利要求15所述的存储设备,其中,所述控制器用于:
基于所述部分键-值映射信息确定所述存储器的部分区域,以及
对所述存储器的所述部分区域执行读取操作以获得包括所述部分键的整个键。
18.如权利要求17所述的存储设备,其中,所述控制器用于:
使用对应于偏移的信息比较所述部分键和接收的键,以及
取决于比较的结果确定所述存储器的所述部分区域。
19.如权利要求17所述的存储设备,其中:
所述存储器包括多个闪存,以及
所述控制器基于与偏移对应的信息来比较所述部分键和接收的键,并且用于取决于比较的结果确定所述多个闪存中将执行读取操作的至少一个闪存。
20.如权利要求14所述的存储设备,其中,所述部分键将基于如下信息中的至少一个来确定:与在所述存储设备中可用的键的最大尺寸对应的信息,与用于请求的偏移对应的信息,以及与所述部分键的尺寸对应的信息。
CN201811515723.XA 2017-12-29 2018-12-12 用于在数据库中执行迭代器操作的设备 Pending CN110059099A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/857,857 2017-12-29
US15/857,857 US10922239B2 (en) 2017-12-29 2017-12-29 Device for performing iterator operation in database
KR1020180039216A KR102623061B1 (ko) 2017-12-29 2018-04-04 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치
KR10-2018-0039216 2018-04-04

Publications (1)

Publication Number Publication Date
CN110059099A true CN110059099A (zh) 2019-07-26

Family

ID=67057735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811515723.XA Pending CN110059099A (zh) 2017-12-29 2018-12-12 用于在数据库中执行迭代器操作的设备

Country Status (3)

Country Link
US (1) US10922239B2 (zh)
KR (1) KR102623061B1 (zh)
CN (1) CN110059099A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7237782B2 (ja) * 2019-09-13 2023-03-13 キオクシア株式会社 ストレージシステム及びその制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541989A (zh) * 2010-10-28 2012-07-04 微软公司 数据检索的稳健的自动纠正
CN102929793A (zh) * 2011-08-08 2013-02-13 株式会社东芝 包括键-值存储的存储器系统
US20130275656A1 (en) * 2012-04-17 2013-10-17 Fusion-Io, Inc. Apparatus, system, and method for key-value pool identifier encoding
US9438426B2 (en) * 2014-10-03 2016-09-06 Seagate Technology Llc Key-value data storage device with hybrid architecture
CN107015920A (zh) * 2015-12-30 2017-08-04 三星电子株式会社 存储设备和存储设备的操作方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042927A1 (fr) * 1999-12-09 2001-06-14 Fujitsu Limited Dispositif d'acces memoire et methode utilisant une table d'historique des traductions d'adresses
US7110540B2 (en) * 2002-04-25 2006-09-19 Intel Corporation Multi-pass hierarchical pattern matching
US7409526B1 (en) * 2003-10-28 2008-08-05 Cisco Technology, Inc. Partial key hashing memory
US7636717B1 (en) * 2007-01-18 2009-12-22 Netlogic Microsystems, Inc. Method and apparatus for optimizing string search operations
US8429133B2 (en) * 2007-12-13 2013-04-23 Oracle International Corporation Partial key indexes
US8433695B2 (en) 2010-07-02 2013-04-30 Futurewei Technologies, Inc. System architecture for integrated hierarchical query processing for key/value stores
US10558705B2 (en) 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
US8788788B2 (en) 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US9519575B2 (en) 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US9129118B1 (en) * 2013-05-03 2015-09-08 Amazon Technologies, Inc. Mapping identifying information
US20150074084A1 (en) 2013-09-12 2015-03-12 Neustar, Inc. Method and system for performing query processing in a key-value store
US9244857B2 (en) * 2013-10-31 2016-01-26 Oracle International Corporation Systems and methods for implementing low-latency lookup circuits using multiple hash functions
US9569141B2 (en) 2014-03-28 2017-02-14 Intel Corporation Hash map support in a storage device
SG11201811425TA (en) * 2016-09-22 2019-01-30 Visa Int Service Ass Techniques for in-memory key range searches
US10803040B2 (en) * 2017-08-28 2020-10-13 International Business Machines Corporation Efficient and accurate lookups of data by a stream processor using a hash table
US11133090B2 (en) * 2017-09-22 2021-09-28 Cerner Innovation, Inc. Semantic search for a health information exchange

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541989A (zh) * 2010-10-28 2012-07-04 微软公司 数据检索的稳健的自动纠正
CN102929793A (zh) * 2011-08-08 2013-02-13 株式会社东芝 包括键-值存储的存储器系统
US20130275656A1 (en) * 2012-04-17 2013-10-17 Fusion-Io, Inc. Apparatus, system, and method for key-value pool identifier encoding
US9438426B2 (en) * 2014-10-03 2016-09-06 Seagate Technology Llc Key-value data storage device with hybrid architecture
CN107015920A (zh) * 2015-12-30 2017-08-04 三星电子株式会社 存储设备和存储设备的操作方法

Also Published As

Publication number Publication date
US20190205258A1 (en) 2019-07-04
KR20190082652A (ko) 2019-07-10
US10922239B2 (en) 2021-02-16
KR102623061B1 (ko) 2024-01-10

Similar Documents

Publication Publication Date Title
US11874815B2 (en) Key-value storage device and method of operating the same
CN109376123B (zh) 管理文件的方法、分布式存储系统和管理节点
KR102137761B1 (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
CN105190526B (zh) 对用于非易失性存储设备的存储器重新编址
US11270734B2 (en) Method for accessing shingled magnetic recording SMR disk, and server
US9244619B2 (en) Method of managing data storage device and data storage device
KR20190064083A (ko) 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치
US20150169570A1 (en) Method and device for managing data
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN109783405A (zh) 存储设备和存储设备的操作方法
CN111752480A (zh) 一种数据写方法、数据读方法及相关设备、系统
KR20120063829A (ko) 비휘발성 메모리 장치의 데이터 처리 방법
TW201714090A (zh) 記憶體裝置、記憶體定址方法與包括有形儲存媒體的物品
KR20180087925A (ko) 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
CN110908927A (zh) 数据储存装置及其删除命名空间的方法
CN109992203A (zh) 能够进行细粒度读取和/或写入操作的海量存储装置
KR20200132047A (ko) 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112988060A (zh) 键值存储装置和用于操作键值存储装置的方法
CN112463055B (zh) 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质
US20180239711A1 (en) Dimm ssd addressing performance techniques
CN109726147A (zh) 使用数据保护访问带内存储器的设备和方法
CN110059099A (zh) 用于在数据库中执行迭代器操作的设备
US11507320B2 (en) USB based cloud disk and disk segment management system
CN113126908A (zh) 被配置为支持多流的存储装置及其操作方法

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