当前位置: 首页 > 专利查询>伊姆西公司专利>正文

存储器中心数据库架构制造技术

技术编号:14637509 阅读:61 留言:0更新日期:2017-02-15 11:41
用于非易失性全闪存存数据库中的Java对象的存储和检索的系统和方法。Bean注释定义对象和对象类的属性,利用全闪存Java运行时环境中的Java编译器创建该bean注释。基于这些属性创建对象索引,并且采用利用这些索引的Java对象查询语言定位该全闪存数据库中的对象。提供用于管理该全闪存数据库中对象和存储器的新的事务模型,以及新的垃圾回收器,用于删除对象并回收存储器空间。

【技术实现步骤摘要】

本专利技术一般地涉及数据存储系统和方法,更具体地涉及永久非易失性闪存数据库存储系统和方法。
技术介绍
永久半导体存储器,诸如闪速存储器(闪存,flashmemory),的读/写性能正发展到一个点,它可能会很快替代一些应用中的内部存储器。预期随着时间的推移非易失性闪速存储器将变得跟DRAM一样快。这会为闪速存储器打开很多用于存储系统诸如数据库的独特和不同的应用。然而,闪速存储器可以被高效地用作数据库之前,需要解决很多不同的问题,这需要用于编程语言编译器诸如Java的不同的模型,以及极其不同的存储系统架构解决方案。传统Java运行环境(JRE,Javaruntimeenvironment)目前没有能力永久地存储数据对象。所有的对象由构造函数在运行时创建并且存储在易失性存储器中(例如RAM)。这对闪速存储器是不利的,因为需要利用完全不同的方式创建、删除以及管理非易失性存储器中的永久对象。创建易失性存储器中的临时对象的优点在于,当应用关闭或被垃圾回收进程清除时,非引用对象可以被自动清除,这也会在运行时自动释放内存。这跟具有闪速存储器的情形不同,该情形中对于删除永久对象和释放内存来说确认动作是必须的。另外,由于数据库中对象的数量可以很大,因此存在如何基于查询定义有效地发现并且检索闪存阵列中的对象的问题。当使用闪速存储器时需要解决的其它问题是如何确定对象的位置,从而可以对其引用,以及如何删除存储的对象和释放内存。寻找永久存储器中的对象需要不同于易失性存储器中使用的索引方法。确实,由于非易失性存储器正在取代内部存储器,因此有必要重新思考传统架构和技术。传统数据库利用专用服务器产品将对象序列化成表结构,并且提供其它有益的能力以便于和加速查找,这些能力诸如事务模型、数据的一致视图、查询语言诸如SQL、更新单个数据域的能力,以及索引结构。这些能力涉及大量消耗会减慢软件方案。伴随的序列化/反序列化过程通常检查各个集线器(hub)和缓存,这会在中央处理器(CPU)和内存上导致很大的开销、低效率和增加存储成本。这对于闪存存储是不合适的,闪存存储中对象总是保存在存储器中。需要用于管理对象的不同的事务模型以及检索和删除对象的不同解决方案。
技术实现思路
需要提供基于永久闪速存储器的新的以存储器为中心的数据库架构,其通过利用用于数据库架构的闪速存储器解决了前述和其它问题,并且这也是本专利技术期望的。附图说明图1是绘示了系统架构的方块图,该系统根据本专利技术的实施例提供全闪存编译器和运行时环境。图2绘示了数据库存储的传统方案。图3对比了根据本专利技术的全闪存数据库方案和图2中的传统数据库方案。图4绘示了用于索引永久对象的根据本专利技术的全闪存编译器的操作。图5绘示了根据本专利技术的全闪存数据库的索引结构的实施例。图6绘示了根据本专利技术的用于管理全闪存数据库中的对象的处理的实施例。图7A-C绘示了根据本专利技术的用于删除对象和压缩存储器的处理的实施例。图8A-C绘示了根据本专利技术的用于删除全闪存数据库中永久对象的不同的方案。具体实施方式本专利技术利用永久非易失性闪速存储器提供新的和独特的以存储器为中心的数据库架构,其将传统数据库有益的特性、灵活性和多功能性与闪速存储器提供的速度、安全和方便结合在一起,同时获取了相对于传统存储器改进的性能。根据本专利技术,提供了用于闪速存储技术的新类型的编译器和优化的运行时(runtime)。本专利技术尤其非常适于与Java编程语言一起使用,以及用于数据库应用,本文将对此进行描述。因此,在描述本专利技术的实施例时,说明书将使用与描述“全闪存Java编译器”(allflashJavacompiler,AFJC)、“全闪存Java运行环境”(allflashJavaruntimeenvironment,AFJRE)以及“全闪存数据库”(allflashdatabase,AFDB)有关的术语诸如“全闪存”(allflash)。然而,应当理解基于Java的存储系统和方法只是绘示本专利技术的一个实例,本专利技术对于其他编程语言、环境和应用也有适应性。图1绘示了根据本专利技术的实施例的系统的架构,该系统提供用于根据本专利技术的实施例的全闪存存储阵列的编译器和运行时环境。如图中所示,该系统包括连接至客户端112的计算机系统(CPU)110、易失性存储器114和非易失性存储器116。该易失性存储器和非易失性存储器可以包括用于存储控制程序的计算机可读介质,该控制程序包括用于控制该计算机系统110的操作的可执行指令。该非易失性存储器可以包括形成数据库的全闪存存储阵列。编译器120可以是编译Java指令的Java编译器,该Java指令是用于闪存永久存储阵列而根据本专利技术定制的。该指令由计算机系统110执行以创建Java运行时环境122。Java编译器将称为全闪存Java编译器(AFJC),并且Java运行时环境将称为全闪存Java运行时环境(AFJRE)。如将要详细描述的,本专利技术提供数据库架构和永久数据模型,它们与传统数据库架构和模型是非常不同的。传统数据库被按照表进行组织。存储和访问这样的传统数据库中的数据需要多个步骤,以在存储器单元(memorylocations)和各个页面与存储器缓存之间移动数据对象。反之,根据本专利技术,提供新的永久数据模型,其中将数据对象直接存储于永久存储器中,并且在永久存储器中直接对其管理。这不同于所谓的对象数据库,对象数据库试图通过将数据库映射到不同的已知数据模型而使数据管理透明。将要被永久存储的对象在创建时就被明确地限定和识别,并且可以明确地指明需要删除的对象。另外,本专利技术提供事务管理模型,其中在单个事务中多个对象可以被自动地修改。如将要描述的,为了实施需要的新的实时行为,本专利技术的AFJC具体化该新的和不同的Java编译器功能,该功能根据本专利技术的永久对象和事务管理模型而定制。当基于提供给编译器的指示而创建对象时,AFJC(编译器)120可以决定将哪些对象存储在易失性存储器中,以及将哪些对象存储在永久闪速非易失性存储器中。有很多不同的方法可以用于提供该功能。根据第一种方法,可以缺省将所有的对象存储在非易失性存储器116中。当创建新的对象时,可以将它们自动存储在闪存阵列中。该方法的优点为,现有的应用可以受益于AFJRE而不需要重新编译。由于利用该方法,临时对象和永久对象之间没有区别,可以在AFJRE中创建用于清理不需要的对象的新的垃圾回收器(GC),其具有新的堆实现方式(heapimplementation)存储闪存阵列116中的对象。根据第二种优选的方法,提供指示给编译器,决定将哪些对象存储在非易失性存储器中,这被包含在对象定义中。可以利用Bean注释指明哪些对象应该存储在闪存阵列中,以及哪些对象应该存储在易失性存储器中。可以将Bean注释应用于类定义,它在使附加信息被包括进来方面是有利的,该附件信息诸如如何保存对象或对象的类,例如:@flash-storagePublicClassMyObject{Stringname;Datedate;本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201510640198.html" title="存储器中心数据库架构原文来自X技术">存储器中心数据库架构</a>

【技术保护点】
一种数据库系统,包括:非易失性永久闪存数据库,具有用于存储永久数据对象的存储器单元;以及计算机,响应于来自编译器的可执行指令而创建运行时环境,用于存储、检索和管理所述数据库中的永久数据对象,响应于提供给所述编译器的bean注释,该编译器向该计算机提供所述永久数据对象的对象定义和用于所述永久数据对象的索引的索引定义,其中所述计算机被编程以执行用于创建和存储所述索引的指令,从而在所述数据库中查找和管理所述永久数据对象,并且创建所述运行时环境,从而使所述数据对象能被直接存储进所述数据库中以及从所述数据库中被直接检索获取。

【技术特征摘要】
2015.07.30 US 14/814,4741.一种数据库系统,包括:非易失性永久闪存数据库,具有用于存储永久数据对象的存储器单元;以及计算机,响应于来自编译器的可执行指令而创建运行时环境,用于存储、检索和管理所述数据库中的永久数据对象,响应于提供给所述编译器的bean注释,该编译器向该计算机提供所述永久数据对象的对象定义和用于所述永久数据对象的索引的索引定义,其中所述计算机被编程以执行用于创建和存储所述索引的指令,从而在所述数据库中查找和管理所述永久数据对象,并且创建所述运行时环境,从而使所述数据对象能被直接存储进所述数据库中以及从所述数据库中被直接检索获取。2.根据权利要求1所述的数据库系统,其中所述运行时环境由所述计算机创建,使得所述数据对象能不需要使用中间页面缓存而被存储进所述数据库以及从所述数据库中被检索获取。3.根据权利要求1所述的数据库系统,其中所述运行时环境由所述计算机创建,以包括垃圾回收器,该垃圾回收器将被标记为删除的数据对象从所述数据库中删除。4.根据权利要求3所述的数据库系统,其中所述被标记为删除的数据对象包括或者被明确标记为删除的或者没有引用的数据对象。5.根据权利要求1所述的数据库系统,其中由所述计算机创建的运行时环境包括存储器压缩器,该存储器压缩器将被选择的数据对象组织进所述数据库中连续的存储器单元以压缩所述数据库。6.根据权利要求1所述的数据库系统,其中所述运行时环境包括虚拟机,该虚拟机提供用于存储数据对象定义的对象堆和用于存储索引定义的索引堆。7.根据权利要求1所述的数据库,其中所述对象定义指定所述永久数据
\t对象的属性,并且所述索引定义指示在所述数据库中的开始存储位置以及所述永久数据对象的长度。8.一种存储、检索和管理非易失性永久闪存数据库中的永久数据对象的方法,包括:提供bean注释的指令至编译器,用于创建所述永久数据对象的对象定义和用于所述永久数据对象的索引的索引定义;响应于接收来自所述编译器的所述对象定义和所述索引定义,由计算机创建所述索引,所述索引包括指示所述数据库中所述永久数据对象的存储位置的位置索引;响应于接收来自所述编译器的可执行指令,由所述计算机创建运行时环境,用于在所述数据库中直接存储、检索和管理所述永久数据对象。9.根据权利要求8所述的方法,其中所述创建所述运行时环境包括创建所述运行时环境以使所述永久数据对象能被不需要使...

【专利技术属性】
技术研发人员:珀斯·M·范鹿特丹迈克尔·默赫尔拉维·兰简·迦斯瑞查兰·斯拉夫
申请(专利权)人:伊姆西公司
类型:发明
国别省市:美国;US

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

1