用于自主空间压缩的存储设备和方法技术

技术编号:14158938 阅读:109 留言:0更新日期:2016-12-12 01:42
提供用于自主空间压缩的存储设备和方法。例如,本发明专利技术构思的实施例通过减小CPU与存储装置之间的数据移动以及通过支持数据压缩的内存储增大底层存储装置的可用容量,来改善存储方案的性能、能源效率和容量。实施例包括用于通过主机端命令发起并且根据由主机指定的元数据的自主内存储空间压缩的存储设备和方法。空间压缩机可用作存储装置内的独立的模块或逻辑部分,可以在存储装置内移动数据,从而释放容量并且使得预先存在的数据更加紧密。空间压缩机可引起自压缩操作、自压缩和削减操作、移动和压缩操作和/或合并和压缩操作。空间压缩机可通知主机操作的完成。

【技术实现步骤摘要】
本申请要求于2015年6月1日提交的第62/169,551号美国专利申请以及于2015年9月23日提交的第14/863,438号美国专利申请的权益,这些美国专利申请通过引用包含于此。
本专利技术构思涉及数据存储,更具体地讲,涉及一种用于数据的自主空间压缩的存储设备和方法。
技术介绍
期望在接下来的几年内,数以十亿的传感器将部署在世界各地,并且连接到物联网(IOT)。通过这些传感器采集的数据量将被至少暂时地存储,在一些情况下,被永久地存储。因此,IOT将依靠庞大的存储数据库和底层存储装置。存储空间压缩是现代数据存储的重要方面。例如,NoSQL数据库系统定期地合并数据库文件和/或表格,以减少搜索足迹并且最大化空闲空间。日志结构文件系统(例如,只追加文件(append-only file)系统)有时实现段清理,以提高顺序写入的连续空间可用性。其他传统的方法包括为了更好的性能而清理无效空间的磁盘碎片整理处理。传统的方法通常引起主机CPU与用于数据压缩的存储装置之间的密集的读取和/或写入活动。例如,有序字符串表格(SSTable)可被压缩在开源分布式数据库管理系统(Apache CassandraTM)中,但是主机CPU与存储装置之间的密集的通信活动可能是性能的限制因素。通过另一示例的方式,只追加文件(AOF(Append only file))文件重新写入Redis(开源键值缓存和存储)中,这可能由于通信开销而对扩展是一种挑战。本专利技术构思的实施例解决现有技术中的这些和其他限制。
技术实现思路
本专利技术构思的实施例可包括具有空间压缩机的存储装置。所述存储装置>
还可包括:一个或多个数据存储部分;通信和路径逻辑部分,被配置为从主机接收并按路径发送包括元数据的数据压缩命令。空间压缩机可被通信连接到通信和路径逻辑部分和所述一个或多个数据存储部分。空间压缩机可被配置为:从通信和路径逻辑部分接收包括元数据的数据压缩命令,并且至少基于从主机接收的元数据和数据压缩命令,压缩所述一个或多个数据存储部分中预先存在的存储数据。本专利技术构思的实施例可包括一种用于在存储装置中压缩空间的计算机实现的方法。所述方法可包括:通过存储装置的通信和路径逻辑部分从主机接收包括元数据的数据压缩命令。所述方法可包括通过通信和路径逻辑部分将数据压缩命令按路径发送到空间压缩机。所述方法可包括通过空间压缩机接收包括元数据的数据压缩命令。所述方法可包括通过空间压缩机,至少基于从主机接收的元数据和数据压缩命令,压缩存储装置的一个或多个数据存储部分中预先存在的存储数据。附图说明从下面参照附图进行的详细描述,本专利技术原理的上述以及附加的特征和优点将变得更加容易理解,其中:图1是根据本专利技术构思的实施例的包括主机和具有用于压缩数据的空间压缩机的存储装置的自主空间压缩系统的示例框图。图2是由图1的存储装置接收的包括与对象指针、源数据地址和新的数据地址相关联的元数据的命令的示例框图。图3是由图1的存储装置接收的包括与对象指针相关联的元数据的命令的示例框图。图4是由图1的存储装置接收的包括与第一对象指针和第二对象指针相关联的元数据的命令的示例框图。图5是由图1的存储装置接收的包括与第一对象指针、第二对象指针和第三对象指针相关联的元数据的命令的示例框图。图6是示出根据本专利技术构思的实施例的用于基于主机命令压缩存储装置的一个或多个数据存储部分中预先存在的存储数据(preexisting stored data)的技术的流程图。图7是示出根据本专利技术构思的实施例的用于基于主机命令压缩存储装置
的一个或多个数据存储部分中预先存在的存储数据的另一技术的流程图。图8是包括具有图1的空间压缩机的存储装置的计算系统的框图。具体实施方式现在,将详细描述本专利技术构思的实施例,本专利技术构思的实施例的示例在附图中示出。在下面的详细描述中,阐述了大量的特定细节,以能够全面理解本专利技术构思。然而,应理解,具有本领域普通技术的人员可在没有这些特定细节的情况下实践本专利技术构思。在其他示例中,没有详细地描述公知的方法、进程、组件、电路和网络,以免不必要地模糊实施例的各个方面。将理解,尽管这里可使用术语“第一”、“第二”等来描述各种元件,但是这些元件不应被这些术语所限制。这些术语仅用于将一个元件与另一个元件进行区分。例如,在不脱离本专利技术构思的范围的情况下,第一逻辑部分可被称为第二逻辑部分,相似地,第二逻辑部分可被称为第一逻辑部分。这里在本专利技术构思的描述中使用的术语仅为了描述具体实施例的目的,而不意在限制本专利技术构思。除非上下文另有清楚地指示,否则如本专利技术构思和所附权利要求的描述中所使用的单数形式也意在包括复数形式。还将理解,如在此所使用的术语“和/或”涉及并且包括一个或多个相关所列项的任意和所有可能组合。还将理解,当在本说明中使用术语“包括”和/或“包含”时,说明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。附图的组件和特征不必成比例地描绘。例如,本专利技术构思的实施例通过减小CPU与存储装置之间的数据移动以及通过支持数据压缩的内存储器增大底层存储装置的可用容量,来改善存储方案的性能、能源效率和容量。实施例包括用于通过主机端命令初始化并且根据由主机指定的元数据的自主内存储器空间压缩的存储设备和方法。如下面的进一步描述,空间压缩机可用作存储装置内的独立的模块或逻辑部分,可以在存储装置内移动数据,从而释放容量并且使得预先存在的存储数据更加紧密。仍如下面的进一步描述,空间压缩机可引起自压缩操作、自压缩和削减操作、移动和压缩操作和/或合并和压缩操作。空间压缩机可通知主机操作的完成。存储器带宽和主机CPU损耗工作可被交给智能存储装置,以更好地利用存储装置的内部带宽和低功耗。换言之,这样的带宽和主机CPU
损耗工作可响应于来自主机的命令和元数据而被存储装置内的空间压缩机和处理所代替。图1是包括主机层105和装置层110的自主空间压缩系统100的示例框图。根据本专利技术构思的实施例的装置层110可包括具有用于压缩数据的空间压缩机145的存储装置130。空间压缩机145可包括空间压缩逻辑部分147和/或空间压缩存储部分149。在一个实施例中,空间压缩逻辑部分147可包括中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等,空间压缩存储部分149可包括随机存取存储器(RAM)、闪存、相变存储器(PCM)等。存储装置130可包括任何合适类型的非易失存储器,诸如,闪存、相变存储器(PCM)、自旋转移力矩随机存取存储器(STT-RAM)等。例如,存储器130可以是固态驱动(SSD)存储装置。主机层105可包括主机102,诸如,主机处理器102。例如,主机处理器102可以是中央处理单元(CPU)。然而,将理解,主机处理器102可以是任何合适类型的处理器。还将理解主机102可包括软件处理、固件部分、硬件单元或它们的任意组合。主机102可包括一个或多个应用115和装置驱动器120。例如,一个或多个应用115可包括文件系统、数据库、一个或多个处理等。一个或多个应用115可将一个或多个命令调用125发给装本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610289161.html" title="用于自主空间压缩的存储设备和方法原文来自X技术">用于自主空间压缩的存储设备和方法</a>

【技术保护点】
一种存储装置,包括:一个或多个数据存储部分;通信和路径逻辑部分,被配置为从主机接收并按路径发送包括元数据的数据压缩命令;空间压缩机,通信连接到通信和路径逻辑部分和所述一个或多个数据存储部分,其中,空间压缩机被配置为:从通信和路径逻辑部分接收包括元数据的数据压缩命令,并且至少基于从主机接收的元数据和数据压缩命令,压缩所述一个或多个数据存储部分中预先存在的存储数据。

【技术特征摘要】
2015.06.01 US 62/169,551;2015.09.23 US 14/863,4381.一种存储装置,包括:一个或多个数据存储部分;通信和路径逻辑部分,被配置为从主机接收并按路径发送包括元数据的数据压缩命令;空间压缩机,通信连接到通信和路径逻辑部分和所述一个或多个数据存储部分,其中,空间压缩机被配置为:从通信和路径逻辑部分接收包括元数据的数据压缩命令,并且至少基于从主机接收的元数据和数据压缩命令,压缩所述一个或多个数据存储部分中预先存在的存储数据。2.如权利要求1所述的存储装置,其中,所述一个或多个数据存储部分包括一个或多个非易失存储器部分以及一个或多个易失存储器部分。3.如权利要求1所述的存储装置,其中:元数据包括对象指针、一个或多个源数据地址以及一个或多个新的数据地址;对象指针指向包括预先存在的存储数据的对象;空间压缩机被配置为:使得与所述一个或多个源数据地址相应的预先存在的存储数据的一个或多个子集合移动到与所述一个或多个新的数据地址相应的对象内的新的位置。4.如权利要求3的存储装置,其中:所述对象是文件;所述一个或多个源数据地址对应于文件内的逻辑块地址的第一范围以及文件内的逻辑块地址的第二范围;所述一个或多个新的数据地址对应于文件内的逻辑块地址的第三范围。5.如权利要求1所述的存储装置,其中:元数据包括对象指针;对象指针指向包括预先存在的存储数据的对象;空间压缩机被配置为:使得预先存在的存储数据的一个或多个子集合移动到对象内的新的位置。6.如权利要求5所述的存储装置,其中:对象是包括一个或多个页的数据库表格,所述一个或多个页中的每页包
\t括一个或多个有效记录以及一个或多个未使用或无效条目;空间压缩机被配置为:使得所述一个或多个页中的每页的所述一个或多个有效记录重新排列为所述一个或多个页中的相应的页中的每页内的逻辑连续的排列;空间压缩机被配置为:使得所述一个或多个页中的每页的所述一个或多个未使用或无效条目重新排列为所述一个或多个页中的相应的页中的每页内的逻辑连续的排列。7.如权利要求6所述的存储装置,其中:空间压缩机被配置为:使得所述一个或多个页中的每页的所述一个或多个未使用或无效条目从数据库表格被削减。8.如权利要求1所述的存储装置,其中:元数据包括第一对象指针和第二对象指针;第一对象指针指向包括预先存在的存储数据的第一对象;第二对象指针指向第二对象;空间压缩机被配置为:使得第一对象中的预先存在的存储数据的一个或多个子集合移动到第二对象。9.如权利要求8所述的存储装置,其中:第一对象对应于第一只追加文件AOF文件;第一AOF文件中的预先存在的存储数据包括一个或多个时间戳记录;第二对象对应于第二AOF文件;空间压缩机被配置为:使得第一AOF文件的所述一个或多个时间戳记录的子集合被压缩为单个时间戳记录,并且单个时间戳记录被存储在第二AOF文件中。10.如权利要求9所述的存储装置,其中:第一AOF文件的所述一个或多个时间戳记录的子集合被称为第一子集合;第二AOF文件的单个时间戳记录被称为第一单个时间戳记录;空间压缩机被配置为:使得第一AOF文件的所述一个或多个时间戳记录的第二子集合被压缩为第二单个时间戳记录,并且第二单个时间戳记录被存储在第二AOF文件中。11.如权利要求1所述的存储装置,其中:元数据包括第一对象指针、第二对象指针和第三对象指针;第一对象指针指向包括预先存在的存储数据的第一部分的第一对象;第二对象指针指向包括预先存在的存储数据的第二部分的第二对象;第三对象指针指向第三对象;空间压缩机被配置为:使得第一对象中的预先存在的存储数据的第一部分的一个或多个子集合移动到第三对象;空间压缩机被配置为:使得第二对象中的预先存在的存储数据的第二部分的一个或多个子集合移动到第三对象。12.如权利要11所述的存储装置,其中:第一对象对应于第一有序字符串表格SSTable;第一SSTable中的预先存在的存储数据的第一部分包括:一个或多个值和相应的一个或多个键以及一个或多个过时的值和相应的一个或多个键;第二对象对应于第二SSTable;第二SSTable中的预先存在的存储数据的第二部分包括:...

【专利技术属性】
技术研发人员:崔仁硕奇亮奭邱晟
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国;KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1