支持加速数据库操作的数据存储设备的制造方法

文档序号:9916586阅读:374来源:国知局
支持加速数据库操作的数据存储设备的制造方法
【技术领域】
[0001]本公开涉及非易失性数据存储设备以及用于加速在这样的设备中的数据操作的方法。
【背景技术】
[0002]经常在执行速度非常重要的环境中执行数据库操作。诸如返回查询结果和进行索引等的常见操作通常是I/O密集的并且在主机系统(例如,计算设备)与这样的操作在其上执行的数据存储设备之间消耗大的数据带宽。
【附图说明】
[0003]现在将参照下面的附图来描述实现本发明的各种实施例的各种特征的系统和方法,在附图中:
[0004]图1A示出了根据本发明的一个实施例的示例数据存储设备。
[0005]图1B示出了根据本发明的一个实施例的示例数据库操作加速方法。
[0006]图2示出了根据一个实施例的数据存储设备的内部数据布局。
[0007]图3A和3B是示出了根据一个实施例的数据库元素的示例布局的框图。
[0008]图4A和4B是示出了根据一个实施例的可以如何执行过滤读(filtered read)操作的流程图。
[0009]图5是示出了根据一个实施例的可以如何执行索引操作的流程图。
【具体实施方式】
[0010]本公开的一些实施例涉及被配置为加速数据库操作的数据存储设备(例如,固态驱动器(SSD))。在实施例中,数据存储设备支持可变大小的逻辑页,该逻辑页的大小可以被定制以与数据库数据结构内的各个数据单元(例如,元组)相匹配。其结果是,一些数据库操作可以被加速,这是因为可以略过一些数据的逻辑地址范围以减少从存储介质读出并且传送到主机的数据量,这实现了更加高效的数据库操作。
[0011]尽管描述了本公开的一些实施例,但这些实施例仅以示例的方式给出,而不是要限制本公开的范围。事实上,本文所描述的新颖的方法和系统可以以各种其它形式来实现。此外,可以在本文所描述的方法和系统的形式上做出各种省略、替代和变化,而不偏离本公开的精神。
[0012]数据存储系统概述
[0013]图1A示出了根据本发明的一个实施例的示例数据存储设备120。如图所示,数据存储设备120(例如,固态驱动器、混合驱动器等)包括控制器130和非易失性固态存储器140,非易失性固态存储器140包括一个或多个存储单元,例如存储块。图1A示出了块被标识为块“A”142到块“N”的示例。尽管为方便起见,示出了单个的非易失性固态存储器140,但存储设备可以包括多个这样的存储器。非易失性固态存储器140的每个块包括多个闪速页(F页)。例如,图1A的块A 142包括多个F页,被标识为F页A 143、B、到N。在一些实施例中,每个“F页”是非易失性固态存储器140中能够在单个的操作中被编程或者被作为单元被编程的存储器单元的最小分组。替代非易失性固态存储器140或者除了非易失性固态存储器140之外,可以使用磁旋转介质和/或诸如MRAM和/或相变存储器之类的其它非易失性存储器。
[0014]控制器130可以从主机系统110中的存储接口112(例如,设备驱动器)接收数据和/或存储访问命令。由存储接口 112传送的存储访问命令可以包括由主机系统110发出的写命令和读命令。命令可以指定数据存储设备120中的逻辑块地址,并且控制器130可以在非易失性固态存储器140中执行接收到的命令。在混合硬盘驱动器中,除了非易失性固态存储器140以外,数据可以存储在磁介质存储部件(未在图1A中不出)中。
[0015]数据存储设备120可以存储从主机系统110接收到的数据,以使得数据存储设备120可以充当主机系统110的存储器存储设备。为便于该功能,控制器130可以实现逻辑接口。逻辑接口可以将存储设备的存储器向主机系统110呈现为可以在其中存储数据的逻辑地址的集合(例如,连续地址)。在内部,控制器130可以将逻辑地址映射到非易失性固态存储器140和/或其它(多个)存储器模块中的各种物理存储器地址。
[0016]在一个实施例中,控制器130包括存储设备硬件和固件148以及用于数据库操作代码/固件的存储器150。存储设备硬件和固件148用于控制数据存储设备内的数据操作。在一个实施例中,存储器150中的数据库操作代码/固件能够由主机配置,并且可以在其自有的专用的处理器(未在图1A中示出)中执行。对存储在非易失性固态存储器140中的数据执行那些查询。与查询有关的数据被临时地存储在查询处理缓冲器160中并且结果经由主机响应缓冲器162被返回到主机系统110。下面提供了与部件如何交互有关的额外的细节。注意的是,在各种实施例中,这些部件可以被不同地布置。这些部件可以被省略、组合或者分离成另外的子部件。此外,部件148、150、160、和162可以集成到单个的处理器封装中或者被实现为相互通信的各种分立部件。
[0017]图1B示出了根据一个实施例的示例数据库操作加速方法。在一个实施例中,控制器130被配置为执行图1B中所示的流程。在框168中,控制器被配置为将指令/代码加载到存储器150中。指令/代码可以来自主机系统。在框170中,控制器被配置为执行存储器150中的指令。在一个实施例中,可以使用专用处理器来处理这些执行以提供进一步的加速。在框172中,控制器被配置为使得数据从固态存储器140被读取到查询处理缓冲器160中。在框174中,控制器被配置为确定数据是否与由指令指定的数据库查询相匹配。在框176中,控制器被配置为基于查询匹配的确定来执行数据库操作。在一个实施例中,框172-176中的一个或多个动作可以作为执行指令的结果被触发。如下面进一步说明的,所执行的数据库操作可以例如包括以下中的一个或多个:(I)将与查询相匹配的数据返回到主机系统110; (2)当数据与查询匹配时,将指示添加到索引;(3)修改与查询相匹配的数据并且将修改后的数据写回到固态存储器。
[0018]对数据库操作的加速
[0019]图2示出了根据一个实施例的数据存储设备的内部数据布局。如图所示,可变尺寸的逻辑页(L页)212存储跨各种错误校正页(E页210),这些错误校正页本身是物理闪页F页208的物理细分。在一些实施例中,每个F页存在一个E页,S卩,F页不被细分。L页可以跨过E页、F页的底层物理边界,以及非易失性固态存储器140内的管芯/块/单元的边界(如边界217所示)。例如,如图所示,L页可以分布跨多个E页。在示例实现中,E页210可以具有由ECC部分216保护的数据部分214。在一些实现中,可以使用压缩来进一步改变被写到非易失性固态存储器中的L页的大小。
[0020]在一个实施例中,逻辑页的大小被配置为等于数据库的元组的大小,或者是数据库的元组的整数倍。由于逻辑页大小的这种灵活性,当设计/配置数据库时,数据库管理员可以创建在存储的数据与访问索引之间的匹配相关。例如,如图3A所示,如果一个元组占用2个逻辑页,则为了读取元组7,读逻辑块地址(LBA)H和15将被读取。基于逻辑地址来对数据进行索引提供了许多优点,包括消除了由主机系统的操作系统(OS)进行划分的开销并且允许使用所有可用的存储。
[0021]此外,逻辑页和数据库数据对齐可以允许在查询操作中(例如,在图1B中的框172中的动作的执行期间)选择性地略过某些逻辑页范围。例如,在图3B中,建立数据记录以使得逻辑页边界与数据库记录的各个字段对齐。例如,如果用户仅对访问名称和地址字段感兴趣,则可以执行目标读取来读取L页O和
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1