CN110442569B - 在键值固态设备中进行数据分析的装置和方法 - Google Patents
在键值固态设备中进行数据分析的装置和方法 Download PDFInfo
- Publication number
- CN110442569B CN110442569B CN201910353783.4A CN201910353783A CN110442569B CN 110442569 B CN110442569 B CN 110442569B CN 201910353783 A CN201910353783 A CN 201910353783A CN 110442569 B CN110442569 B CN 110442569B
- Authority
- CN
- China
- Prior art keywords
- data
- container
- analysis
- kvsd
- key
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
- Emergency Protection Circuit Devices (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
- Photoreceptors In Electrophotography (AREA)
Abstract
提供了一种数据分析装置和方法。该装置包括:键值固态设备(KVSSD),包括至少一个KVSSD数据容器;以及至少一个KVSSD分析容器,与至少一个KVSSD数据容器中的至少一个相关联。
Description
优先权
本申请要求于2018年5月3日向美国专利商标局提交的并且被指配序列号62/666,283的美国临时专利申请的优先权,该美国临时专利申请的整体内容通过引用并入于此。
技术领域
本公开总体上涉及数据分析,并且更具体地,涉及键值固态设备(KVSSD)中的数据分析。
背景技术
KVSSD将数据存储在键值对(key-value pair)中。KVSSD是用于本地地存储、取回和管理在键值对中所存储的数据记录的数据存储设备。使用唯一地标识记录的键(其用于快速地查找存储设备内的数据)来存储和取回这些记录。KVSSD使用与由常规软件键值存储使用的接口类似的接口。KVSSD支持包括诸如获取(get)、放置(put)、查询(lookup)、取出(fetch)、存储(store)和查找(find)数据的操作的接口。
RocksDB是用于快速存储的可嵌入的持久键值存储。然而,本公开不限于被应用到RocksDB,而是可以被应用于任何适当的应用。
常规技术使用主机中央处理单元(CPU)来执行数据分析,这就CPU处理而言是高价的。
发明内容
根据一个实施例,提供了一种装置。该装置包括:KVSSD,包含至少一个KVSSD数据容器;以及至少一个KVSSD分析容器,与至少一个KVSSD数据容器中的至少一个相关联。
根据一个实施例,提供了一种方法。该方法包括:将数据存储在KVSSD中的至少一个KVSSD数据容器中;以及由至少一个KVSSD分析容器来分析与至少一个KVSSD分析容器相关联的至少一个KVSSD数据容器中的至少一个中的数据。
附图说明
根据结合附图进行的以下详细描述,本公开的某些实施例的上述及其他方面、特征和优点将更加明显,在附图中:
图1是根据一个实施例的、具有用于分析的KVSSD容器的电子设备的框图;
图2是根据一个实施例的、用于分析的KVSSD数据容器的框图;
图3是根据一个实施例的、用于分析的KVSSD分析容器的框图;
图4是根据一个实施例的、包括用于分析的分层KVSSD容器的电子设备400的框图和数据流程图;
图5是根据一个实施例的、用于分析的KVSSD容器的输入/输出(I/O)路径的框图和数据流程图;以及
图6是根据一个实施例的网络环境中的电子设备的框图。
具体实施方式
在下文中,参考附图详细地描述本公开的实施例。应当注意,尽管相同要素被示出在不同的图中,但它们将由相同附图标记来指定。在以下描述中,诸如详细配置和组件的特定细节仅被提供来帮助对本公开的实施例的全面了解。因此,对于本领域技术人员应当明显的是,可以在不背离本公开的范围的情况下,对在本文中描述的实施例进行各种改变和修改。另外,为了清楚和简明而省略对熟知的功能和构造的描述。如下所述的术语是考虑本公开中的功能所定义的术语,并且可以根据用户、用户的意图或习惯而不同。因此,应当基于贯穿本说明书的内容来确定术语的定义。
本公开可以具有各种修改和各种实施例,以下参考附图详细地描述了其中的实施例。然而,应当理解,本公开不限于实施例,而是包括在本公开的范围内的所有修改、等同物和替换方式。
尽管包括诸如第一、第二等的序数的术语可以用于描述各个要素,但结构要素不受限于术语。术语仅用于将一个要素与另一个要素相区别。例如,在不背离本公开的范围的情况下,第一结构要素可以被称为第二结构要素。类似地,第二结构要素也可以被称为第一结构要素。当在本文中使用时,术语“和/或”包括一个或多个相关联的项的任何和所有组合。
在本文使用的术语仅用于描述本公开的各个实施例,而并不意图限制本公开。单数形式意图包括复数形式,除非上下文清楚地指示其他。在本公开中,应当理解,术语“包括”或“具有”指示特征、数字、步骤、操作、结构要素、部分,或其组合的存在,并且不排除一个或多个其他特征、数字、步骤、操作、结构要素、部分或其组合的添加的存在或者可能性。
除非被不同地定义,否则在本文中使用的所有术语具有与本公开所属领域技术人员所理解的那些意义相同的意义。术语——诸如在通用词典中定义的那些术语——将被解释为具有与相关技术领域中的上下文意义相同的意义,并且将不被解释为具有理想化的或过于正式的意义,除非在本公开中被清楚地定义。
在实施例中,在存储设备(storage)中(例如,在KVSSD中)执行数据分析。
在实施例中,在KVSSD中的容器分部(division)中执行数据分析。
在实施例中,通过与现场可编程门阵列(FPGA)相关联的容器来执行数据处理和搜索。
在实施例中,在被分层的容器中执行数据分析。
在实施例中,经由使用应用编程接口(API)来执行KVSSD中的数据分析。
在实施例中,对用户内容进行分析并且将其分离到相应的容器中以促进容器中的数据分析。
在实施例中,数据容器和分析容器存储不同类型的数据。
在实施例中,FPGA可以用于操作分析模块以加速数据分析。
可以针对用于将数据分析集成在KVSSD中的RocksDB或任何其他应用提供软件API。
在实施例中,利用KVSSD容器来支持数据分析。
KVSSD将数据存储在键值对中。可以在容器中组织KVSSD中的数据。容器充当虚拟化层(virtualization layer),并且允许单个KVSSD暴露为多个KVSSD,或KVSSD的不同的细分。也可以将容器中的数据存储在键值对中。值得注意地是,两个容器可以具有相同的键。
在实施例中,在容器被成层在彼此上的KVSSD中执行数据分析。容器(及其分层)提供对数据的了解(insight)。作为数据分析的示例,可以“搜索”数据模式,并且可以配置容器来保持这样的搜索的结果。作为特定示例,可以使数据分析容器捕获存储在数据容器中所存储的数据集中的所有统一资源定位符(URL)。此外,分析容器可以充当高级别分析容器的数据容器,允许用于执行多步骤分析的系统的容易构造。
在实施例中,提供用于应用(例如,RocksDB)的API以实现KVSSD中的数据分析。
图1是根据一个实施例的、具有用于分析的KVSSD容器的电子设备100的框图。
参考图1,电子设备100包括第一KVSSD容器101和第二KVSSD容器103。KVSSD容器可以被看作物理KVSSD内部的逻辑KVSSD。在本文中,KVSSD容器可以具有两种类型:数据容器和分析容器。
第一KVSSD容器101包括键值对的至少一个组105。至少一个组105包括至少一个键值对的第一集合107和至少一个键值对的第二集合109。
第二KVSSD容器103包括至少一个组111和可能未分组的至少一个键值对的集合113。组111可以包含多个键值对(类似于组105)。
图2是根据一个实施例的、用于分析的KVSSD数据容器200的框图。
参考图2,KVSSD数据容器200将数据保持在键值对(例如,第一键值对201、第二键值对203以及第n键值对205)中。键是针对数据的用户(或应用)定义的标识符,并且键值对中的值部分存储用户数据。KVSSD数据容器200可以(但是不一定)操作为常规KVSSD容器。
图3是根据一个实施例的、用于分析的KVSSD分析容器300的框图。
参考图3,KVSSD分析容器300将分析数据保持在键值对(例如,第一键值对301、第二键值对303以及第n键值对305)中。然而,在分析容器中,键可以存储容器标识符(ID)、偏移和用户定义键。键值对的值部分存储报头和分析有关的数据,如以下将描述地。
KVSSD分析容器300存储数据分析的结果。存储在KVSSD分析容器300中的数据分析结果被存储为键值对。KVSSD分析容器300与一个或多个KVSSD数据容器(例如,KVSSD数据容器200)相关联,这可以经由分析键的容器ID来进行。
键包含(一个或多个)数据容器标识符、数据容器中的数据的逻辑偏移以及用户/应用键,其也可以是相对应的数据容器的键。
值包含报头(例如,存储在数据的初始部分中的固定大小的报头)。在报头之后存储分析信息。通过报头来指示在值的数据部分中找到的分析信息的类型。例如,具有指示“类型0”的报头的值可以存储与分析相关联的用户数据(例如,被找到与搜索匹配的用户数据)。替换地,具有指示类型1的报头的值可以保持其中存储键的相关联的数据容器内的块位置,其可以用于取回与分析有关的数据。(例如,类型0包含实际的数据,而类型1存储对保持数据的KVSSD数据容器中的块的引用(reference))。例如,如果KVSSD分析容器300被配置为搜索超文本传送协议(HTTP)请求,则可以将整个URL存储在数据中。
图4是根据一个实施例的、包括用于分析的分层KVSSD容器的电子设备400的框图和数据流程图。
参考图4,电子设备400包括KVSSD数据容器401、基于KVSSD值的容器-0 403以及KVSSD模式识别容器-1 405。
如在图4中所示地在层中组织KVSSD容器。顶层是KVSSD数据容器401,其持久地将用户数据存储在键值对中。管理员或应用可以配置KVSSD分析容器并且使它们与数据容器相关联。例如,KVSSD分析容器可以与多于一个数据容器相关联。KVSSD分析容器可以保持从存储在KVSSD数据容器中的数据得到的搜索-结果数据。也可以将分析信息存储在KVSSD分析容器中的键值对中。
可以将用于RocksDB的API增强为包括分析容器。然而,本公开不限于此,而是可以被应用于任何适当的API。例如,RocksDB API可以与KVSSD进行通信以创建分析容器,例如,用于HTTP请求(基于值),并且使其与KVSSD数据容器(例如,KVSSD数据容器401)相关联。KVSSD(例如,电子设备400)可以被配置为包括分析容器(例如,基于值的KVSSD容器-0403)并且使分析容器与数据容器(例如,KVSSD数据容器401)相关联。此外,分析容器可以利用其他分析容器作为基础数据容器以对在先的分析的结果执行额外的分析。即,分析容器可以用作其他分析容器的数据容器,并且可以对分析容器内的数据进行分析以用于某些另外的目的。(例如,用于模式识别和递归HTTP信息的存储的模式识别容器-1 405,等等)。
图5是根据一个实施例的、用于分析的KVSSD容器的I/O路径500的框图和数据流程图。
参考图5,记录模块501持续地将用户数据记录到静态随机存取存储器(SRAM)中以确保数据交易在KVSSD容器上处于最底层的详细度(即,原子的)。
向KVSSD数据容器503和FPGA 505提供用户记录的数据以用于处理用户记录的数据。KVSSD数据容器503可以将数据块分配在磁盘上并且持久地将数据存储在数据容器中的键值对中。可以将对块指针或被识别的数据的引用传递到持久数据分析模块507。FPGA 505使得能够进行更快的数据查找,并且可以位于KVSSD上或接近KVSSD。
持久数据分析模块507从FPGA 505采集信息并且将信息存储在KVSSD分析容器中。即,FPGA 505对KVSSD数据容器中的数据执行特定分析操作,并且将结果作为键值对以下述格式存储在分析容器中:该格式基于分析的类型、数据的类型以及数据是否将被存储或引用。然后,用户记录的数据被用户记录数据释放模块509释放。
返回模块511释放在记录模块501中相关联的数据结构,其中,数据被持久地存储在磁盘上。
虚拟或非虚拟KVSSD分析容器实现对询问的增强响应。例如,管理员可以在两个或更多KVSSD分析容器之上创建虚拟KVSSD容器以表示逻辑运算。例如,可以创建虚拟KVSSD容器以呈现对存储在多个KVSSD容器上的所有数据的“或(OR)”操作的结果。虚拟KVSSD容器可以使用FPGA 505来执行“或”操作。
在实施例中,为RocksDB(或类似的应用)提供四个API以用于使用KVSSD来执行数据分析。
第一API可以用于配置KVSSD分析,其使得管理员能够创建KVSSD分析容器并且使其与KVSSD数据容器相关联。
第二API是“删除KVSSD容器API”,其使得KVSSD分析容器与KVSSD数据容器去关联。可以为了执行查找而查询KVSSD数据容器。
第三API是“破坏KVSSD容器API”,其终止KVSSD分析容器。存储在被终止的KVSSD分析容器中的数据分析被擦除并且存储空间被回收。
第四API是“创建虚拟KVSSD容器API”,其使得管理员能够在KVSSD分析容器或另一个虚拟KVSSD容器任一之上创建虚拟KVSSD容器。可以创建虚拟KVSSD容器例如用于询问优化,其中,虚拟KVSSD容器不一定需要存储数据,但是可以使用FPGA来处理数据。
图6是根据一个实施例的、网络环境600中的电子设备601的框图。
参考图6,网络环境600中的电子设备601可以经由第一网络698(例如,短程无线通信网络)与电子设备602进行通信,或者经由第二网络699(例如,远程无线通信网络)与电子设备604或服务器608进行通信。根据一个实施例,电子设备601可以经由服务器608与电子设备604进行通信。电子设备601可以包括处理器620、存储器630(例如,具有数据容器和分析容器的KVSSD)、输入设备650、声音输出设备655、显示设备660、音频模块670、传感器模块676、接口677、触觉模块679、照相机模块680、功率管理模块688、电池689、通信模块690、订户识别模块(SIM)696或天线组件697。在一个实施例中,可以从电子设备601省略组件中的至少一个(例如,显示设备660或照相机模块680),或者可以将一个或多个其他组件添加到电子设备601。在一个实施例中,组件中的一些可以被实施为单个集成电路(IC)。例如,可以将传感器模块676(例如,指纹传感器、虹膜传感器或照度传感器)嵌入在显示设备660(例如,显示器)中。
处理器620可以例如执行软件(例如,程序640)来控制与处理器620耦合的电子设备601的至少一个其他组件(例如,硬件或软件组件),并且可以执行各种数据处理或计算。根据一个实施例,作为数据处理或计算的至少一部分,处理器620可以将从另一个组件(例如,传感器模块676或通信模块690)接收到的命令或数据加载到易失性存储器632中,处理存储在易失性存储器632中的命令或数据,并且将结果数据存储在非易失性存储器634中。根据一个实施例,处理器620可以包括主处理器621(例如,中央处理单元(CPU)或应用处理器(AP)),以及相对主处理器621独立地可操作或结合主处理器621操作的辅助处理器623(例如,图形处理单元(GPU)、图像信号处理器(ISP)、传感器集线器处理器或者通信处理器(CP))。另外地或替换地,辅助处理器623与主处理器621相比可以适于消耗较少功率,或者执行特定功能。辅助处理器623可以被实施为与主处理器621分开,或者是主处理器621的一部分。
辅助处理器623可以在主处理器621处于未激活(例如,休眠)状态时代替主处理器621来控制与电子设备601的组件当中的至少一个组件(例如,显示设备660、传感器模块676或通信模块690)有关的至少一些功能或状态,或者在主处理器621处于激活状态(例如,执行应用)时与主处理器621一起进行控制。根据一个实施例,辅助处理器623(例如,图像信号处理器或通信处理器)可以被实施为功能上与辅助处理器623有关的另一个组件(例如,照相机模块680或通信模块690)的一部分。
存储器630(例如,具有数据容器和分析容器的KVSSD)可以存储由电子设备601的至少一个组件(例如,处理器620或传感器模块676)所使用的各种数据。各种数据例如可以包括软件(例如,程序640)以及针对与其有关的命令的输入数据或输出数据。存储器630可以包括易失性存储器632或非易失性存储器634。
可以将程序640作为软件存储在存储器630中,并且程序640例如可以包括操作系统(OS)642、中间件644或应用646。
输入设备650可以从电子设备601的外部(例如,用户)接收将由电子设备601的其他组件(例如,处理器620)使用的命令或数据。输入设备650例如可以包括麦克风、鼠标或键盘。
声音输出设备655可以向电子设备601的外部输出声音信号。声音输出设备655例如可以包括扬声器或接收机。扬声器可以用于通用目的,诸如播放多媒体或录制,而接收机可以用于接收传入的呼叫。根据一个实施例,接收机可以被实施为与扬声器分开,或者是扬声器的一部分。
显示设备660可以可视地向电子设备601的外部(例如,用户)提供信息。显示设备660例如可以包括显示器、全息图设备或者投影仪以及用于控制显示器、全息图设备和投影仪的相对应的一个的控制电路。根据一个实施例,显示设备660可以包括适于检测触摸的触摸电路,或者适于测量由触摸导致的力的强度的传感器电路(例如,压力传感器)。
音频模块670可以将声音转换为电信号并且反之亦然。根据一个实施例,音频模块670可以经由输入设备650获得声音,或者经由声音输出设备655或经由直接地(例如,有线地)或无线地与电子设备601耦合的外部电子设备(例如,电子设备602)的耳机来输出声音。
传感器模块676可以检测电子设备601的操作状态(例如,功率或温度)或者电子设备601外部的环境状态(例如,用户的状态),并且然后生成与检测到的状态相对应的电信号或数据值。根据一个实施例,传感器模块676例如可以包括手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、色彩传感器、红外(IR)传感器、生物信息传感器、温度传感器、湿度传感器或照度传感器。
接口677可以支持将用于使电子设备601直接地(例如,有线地)或无线地与外部电子设备(例如,电子设备602)耦合的一个或多个指定的协议。根据一个实施例,接口677例如可以包括高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端子678可以包括连接器,经由该连接器电子设备601可以物理地与外部电子设备(例如,电子设备602)相连接。根据一个实施例,连接端子678例如可以包括HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块679可以将电信号转换为可以由用户经由触觉感测或动觉感测识别的机械刺激(例如,振动或移动)或者电刺激。根据一个实施例,触觉模块679例如可以包括电动机、压电元件或电刺激器。
照相机模块680可以捕获静止图像或活动图像。根据一个实施例,照相机模块680可以包括一个或多个透镜、图像传感器、图像信号处理器或者闪光灯。
功率管理模块688可以管理供应给电子设备601的功率。根据一个实施例,功率管理模块688可以被实施为例如功率管理集成电路(PMIC)的至少一部分。
电池689可以向电子设备601的至少一个组件供应功率。根据一个实施例,电池689例如可以包括不是可再充电的主电池,可再充电的次电池或燃料电池。
通信模块690可以支持在电子设备601和外部电子设备(例如,电子设备602、电子设备604或服务器608)之间建立直接(例如,有线)通信信道或无线通信信道,以及支持经由建立的通信信道来执行通信。通信模块690可以包括可独立于处理器620操作的一个或多个通信处理器(例如,AP),并且支持直接的(例如,有线的)通信或无线通信。根据一个实施例,通信模块690可以包括无线通信模块692(例如,蜂窝通信模块、短程无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块694(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的对应的一个可以经由第一网络698(例如,短程通信网络、诸如蓝牙TM、无线保真(Wi-Fi)直连或者红外线数据协会(IrDA)的标准))或第二网络699(例如,远程通信网络,诸如蜂窝网络、因特网或者计算机网络(例如,LAN或广域网(WAN))与外部电子设备进行通信。这些各种类型的通信模块可以被实施为单个组件(例如,单个IC),或者可以被实施为彼此分开的多个组件(多个IC)。无线通信模块692可以使用存储在订户识别模块696中的订户信息(例如,国际移动用户识别(IMSI))来识别和认证诸如第一网络698或第二网络699的通信网络中的电子设备601。
天线组件697可以向电子设备601的外部(例如,外部电子设备)传送信号或功率或者从其接收信号或功率。根据一个实施例,天线组件697可以包括一个或多个天线,并且例如可以通过通信模块690(例如,无线通信模块692)从其中选择适合于在诸如第一网络698或第二网络699的通信网络中使用的通信方案的至少一个天线。然后,可以经由所选择的至少一个天线在通信模块690和外部电子设备之间传送或接收信号或功率。
以上描述的组件中的至少一些可以相互地耦合并且经由外围设备间通信方案(例如,总线、通用输入和输出(GPIO)、串行外围接口(SPI)或者移动行业处理器接口(MIPI))在其间传送信号(例如,命令或数据)。
根据一个实施例,可以经由与第二网络699耦合的服务器608在电子设备601和外部电子设备604之间传送或接收命令或数据。电子设备602和604中的每个可以是与电子设备601具有相同类型或不同的类型的设备。根据一个实施例,可以在外部电子设备602、604或608中的一个或多个执行将在电子设备601执行的操作中的所有或一些。例如,如果电子设备601应当自动地或响应于来自用户或另一个设备的请求来执行功能或服务,作为对执行功能或服务的代替或补充,电子设备601可以请求一个或多个外部电子设备执行功能或服务的至少一部分。接收请求的一个或多个外部电子设备可以执行所请求的功能或服务的至少一部分,或与请求有关的附加功能或附加服务,并且向电子设备601传递执行的结果。电子设备601可以在有或没有对结果进行进一步处理的情况下提供结果来作为对请求的应答的至少一部分。为此目的,可以例如使用云计算、分布式计算或者客户端-服务器计算技术。
根据一个实施例的电子设备可以是各种类型的电子设备之一。电子设备例如可以包括便携式通信设备(例如,智能电话)、计算机、便携式多媒体设备、便携式医疗设备、照相机、可穿戴设备或者家用电器。根据本公开的一个实施例,电子设备不限于在以上描述的那些。
在本公开中使用的术语并不意图限制本公开,而是意图是包括关于对应的实施例的各种改变、等同物或者更换。关于对附图的描述,类似的附图标记可以用于指代类似的或有关要素。对应于项的名词的单数形式可以包括一个或多个物品,除非有关的上下文清楚地另外指出其他。当在本文中使用时,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的每个这样的词组可以包括在词组中的对应之一中一起列举出的项的所有可能的组合。如在本文所使用的,诸如“第1”、“第2”、“第一”和“第二”之类的术语可以用于将对应的组件与另一个组件相区分,但是并不意图在其他方面(例如,重要性或顺序方面)限制组件。意图是如果元件(例如,第一元件)在有或没有术语“操作地”或“通信地”的情况下被称为“与另一个元件(例如,第二元件)耦合”、“耦合到另一个元件(例如,第二元件)”或“连接到另一个元件(例如,第二元件)”,则其指示元件可以直接地(例如,有线地)、无线地,、经由第三元件与该另一个元件耦合。
当在本文中使用时,术语“模块”可以包括以硬件、软件或固件实施的单元,并且可以与例如“逻辑”、“逻辑块”、“部件”和“电路”的其他术语可交换地使用。模块可以是单个整体组件,或者是适于执行一个或多个功能的最小单元或其一部分。例如,根据一个实施例,可以以专用集成电路(ASIC)的形式来实施模块。
一个实施例可以被实施为包括存储在机器(例如,电子设备601)可读的存储媒介(例如,内部存储器636或外部存储器638)中的一个或多个指令的软件(例如,程序640)。例如,机器(例如,电子设备601)的处理器(例如,处理器620)可以调用存储在存储媒介中的一个或多个指令中的至少一个,并且在处理器的控制下在有或没有使用一个或多个其他组件的情况下执行其。因此,可以操作机器以根据被调用的至少一个指令来执行至少一个功能。一个或多个指令可以包括由编译器生成的代码或可由解释器执行的代码。可以以非暂时性存储媒介的形式提供机器可读存储媒介。术语“非暂时性”指示存储媒介是有形设备,并且不包括信号(例如,电磁波),但是该术语不在数据被半永久地存储在存储媒介中的情况与数据被暂时地存储在存储媒介中的情况之间进行区分。
根据一个实施例,可以在计算机程序产品中包括和提供本公开的方法。计算机程序产品可以被交易为卖家和买家之间的产品。可以以机器可读存储媒介的形式(例如,只读存储型压缩盘(CD-ROM))来分发,或者经由应用商店(例如,PlayStoreTM)在线分发(例如,下载或上载),或在两个用户设备(例如,智能电话)之间直接地分发计算机程序产品。如果被在线分发,计算机程序产品的至少一部分可以被暂时地生成或至少被暂时地存储在诸如制造商的服务器、应用商店的服务器或者中继服务器的存储器之类的机器可读存储媒介中。
根据一个实施例,以上描述的组件中的每个组件(例如,模块或程序)可以包括单个实体或多个实体。根据一个实施例,可以省略以上描述的组件中的一个或多个,或可以添加一个或多个其他组件。替换地或另外地,多个组件(例如,模块或程序)可以被集成到单个组件中。在该情况下,集成元件可以仍然以与它们在集成之前由多个组件的对应之一所执行的相同的或类似的方式来执行多个组件中的每个的一个或多个功能。可以顺序地、并行地、反复地或启发式地执行由模块、程序或另一个组件所执行的操作,或可以以不同的次序执行或省略一个或多个操作,或可以添加一个或多个其他操作。
尽管已经在本公开的具体实施方式中描述了本公开的某些实施例,但在不背离本公开的范围的情况下,可以以各种形式修改本公开。因而,不应当仅仅基于所描述的实施例来确定本公开的范围,而是基于所附权利要求和其等同物来确定本公开的范围。
Claims (16)
1.一种装置,包括:
键值固态设备KVSSD,包括至少一个KVSSD数据容器;以及
至少一个KVSSD分析容器,与至少一个KVSSD数据容器中的至少一个相关联,
其中,至少一个KVSSD分析容器被配置为将数据分析结果存储在键值对中,
其中,存储在至少一个KVSSD分析容器中的键值对中的值包括报头,以及依赖于存储在报头中的类型的分析结果信息,以及
其中,在报头中存储的类型包括指示存储与分析相关联的用户数据的第一类型和指示在其中写入键的至少一个KVSSD数据容器内保持引用的第二类型。
2.根据权利要求1所述的装置,其中,至少一个KVSSD数据容器被配置为将数据存储在键值对中。
3.根据权利要求1所述的装置,其中,所述装置进一步包括与至少一个KVSSD分析容器中的至少一个相关联的至少一个虚拟分析容器。
4.根据权利要求3所述的装置,其中,至少一个虚拟分析容器中的每个被配置为对存储在多个容器中的数据执行逻辑操作。
5.根据权利要求4所述的装置,其中,至少一个虚拟分析容器中的每个被配置为利用现场可编程门阵列来执行逻辑操作。
6.根据权利要求1所述的装置,其中,存储在至少一个KVSSD分析容器中的键值对中的键包括KVSSD数据容器标识符、与KVSSD数据容器标识符相关联的KVSSD数据容器中的数据的逻辑偏移以及也是与KVSSD数据容器标识符相关联的KVSSD数据容器中的键的用户键。
7.根据权利要求1所述的装置,其中,所述报头具有存储在数据的初始部分中的固定大小。
8.根据权利要求1所述的装置,进一步包括:现场可编程门阵列,被配置为接收被存储在至少一个KVSSD数据容器中的数据、对数据执行分析操作,以及将分析操作的结果以键值对存储在至少一个KVSSD分析容器中。
9.一种方法,包括:
将数据存储在键值固态设备KVSSD中的至少一个KVSSD数据容器中;
由至少一个KVSSD分析容器来分析与至少一个KVSSD分析容器相关联的至少一个KVSSD数据容器中的至少一个中的数据;
将数据分析结果存储在至少一个KVSSD分析容器中的键值对中;
将其中存储有类型的报头包括在存储于至少一个KVSSD分析容器中的键值对中的值中,其中所述值包括依赖于存储在报头中的类型的分析结果信息;
将第一类型包括在存储在报头中的类型中以指示存储与分析相关联的用户数据,以及将第二类型包括在存储在报头中的类型中以指示在写入键的至少一个KVSSD数据容器内保持引用。
10.根据权利要求9所述的方法,进一步包括将数据存储在至少一个KVSSD数据容器中的键值对中。
11.根据权利要求9所述的方法,进一步包括使至少一个虚拟分析容器与至少一个KVSSD分析容器中的至少一个相关联。
12.根据权利要求11所述的方法,进一步包括由至少一个虚拟分析容器中的至少一个对存储在多个容器中的数据执行逻辑操作。
13.根据权利要求12所述的方法,进一步包括使用至少一个虚拟分析容器中的至少一个中所包括的现场可编程门阵列执行逻辑操作。
14.根据权利要求9所述的方法,进一步包括将KVSSD数据容器标识符、与KVSSD数据容器标识符相关联的KVSSD数据容器中的数据的逻辑偏移以及也是与KVSSD数据容器标识符相关联的KVSSD数据容器中的键的用户键包括在存储在至少一个KVSSD分析容器中的键值对中的键中。
15.根据权利要求9所述的方法,其中,所述报头具有存储在数据的初始部分中的固定大小。
16.根据权利要求9所述的方法,进一步包括在现场可编程门阵列中接收被存储在至少一个KVSSD数据容器中的数据、对数据执行分析操作,并且将分析操作的结果以键值对存储在至少一个KVSSD分析容器中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862666283P | 2018-05-03 | 2018-05-03 | |
US62/666,283 | 2018-05-03 | ||
US15/975,314 | 2018-05-09 | ||
US15/975,314 US10579606B2 (en) | 2018-05-03 | 2018-05-09 | Apparatus and method of data analytics in key-value solid state device (KVSSD) including data and analytics containers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442569A CN110442569A (zh) | 2019-11-12 |
CN110442569B true CN110442569B (zh) | 2021-08-03 |
Family
ID=68384908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910353783.4A Active CN110442569B (zh) | 2018-05-03 | 2019-04-29 | 在键值固态设备中进行数据分析的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10579606B2 (zh) |
KR (1) | KR102443699B1 (zh) |
CN (1) | CN110442569B (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101490327B1 (ko) * | 2006-12-06 | 2015-02-05 | 퓨전-아이오, 인크. | 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법 |
US7827201B1 (en) | 2007-04-27 | 2010-11-02 | Network Appliance, Inc. | Merging containers in a multi-container system |
US8429114B2 (en) * | 2010-09-29 | 2013-04-23 | Nokia Corporation | Method and apparatus for providing low cost programmable pattern recognition |
US10789272B2 (en) * | 2011-06-06 | 2020-09-29 | International Business Machines Corporation | Scalable, distributed containerization across homogenous and heterogeneous data stores |
US9411539B2 (en) * | 2014-09-24 | 2016-08-09 | International Business Machines Corporation | Providing access information to a storage controller to determine a storage tier for storing data |
KR101730040B1 (ko) * | 2014-10-23 | 2017-04-25 | 주식회사 나라시스템 | 데이터 처리장치 |
CN105094707B (zh) | 2015-08-18 | 2018-03-13 | 华为技术有限公司 | 一种数据存储、读取方法及装置 |
WO2017044047A1 (en) | 2015-09-08 | 2017-03-16 | Agency For Science, Technology And Research | Highly scalable computational active ssd storage device |
JP2017076264A (ja) | 2015-10-15 | 2017-04-20 | 日本電気株式会社 | ファイルアクセスシステム、方法及びプログラム |
US20170139594A1 (en) | 2015-11-17 | 2017-05-18 | Samsung Electronics Co., Ltd. | Key-value integrated translation layer |
KR102495652B1 (ko) | 2016-01-14 | 2023-02-06 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서의 컨테이너 기반의 데이터 관리 방법 |
US9990146B2 (en) | 2016-02-03 | 2018-06-05 | Sandisk Technologies Llc | Apparatus and method of data sequencing |
US11301422B2 (en) | 2016-02-23 | 2022-04-12 | Samsung Electronics Co., Ltd. | System and methods for providing fast cacheable access to a key-value device through a filesystem interface |
US10387302B2 (en) | 2016-04-18 | 2019-08-20 | Samsung Electronics Co., Ltd. | Managing database index by leveraging key-value solid state device |
CN106886375B (zh) * | 2017-03-27 | 2019-11-05 | 百度在线网络技术(北京)有限公司 | 存储数据的方法和装置 |
US11030155B2 (en) * | 2017-04-26 | 2021-06-08 | Samsung Electronics Co., Ltd. | Key value file system |
US10678768B2 (en) * | 2017-06-30 | 2020-06-09 | Intel Corporation | Logical band-based key-value storage structure |
US11436353B2 (en) * | 2017-09-13 | 2022-09-06 | Vmware, Inc. | Merge updates for key value stores |
US10545696B2 (en) * | 2017-11-14 | 2020-01-28 | Samsung Electronics Co., Ltd. | Data deduplication using KVSSD |
US10572161B2 (en) * | 2017-11-15 | 2020-02-25 | Samsung Electronics Co., Ltd. | Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices |
-
2018
- 2018-05-09 US US15/975,314 patent/US10579606B2/en active Active
-
2019
- 2019-02-25 KR KR1020190021972A patent/KR102443699B1/ko active IP Right Grant
- 2019-04-29 CN CN201910353783.4A patent/CN110442569B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
KR102443699B1 (ko) | 2022-09-16 |
US20190340270A1 (en) | 2019-11-07 |
KR20190127541A (ko) | 2019-11-13 |
CN110442569A (zh) | 2019-11-12 |
US10579606B2 (en) | 2020-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656999B2 (en) | Electronic device and method for determining and managing a partial region of mapping information in volatile memory | |
US11435985B2 (en) | Electronic device and operation method thereof | |
JP7136416B2 (ja) | モデルファイル管理方法および端末デバイス | |
US20210325948A1 (en) | Device and method for restoring application removed by factory data reset function | |
TW202344977A (zh) | 記憶體裝置及其方法 | |
US11379458B2 (en) | Electronic device and data management method thereof | |
US20200183589A1 (en) | Method and electronic device for initializing storage | |
US20210026807A1 (en) | Method for managing data associated with application and electronic device therefor | |
CN110442569B (zh) | 在键值固态设备中进行数据分析的装置和方法 | |
US11341095B2 (en) | Electronic device for searching for file information stored in external device and operation method thereof | |
US20230024420A1 (en) | Methods and devices for file read latency reduction | |
US11868401B2 (en) | Electronic device and method for acquiring size of file or directory stored in file system | |
US20230177005A1 (en) | Electronic device and method for operating file system | |
US20230393906A1 (en) | Method and system for accelerating application performance in solid state drive | |
EP4357928A1 (en) | Methods and system for efficient access to solid state drive | |
US11892951B2 (en) | Key packing for flash key value store operations | |
EP4394770A1 (en) | Method and device for editing image in electronic device | |
KR20240074597A (ko) | 전자 장치 및 전자 장치의 파일 시스템 운영 방법 | |
CN117194004A (zh) | 存储器装置及其操作方法 | |
CN117909966A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |