CN105683953A - 支持加速数据库操作的数据存储设备 - Google Patents
支持加速数据库操作的数据存储设备 Download PDFInfo
- Publication number
- CN105683953A CN105683953A CN201480058389.3A CN201480058389A CN105683953A CN 105683953 A CN105683953 A CN 105683953A CN 201480058389 A CN201480058389 A CN 201480058389A CN 105683953 A CN105683953 A CN 105683953A
- Authority
- CN
- China
- Prior art keywords
- data
- data storage
- storage device
- memory
- inquiry
- 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.)
- Granted
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- 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
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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
- G06F3/064—Management of blocks
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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/7202—Allocation control and policies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Abstract
本文公开了用于加速数据库操作的数据存储设备实施例以及相关联的方法。在一个实施例中,数据存储设备包括:控制器;一个或多个固态存储器存储设备的阵列;第一存储器,用于存储与数据库操作相关联的处理器可执行指令;以及第二存储器,用于存储与数据库操作有关的数据;其中,控制器被配置为执行指令以进行以下操作:使数据从固态存储器存储设备被读取到第二存储器中;确定数据是否与由指令指定的查询相匹配;以及基于查询匹配的确定来执行数据库操作。
Description
技术领域
本公开涉及非易失性数据存储设备以及用于加速在这样的设备中的数据操作的方法。
背景技术
经常在执行速度非常重要的环境中执行数据库操作。诸如返回查询结果和进行索引等的常见操作通常是I/O密集的并且在主机系统(例如,计算设备)与这样的操作在其上执行的数据存储设备之间消耗大的数据带宽。
附图说明
现在将参照下面的附图来描述实现本发明的各种实施例的各种特征的系统和方法,在附图中:
图1A示出了根据本发明的一个实施例的示例数据存储设备。
图1B示出了根据本发明的一个实施例的示例数据库操作加速方法。
图2示出了根据一个实施例的数据存储设备的内部数据布局。
图3A和3B是示出了根据一个实施例的数据库元素的示例布局的框图。
图4A和4B是示出了根据一个实施例的可以如何执行过滤读(filteredread)操作的流程图。
图5是示出了根据一个实施例的可以如何执行索引操作的流程图。
具体实施方式
本公开的一些实施例涉及被配置为加速数据库操作的数据存储设备(例如,固态驱动器(SSD))。在实施例中,数据存储设备支持可变大小的逻辑页,该逻辑页的大小可以被定制以与数据库数据结构内的各个数据单元(例如,元组)相匹配。其结果是,一些数据库操作可以被加速,这是因为可以略过一些数据的逻辑地址范围以减少从存储介质读出并且传送到主机的数据量,这实现了更加高效的数据库操作。
尽管描述了本公开的一些实施例,但这些实施例仅以示例的方式给出,而不是要限制本公开的范围。事实上,本文所描述的新颖的方法和系统可以以各种其它形式来实现。此外,可以在本文所描述的方法和系统的形式上做出各种省略、替代和变化,而不偏离本公开的精神。
数据存储系统概述
图1A示出了根据本发明的一个实施例的示例数据存储设备120。如图所示,数据存储设备120(例如,固态驱动器、混合驱动器等)包括控制器130和非易失性固态存储器140,非易失性固态存储器140包括一个或多个存储单元,例如存储块。图1A示出了块被标识为块“A”142到块“N”的示例。尽管为方便起见,示出了单个的非易失性固态存储器140,但存储设备可以包括多个这样的存储器。非易失性固态存储器140的每个块包括多个闪速页(F页)。例如,图1A的块A142包括多个F页,被标识为F页A143、B、到N。在一些实施例中,每个“F页”是非易失性固态存储器140中能够在单个的操作中被编程或者被作为单元被编程的存储器单元的最小分组。替代非易失性固态存储器140或者除了非易失性固态存储器140之外,可以使用磁旋转介质和/或诸如MRAM和/或相变存储器之类的其它非易失性存储器。
控制器130可以从主机系统110中的存储接口112(例如,设备驱动器)接收数据和/或存储访问命令。由存储接口112传送的存储访问命令可以包括由主机系统110发出的写命令和读命令。命令可以指定数据存储设备120中的逻辑块地址,并且控制器130可以在非易失性固态存储器140中执行接收到的命令。在混合硬盘驱动器中,除了非易失性固态存储器140以外,数据可以存储在磁介质存储部件(未在图1A中示出)中。
数据存储设备120可以存储从主机系统110接收到的数据,以使得数据存储设备120可以充当主机系统110的存储器存储设备。为便于该功能,控制器130可以实现逻辑接口。逻辑接口可以将存储设备的存储器向主机系统110呈现为可以在其中存储数据的逻辑地址的集合(例如,连续地址)。在内部,控制器130可以将逻辑地址映射到非易失性固态存储器140和/或其它(多个)存储器模块中的各种物理存储器地址。
在一个实施例中,控制器130包括存储设备硬件和固件148以及用于数据库操作代码/固件的存储器150。存储设备硬件和固件148用于控制数据存储设备内的数据操作。在一个实施例中,存储器150中的数据库操作代码/固件能够由主机配置,并且可以在其自有的专用的处理器(未在图1A中示出)中执行。对存储在非易失性固态存储器140中的数据执行那些查询。与查询有关的数据被临时地存储在查询处理缓冲器160中并且结果经由主机响应缓冲器162被返回到主机系统110。下面提供了与部件如何交互有关的额外的细节。注意的是,在各种实施例中,这些部件可以被不同地布置。这些部件可以被省略、组合或者分离成另外的子部件。此外,部件148、150、160、和162可以集成到单个的处理器封装中或者被实现为相互通信的各种分立部件。
图1B示出了根据一个实施例的示例数据库操作加速方法。在一个实施例中,控制器130被配置为执行图1B中所示的流程。在框168中,控制器被配置为将指令/代码加载到存储器150中。指令/代码可以来自主机系统。在框170中,控制器被配置为执行存储器150中的指令。在一个实施例中,可以使用专用处理器来处理这些执行以提供进一步的加速。在框172中,控制器被配置为使得数据从固态存储器140被读取到查询处理缓冲器160中。在框174中,控制器被配置为确定数据是否与由指令指定的数据库查询相匹配。在框176中,控制器被配置为基于查询匹配的确定来执行数据库操作。在一个实施例中,框172-176中的一个或多个动作可以作为执行指令的结果被触发。如下面进一步说明的,所执行的数据库操作可以例如包括以下中的一个或多个:(1)将与查询相匹配的数据返回到主机系统110;(2)当数据与查询匹配时,将指示添加到索引;(3)修改与查询相匹配的数据并且将修改后的数据写回到固态存储器。
对数据库操作的加速
图2示出了根据一个实施例的数据存储设备的内部数据布局。如图所示,可变尺寸的逻辑页(L页)212存储跨各种错误校正页(E页210),这些错误校正页本身是物理闪页F页208的物理细分。在一些实施例中,每个F页存在一个E页,即,F页不被细分。L页可以跨过E页、F页的底层物理边界,以及非易失性固态存储器140内的管芯/块/单元的边界(如边界217所示)。例如,如图所示,L页可以分布跨多个E页。在示例实现中,E页210可以具有由ECC部分216保护的数据部分214。在一些实现中,可以使用压缩来进一步改变被写到非易失性固态存储器中的L页的大小。
在一个实施例中,逻辑页的大小被配置为等于数据库的元组的大小,或者是数据库的元组的整数倍。由于逻辑页大小的这种灵活性,当设计/配置数据库时,数据库管理员可以创建在存储的数据与访问索引之间的匹配相关。例如,如图3A所示,如果一个元组占用2个逻辑页,则为了读取元组7,读逻辑块地址(LBA)14和15将被读取。基于逻辑地址来对数据进行索引提供了许多优点,包括消除了由主机系统的操作系统(OS)进行划分的开销并且允许使用所有可用的存储。
此外,逻辑页和数据库数据对齐可以允许在查询操作中(例如,在图1B中的框172中的动作的执行期间)选择性地略过某些逻辑页范围。例如,在图3B中,建立数据记录以使得逻辑页边界与数据库记录的各个字段对齐。例如,如果用户仅对访问名称和地址字段感兴趣,则可以执行目标读取来读取L页0和L页1。能够认识到,图3B所示的示例示出了一个记录并且相同的原理能够被扩展到读取多个不同记录时的情况。进一步按照该示例,由于字段和逻辑地址对齐,因此对某些字段的索引可以通过对逻辑地址的模操作来访问。通过允许略过预先配置的逻辑页布置中的一些逻辑地址,数据库性能可以相对于读取全部数据并且随后过滤和提供匹配的结果的常规方式有大的改进。此外,逻辑页地址可以基于公式和/或条件来访问。例如,不同的数据库用户可以具有不同的访问特权。一个用户可能仅能够访问名称、地址、和电话字段。因此,对于该用户,逻辑可以用公式表示,以使得他的查询将被阻止访问L页3、N+3、2N+3等,以及L页4,N+4,2N+4等,其中N是记录中的字段数量。具有更高访问特权的另一个用户可以访问诸如社会安全号和账号等的额外字段,并且基于不同逻辑的公式可以用于允许该访问。当字段与逻辑页边界对齐时,作为不同访问特权的结果的不同查询被高效地处理,允许数据存储设备在存储设备的逻辑地址层执行许多数据库操作共有的过滤。
在一个实施例中,数据存储设备包括用于查询处理的专用缓冲器,例如图1所示的查询处理缓冲器160,或者“QPB”。在一个实施例中,QPB是数据路径的一部分并且能够保存一个逻辑页。
此外,在一个实施例中,数据存储设备包括用于保存对主机查询的响应的缓冲器,例如,图1所示的主机响应缓冲器162,或“HRB”。在一个实施例中缓冲器的大小是逻辑页大小的整数倍,但取决于配置,可能是不同的。
此外,在一个实施例中,数据存储设备包括用于执行主机提供的代码(异代码(xenocode)或XC)的专用处理器。在一个实施例中,异代码应当至少具有对查询处理缓冲器160的读访问权和对主机响应缓冲器162的读/写访问权。在一个实施例中,数据存储设备包括针对异代码的代码存储器(XC存储器或XCM),如图1中的元件150所示。XCM的大小可以被设置为足够大以能够执行查询。此外,在一个实施例中,数据存储设备具有控制寄存器(XCR)的集合,XCR允许存储设备的硬件和固件(例如,图1中的148)与异代码通信并且提供对异代码进行重置或反重置的硬件机制。在一个实施例中,提供“看门狗(watchdog)”功能,以使得针对挂起或超时状况来监视异代码的执行,以使得设备的硬件/固件可以对异代码的执行进行重置并且防止整个存储设备挂起和超时。
在一个实施例中,数据存储设备被配置为向主机提供关于XC类型、XCM和HRB的大小、XCR配置、以及执行时间的信息。该信息可以通过电子方式来提供或者在产品文档中提供。
查询执行流程
在一个实施例中,根据上文描述,数据存储设备可以被填充具有关系数据库元组。图4A和4B示出了可以如何执行过滤读。图4A示出了发生在预期查询执行的初始化中的一些。在框400中,主机系统请求来自数据存储设备的配置信息。该信息可以与包括异代码建立信息在内的各种设置有关。在框402中,数据存储设备利用被请求的配置信息来进行响应,该配置信息包括诸如XC类型、XCM大小、QPB和HRB映射、执行时间等的细节。在框404中,主机系统发送命令(例如,供应商专用命令(VSC))以加载用于执行的异代码。异代码可能之前已经由主机系统发送以用于存储在数据存储设备的XCM或固态存储器中。这允许主机根据需要来配置/改变异代码的最大灵活性,同时提供了与数据存储设备本地化的优化的查询执行的益处。在一个实施例中,可以使用硬件来进一步加速这些操作。在框406中,数据存储设备接收命令,开始准备异代码的执行,并且向主机系统确认准备就绪。准备工作可以包括:利用给定图像来填充XCM,清除HRB等。在框408中,主机系统发送命令(例如,VSC)以启动操作(例如,在该情况下,对逻辑页集合的XC过滤读)。
图4B示出了过滤读操作的流程的一部分。图4B示出了对集合中的每个逻辑页执行的动作。在框420中,数据存储设备将下一逻辑页读取到查询处理缓冲器中。在框422中,数据存储设备发布对异代码的重置。该重置与看门狗监视器有关以确保代码正确执行并且不会导致挂起状况。然后,在框424中,执行异代码存储器中的代码。在框426中,如果查询结果为成功,则异代码将指示写到异代码寄存器(例如,XCR.Good=1)。在一个实施例中,当异代码执行完成时,其将完成指示写到异代码寄存器中(例如,XCR.Done=1)。这使得数据存储设备将逻辑页发送到主机系统(例如,经由主机响应缓冲器)并且重置异代码(框428)。在一个实施例中,如果异代码花费过长时间来执行,则看门狗重置该异代码。逻辑页被视为与查询不匹配。作为图4A和4B执行的结果,数据存储设备可以在内部读取所有的数据库元组,但是仅匹配的记录被传送到主机。这样的本地化处理减少了数据传送量并且因此提高了数据吞吐量。处理可以进一步与存储设备的硬件加速相耦合和/或由存储设备的硬件加速来补充,以实现甚至更好的改进。在一个实现中,除了如之前所描述的基于逻辑地址的过滤读操作外,可以执行该过滤读操作。
在一个实施例中,索引操作可如下发生。很类似图4A,主机系统和数据存储设备可以执行一些初始化操作。一旦初始化完成,则在一个实施例中,主机系统发送命令(例如,VSC)以利用逻辑页集合来创建异代码辅助的逻辑页子集。针对集合中的每个逻辑页的处理流程在图5中示出。在框500中,数据存储设备将下一逻辑页读取到查询处理缓冲器。在框502中,数据存储设备发布对异代码的重置。然后,在框504中,异代码存储器中的代码被执行。在框506中,如果查询结果为成功,则异代码将逻辑页号(例如,XCR.Page)写到主机响应缓冲器。在一个实施例中,当异代码执行完成时,其将完成指示写到异代码寄存器(例如,XCR.Done=1)。这使得数据存储设备重置异代码(框508)。逻辑页还可以可选地被发送到主机系统。在一个实施例中,如果异代码花费过长的时间来执行,则看门狗重置异代码。在这样的情况下,逻辑页被视为与查询不匹配。在设置完成后,数据存储设备将HRB的内容发送到主机系统,将索引操作的结果给予主机系统。在一个实施例中,不是返回匹配的页的集合,或者除此之外,异代码可以提供更精细的操作,例如计算均值,或者进行其它统计分析。
在一个实施例中,数据存储设备可以提供可配置的看门狗时序以更好地将异代码执行与期望的业务相匹配。
在一个实施例中,数据存储设备可以超出对数据内容的只读访问。例如,异代码可以在必要时提供读-修改-写操作。数据存储设备可以通过支持异代码对查询处理缓冲器的写访问以及提供将修改后的逻辑页写回到固态存储器的能力来实现该功能。异代码例如可以被配置为读出与某个值相匹配的页、执行某个操作、以及将修改后的页写回到固态存储器。这可以在没有主机系统与数据存储设备之间的数据传送的情况下进行,并且不需要主机系统的处理能力来执行这样的操作。
其它变型
本领域技术人员将理解,在一些实施例中,可以使用其它的方式和方法。例如,非易失性固态存储器阵列可以使用NAND闪速存储器设备来实现。可以可替换地使用其它类型的固态存储器设备,例如闪速集成电路阵列、硫族化合物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向统一存储器(OUM)、电阻RAM(RRAM)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其它分立的NVM(非易失性固态存储器)芯片、或其任何组合。在一个实施例中,非易失性固态存储器阵列优选地包括具有能够存储一个以上的单个信息位的多级单元的多级单元(MLC)设备,尽管可以使用单级单元(SLC)存储器设备或SLC和MLC设备的组合。在一个实施例中,数据存储设备120可以包括其它存储器模块,例如一个或多个磁存储器模块。此外,本公开的系统和方法还可以用于更加常规的硬盘驱动器以及包括固态和硬盘驱动器部件的混合驱动器。例如,采用磁记录技术的一些硬盘驱动器可以采用上述的数据寻址和处理方案。
尽管已经描述了本公开的一些实施例,这些实施例仅以示例的方式给出,并且不是要限制本公开的范围。事实上,本文所描述的新颖的方法和系统可以以各种其他形式实现。此外,可以在本文所描述的方法和系统的形式上做出各种省略、替代和变化,而不偏离本公开的精神。所附的权利要求及其等价物旨在覆盖将落入本公开的范围和精神内的这种形式或修改。例如,所描述的各部件可以被实现为处理器、ASIC/FPGA、或专用硬件上的软件和/或固件。例如,本领域技术人员将理解的是,在一些实施例中,在一些实施例的过程中采取的实际步骤可以不同于图中所示的那些。取决于实施例,在上述的示例中所描述的步骤中的一些可以被移除,其它的步骤可以被添加,并且步骤的序列可以被改变和/或并行执行。此外,上文公开的具体实施例的特征和属性可以以不同的方式来组合以形成额外的实施例,所有这些实施例落入本公开的范围内。尽管本公开提供了一些优选的实施例和应用,但是对于本领域普通技术人员而言显而易见的其它实施例,包括不提供本文阐述的所有特征和优点的实施例,也在本公开的范围内。因此,本公开的范围旨在仅通过参照所附的权利要求来定义。
Claims (30)
1.一种非易失性数据存储设备,包括:
控制器;
一个或多个固态存储器存储设备的阵列;
第一存储器,用于存储与数据库操作相关联的处理器可执行指令;以及
第二存储器,用于存储与所述数据库操作有关的数据;
其中,所述控制器被配置为执行所述指令,所述指令使得所述控制器进行以下操作:
使数据从所述固态存储器存储设备被读取到所述第二存储器中;
确定所述数据是否与由所述指令指定的查询相匹配;以及
基于所述查询匹配的确定来执行数据库操作。
2.根据权利要求1所述的数据存储设备,其中,所执行的所述数据库操作包括:将与所述查询相匹配的数据返回到耦合到所述数据存储设备的主机系统。
3.根据权利要求1所述的数据存储设备,其中,所执行的所述数据库操作包括:当所述数据与所述查询相匹配时,将指示添加到索引。
4.根据权利要求1所述的数据存储设备,其中,所执行的所述数据库操作包括:修改与所述查询相匹配的所述数据并且将所修改后的数据写回到所述固态存储器存储设备。
5.根据权利要求1所述的数据存储设备,其中,所述第一存储器被配置为存储能够由耦合到所述数据存储设备的主机系统配置的数据库操作。
6.根据权利要求1所述的数据存储设备,其中,所述一个或多个固态存储器存储设备的阵列被配置为存储多个逻辑页,所述逻辑页的大小被配置为与数据库的元组的大小相对应。
7.根据权利要求6所述的数据存储设备,其中,所述控制器还被配置为通过选择性地略过对所述逻辑页的读取来执行查询有关的数据库操作。
8.根据权利要求7所述的数据存储设备,其中,所述选择性地略过是基于与数据访问特权相关联的逻辑的。
9.根据权利要求7所述的数据存储设备,其中,所述选择性地略过是基于与查询相关联的逻辑的。
10.根据权利要求7所述的数据存储设备,其中,所述选择性地略过是通过对与所述逻辑页中的一个或多个相关联的逻辑地址的模操作来执行的。
11.根据权利要求1所述的数据存储设备,其中,所述控制器还被配置为在执行所述指令时启动看门狗定时器以防止挂起状况。
12.根据权利要求1所述的数据存储设备,其中,所述控制器还被配置为对所述第二存储器中的所述数据执行一个或多个逻辑操作。
13.根据权利要求12所述的数据存储设备,其中,所述逻辑操作包括聚合操作和求和操作。
14.根据权利要求1所述的数据存储设备,其中,所述控制器包括专用于执行所述指令的处理器。
15.根据权利要求1所述的数据存储设备,其中,所述指令是从耦合到所述数据存储设备的主机系统被接收的。
16.一种在非易失性数据存储设备中执行数据操作的方法,所述非易失性数据存储设备包括一个或多个固态存储器存储设备的阵列、第一存储器、以及第二存储器,所述方法包括:
使数据从所述非易失性数据存储设备的所述固态存储器存储设备读取到所述第二存储器中;
确定所述数据是否与指定的查询相匹配;以及
基于所述查询匹配的确定来执行数据库操作,
其中:
所述第一存储器被配置为存储与数据库操作相关联的处理器可执行指令并且所述查询是由所述指令指定的;以及
所述第二存储器被配置为存储与所述数据库操作有关的数据。
17.根据权利要求16所述的方法,其中,所执行的所述数据库操作包括:将与所述查询相匹配的数据返回到耦合到所述数据存储设备的主机系统。
18.根据权利要求16所述的方法,其中,所执行的所述数据库操作包括:当所述数据与所述查询相匹配时,将指示添加到索引。
19.根据权利要求16所述的方法,其中,所执行的所述数据库操作包括:修改与所述查询相匹配的所述数据并且将所修改后的数据写回到所述固态存储器存储设备。
20.根据权利要求16所述的方法,其中,所述第一存储器被配置为存储能够由耦合到所述数据存储设备的主机系统配置的数据库操作。
21.根据权利要求16所述的方法,其中,所述一个或多个固态存储器存储设备的阵列被配置为存储多个逻辑页,所述逻辑页的大小被配置为与数据库的元组的大小相对应。
22.根据权利要求21所述的方法,还包括:通过选择性地略过对所述逻辑页的读取来执行查询有关的数据库操作。
23.根据权利要求22所述的方法,其中,所述选择性地略过是基于与数据访问特权相关联的逻辑的。
24.根据权利要求22所述的方法,其中,所述选择性地略过是基于与查询相关联的逻辑的。
25.根据权利要求22所述的方法,其中,所述选择性地略过是通过对与所述逻辑页中的一个或多个相关联的逻辑地址的模操作来执行的。
26.根据权利要求16所述的方法,还包括:在执行所述指令时启动看门狗定时器以防止挂起状况。
27.根据权利要求16所述的方法,还包括:对所述第二存储器中的所述数据执行一个或多个逻辑操作。
28.根据权利要求27所述的方法,其中,所述逻辑操作包括聚合操作和求和操作。
29.根据权利要求16所述的方法,其中,所述指令是在专用处理器中执行的。
30.根据权利要求16所述的方法,其中,所述指令是从耦合到所述数据存储设备的主机系统被接收的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361895263P | 2013-10-24 | 2013-10-24 | |
US61/895,263 | 2013-10-24 | ||
US14/133,302 | 2013-12-18 | ||
US14/133,302 US9330143B2 (en) | 2013-10-24 | 2013-12-18 | Data storage device supporting accelerated database operations |
PCT/US2014/062066 WO2015061629A1 (en) | 2013-10-24 | 2014-10-23 | Data storage device supporting accelerated database operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105683953A true CN105683953A (zh) | 2016-06-15 |
CN105683953B CN105683953B (zh) | 2017-11-10 |
Family
ID=52993587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480058389.3A Active CN105683953B (zh) | 2013-10-24 | 2014-10-23 | 支持加速数据库操作的数据存储设备 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9330143B2 (zh) |
EP (1) | EP3061008B1 (zh) |
KR (1) | KR101680531B1 (zh) |
CN (1) | CN105683953B (zh) |
WO (1) | WO2015061629A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10444998B1 (en) | 2013-10-24 | 2019-10-15 | Western Digital Technologies, Inc. | Data storage device providing data maintenance services |
US9330143B2 (en) * | 2013-10-24 | 2016-05-03 | Western Digital Technologies, Inc. | Data storage device supporting accelerated database operations |
US10387303B2 (en) | 2016-08-16 | 2019-08-20 | Western Digital Technologies, Inc. | Non-volatile storage system with compute engine to accelerate big data applications |
US10459644B2 (en) | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
US11010431B2 (en) | 2016-12-30 | 2021-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD |
US10565123B2 (en) | 2017-04-10 | 2020-02-18 | Western Digital Technologies, Inc. | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module |
US10649674B2 (en) * | 2018-05-03 | 2020-05-12 | Western Digital Technologies, Inc. | Extended controller pre-initialization using boot partitions in solid state systems |
US11204715B1 (en) * | 2018-09-25 | 2021-12-21 | Amazon Technologies, Inc. | Derived data generation and storage |
US20200233882A1 (en) * | 2019-01-18 | 2020-07-23 | Huawei Technologies Co., Ltd. | Bucketizing data into buckets for processing by code modules |
US11079958B2 (en) * | 2019-04-12 | 2021-08-03 | Intel Corporation | Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator |
US11977915B2 (en) | 2020-12-15 | 2024-05-07 | Western Digital Technologies, Inc. | Non-volatile memory with intelligent compute task distribution |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020116457A1 (en) * | 2001-02-22 | 2002-08-22 | John Eshleman | Systems and methods for managing distributed database resources |
US6446062B1 (en) * | 1999-12-23 | 2002-09-03 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a generated code cache search operation through the use of static key values |
CN1387125A (zh) * | 2001-05-23 | 2002-12-25 | 株式会社日立制作所 | 存储器系统 |
US6549977B1 (en) * | 2001-05-23 | 2003-04-15 | 3Ware, Inc. | Use of deferred write completion interrupts to increase the performance of disk operations |
US20040225831A1 (en) * | 2003-05-09 | 2004-11-11 | Tekelec | Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition |
US20060143238A1 (en) * | 2002-09-10 | 2006-06-29 | Annex Systems Incorporated | Database re-organizing system and database |
US20070204128A1 (en) * | 2003-09-10 | 2007-08-30 | Super Talent Electronics Inc. | Two-Level RAM Lookup Table for Block and Page Allocation and Wear-Leveling in Limited-Write Flash-Memories |
CN101715575A (zh) * | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
CN102651007A (zh) * | 2011-02-28 | 2012-08-29 | 国际商业机器公司 | 一种管理数据库索引的方法和装置 |
CN103238305A (zh) * | 2010-05-28 | 2013-08-07 | 安全第一公司 | 用于安全数据储存的加速器系统 |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070170A (en) * | 1997-10-01 | 2000-05-30 | International Business Machines Corporation | Non-blocking drain method and apparatus used to reorganize data in a database |
US6401185B1 (en) * | 1999-05-27 | 2002-06-04 | Oracle Corp. | Method and apparatus for accessing paged objects using a fast division technique |
US6728705B2 (en) * | 2000-09-01 | 2004-04-27 | Disney Enterprises, Inc. | System and method for selecting content for displaying over the internet based upon some user input |
US7055015B2 (en) * | 2002-02-25 | 2006-05-30 | Ricoh Company, Ltd. | Information processing apparatus in which processes can reduce overhead of memory access and efficiently share memory |
US6856556B1 (en) | 2003-04-03 | 2005-02-15 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US7502256B2 (en) | 2004-11-30 | 2009-03-10 | Siliconsystems, Inc. | Systems and methods for reducing unauthorized data recovery from solid-state storage devices |
US7698185B2 (en) | 2005-04-28 | 2010-04-13 | Loylogic, Inc. | Methods and systems for generating dynamic reward currency values |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7765373B1 (en) | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7447807B1 (en) | 2006-06-30 | 2008-11-04 | Siliconsystems, Inc. | Systems and methods for storing data in segments of a storage subsystem |
US7509441B1 (en) | 2006-06-30 | 2009-03-24 | Siliconsystems, Inc. | Systems and methods for segmenting and protecting a storage subsystem |
US7685194B2 (en) * | 2006-08-31 | 2010-03-23 | Microsoft Corporation | Fine-grained access control in a database by preventing information leakage and removing redundancy |
US8161227B1 (en) | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
US9495241B2 (en) * | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US9116823B2 (en) * | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
US20080140918A1 (en) * | 2006-12-11 | 2008-06-12 | Pantas Sutardja | Hybrid non-volatile solid state memory system |
US9153337B2 (en) * | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US7685337B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685338B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685374B2 (en) | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US8078918B2 (en) | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US7962792B2 (en) | 2008-02-11 | 2011-06-14 | Siliconsystems, Inc. | Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem |
EP2124174A1 (en) * | 2008-05-19 | 2009-11-25 | Accenture Global Services GmbH | Service exception resolution framework |
US7733712B1 (en) | 2008-05-20 | 2010-06-08 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US8583835B1 (en) | 2008-08-06 | 2013-11-12 | Siliconsystems, Inc. | Command portal for executing non-standard storage subsystem commands |
US8375151B1 (en) | 2009-02-12 | 2013-02-12 | Siliconsystems, Inc. | Command portal for securely communicating and executing non-standard storage subsystem commands |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US8090899B1 (en) | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US8180955B2 (en) * | 2009-05-06 | 2012-05-15 | Via Telecom, Inc. | Computing systems and methods for managing flash memory device |
US8254172B1 (en) | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
US8243525B1 (en) | 2009-09-30 | 2012-08-14 | Western Digital Technologies, Inc. | Refreshing non-volatile semiconductor memory by reading without rewriting |
US9753847B2 (en) | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8135903B1 (en) | 2009-10-30 | 2012-03-13 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory compressing data to improve performance |
US8261012B2 (en) | 2009-10-30 | 2012-09-04 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8713066B1 (en) | 2010-03-29 | 2014-04-29 | Western Digital Technologies, Inc. | Managing wear leveling and garbage collection operations in a solid-state memory using linked lists |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8341339B1 (en) | 2010-06-14 | 2012-12-25 | Western Digital Technologies, Inc. | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk |
US8612669B1 (en) | 2010-06-28 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for performing data retention in solid-state memory using copy commands and validity and usage data |
US8447920B1 (en) | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US8775720B1 (en) | 2010-08-31 | 2014-07-08 | Western Digital Technologies, Inc. | Hybrid drive balancing execution times for non-volatile semiconductor memory and disk |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US8769190B1 (en) | 2010-09-15 | 2014-07-01 | Western Digital Technologies, Inc. | System and method for reducing contentions in solid-state memory access |
US8788779B1 (en) | 2010-09-17 | 2014-07-22 | Western Digital Technologies, Inc. | Non-volatile storage subsystem with energy-based performance throttling |
US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US9183307B2 (en) * | 2010-12-15 | 2015-11-10 | Facebook, Inc. | Comment ordering system |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US8392635B2 (en) | 2010-12-22 | 2013-03-05 | Western Digital Technologies, Inc. | Selectively enabling a host transfer interrupt |
US8683113B2 (en) | 2011-02-04 | 2014-03-25 | Western Digital Technologies, Inc. | Concurrently searching multiple devices of a non-volatile semiconductor memory |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US9563555B2 (en) * | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US8769232B2 (en) | 2011-04-06 | 2014-07-01 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory module enabling out of order host command chunk media access |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
US8751728B1 (en) | 2011-04-29 | 2014-06-10 | Western Digital Technologies, Inc. | Storage system bus transfer optimization |
US9021178B2 (en) | 2011-05-02 | 2015-04-28 | Western Digital Technologies, Inc. | High performance path for command processing |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8719531B2 (en) | 2011-06-14 | 2014-05-06 | Western Digital Technologies, Inc. | System and method for performing data retention that incorporates environmental conditions |
US8572130B2 (en) * | 2011-06-27 | 2013-10-29 | Sap Ag | Replacement policy for resource container |
US8423722B1 (en) | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US9740439B2 (en) * | 2011-12-23 | 2017-08-22 | International Business Machines Corporation | Solid-state storage management |
US8724422B1 (en) | 2012-02-29 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for charging back-up charge storage element for data storage device using spindle phase switching elements |
US10019353B2 (en) * | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9003224B2 (en) | 2012-04-25 | 2015-04-07 | Western Digital Technologies, Inc. | Managing unreliable memory in data storage systems |
US8788778B1 (en) | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US8788880B1 (en) | 2012-08-22 | 2014-07-22 | Western Digital Technologies, Inc. | Efficient retry mechanism for solid-state memory failures |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US20140223255A1 (en) | 2012-12-18 | 2014-08-07 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9430376B2 (en) | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9171027B2 (en) * | 2013-05-29 | 2015-10-27 | International Business Machines Corporation | Managing a multi-version database |
US9275095B2 (en) * | 2013-07-31 | 2016-03-01 | International Business Machines Corporation | Compressing a multi-version database |
US9330143B2 (en) * | 2013-10-24 | 2016-05-03 | Western Digital Technologies, Inc. | Data storage device supporting accelerated database operations |
-
2013
- 2013-12-18 US US14/133,302 patent/US9330143B2/en active Active
-
2014
- 2014-10-23 CN CN201480058389.3A patent/CN105683953B/zh active Active
- 2014-10-23 WO PCT/US2014/062066 patent/WO2015061629A1/en active Application Filing
- 2014-10-23 EP EP14855008.0A patent/EP3061008B1/en active Active
- 2014-10-23 KR KR1020167013474A patent/KR101680531B1/ko active IP Right Grant
-
2016
- 2016-05-02 US US15/144,370 patent/US20160246831A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446062B1 (en) * | 1999-12-23 | 2002-09-03 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a generated code cache search operation through the use of static key values |
US20020116457A1 (en) * | 2001-02-22 | 2002-08-22 | John Eshleman | Systems and methods for managing distributed database resources |
CN1387125A (zh) * | 2001-05-23 | 2002-12-25 | 株式会社日立制作所 | 存储器系统 |
US6549977B1 (en) * | 2001-05-23 | 2003-04-15 | 3Ware, Inc. | Use of deferred write completion interrupts to increase the performance of disk operations |
US20060143238A1 (en) * | 2002-09-10 | 2006-06-29 | Annex Systems Incorporated | Database re-organizing system and database |
US20040225831A1 (en) * | 2003-05-09 | 2004-11-11 | Tekelec | Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition |
US20070204128A1 (en) * | 2003-09-10 | 2007-08-30 | Super Talent Electronics Inc. | Two-Level RAM Lookup Table for Block and Page Allocation and Wear-Leveling in Limited-Write Flash-Memories |
CN101715575A (zh) * | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
CN103238305A (zh) * | 2010-05-28 | 2013-08-07 | 安全第一公司 | 用于安全数据储存的加速器系统 |
CN102651007A (zh) * | 2011-02-28 | 2012-08-29 | 国际商业机器公司 | 一种管理数据库索引的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015061629A1 (en) | 2015-04-30 |
US20160246831A1 (en) | 2016-08-25 |
KR101680531B1 (ko) | 2016-11-28 |
EP3061008A1 (en) | 2016-08-31 |
EP3061008B1 (en) | 2018-11-21 |
US9330143B2 (en) | 2016-05-03 |
US20150120770A1 (en) | 2015-04-30 |
CN105683953B (zh) | 2017-11-10 |
EP3061008A4 (en) | 2017-05-03 |
KR20160066051A (ko) | 2016-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105683953A (zh) | 支持加速数据库操作的数据存储设备 | |
US9239781B2 (en) | Storage control system with erase block mechanism and method of operation thereof | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
KR100923814B1 (ko) | 논리적 블록을 분할하기 위한 방법 및 장치 | |
US10359953B2 (en) | Method and apparatus for offloading data processing to hybrid storage devices | |
US8037233B2 (en) | System, controller, and method for data storage | |
US7193923B2 (en) | Semiconductor memory device and access method and memory control system for same | |
US20130151761A1 (en) | Data storage device storing partitioned file between different storage mediums and data management method | |
US20130173954A1 (en) | Method of managing bad storage region of memory device and storage device using the method | |
US10635350B2 (en) | Task tail abort for queued storage tasks | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
CN106649144A (zh) | 数据储存设备及其操作方法 | |
US10216571B2 (en) | System and methodology for error management within a shared non-volatile memory architecture using bloom filters | |
CN111625188A (zh) | 一种存储器及其数据写入方法与存储系统 | |
CN109800187A (zh) | 被配置为更新现场可编程门阵列的存储设备及其操作方法 | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
KR100963009B1 (ko) | 파일 관리 시스템 및 방법 | |
CN110968520B (zh) | 基于统一缓存架构的多流存储设备 | |
US10810016B2 (en) | Operating methods of computing devices comprising storage devices including nonvolatile memory devices, buffer memories and controllers | |
US20150120991A1 (en) | Data processing system and operating method thereof | |
US11144453B2 (en) | Unmap to initialize sectors | |
US11868662B2 (en) | Storage system and method for hybrid mapping | |
US11709781B2 (en) | Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |