数据压缩和解压缩方法及其装置与流程

文档序号:25517718发布日期:2021-06-18 20:03阅读:67来源:国知局
数据压缩和解压缩方法及其装置与流程
本申请总体说来涉及数据处理的
技术领域
,更具体地讲,涉及数据压缩和解压缩方法及其装置。
背景技术
:目前,基于持久化存储装置的数据库的压缩方法大多采用在数据库系统内部实现的基于cpu的压缩方法,如图1中所示,在这种情况下,用户无法在不修改数据库系统代码的情况下灵活地改变压缩算法,并且也无法释放cpu资源。cpu进行数据压缩时会大量占用cpu计算资源,使得整个系统性能都受到影响。另外,在图1中所示的系统中,用户也可以采用在不修改数据库系统的情况下通过修改文件系统在其内部进行数据压缩的方法,然而,在实际使用中,这种方法限制了数据库系统只能运行在具有此文件系统的操作系统上。除此以外,这种方法同样也不利于灵活改变压缩算法,因为这意味着需要最高权限来对操作系统进行修改,代价非常大。技术实现要素:本发明的示例性实施例在于提供一种数据压缩和解压缩方法及其装置,以至少解决现有技术存在的上述问题。根据本发明的示例性实施例,提供一种数据压缩方法,所述数据压缩方法包括:由配置的可编程器件从数据库接收待压缩数据;由所述可编程器件对所述待压缩数据进行压缩来得到压缩数据;由所述可编程器件将所述压缩数据写入到持久化存储装置中的文件中。可选地,由所述可编程器件从数据库接收所述待压缩数据的步骤可包括:由可编程器件通过posix文件系统接口以预定单位从数据库接收所述待压缩数据。可选地,由所述可编程器件将所述压缩数据写入到持久化存储装置中的所述文件中的步骤可包括:由所述可编程器件通过posix文件系统接口将所述压缩数据写入到所述文件中。可选地,由所述可编程器件将所述压缩数据写入到持久化存储装置中的文件中的步骤可包括:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述待压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中。可选地,根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中的步骤包括:如果所述位置字段的值和所述大小字段的值是初始值,则将所述位置字段的值设置成所述文件的文件尾的位置,将所述大小字段的值设置成所述压缩数据的大小,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据;如果所述位置字段的值和所述大小字段的值不是初始值,则根据所述大小字段的值与所述压缩数据的大小之间的比较结果来确定所述大小字段和所述位置字段的最终值,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据。可选地,根据所述大小字段的值与所述压缩数据的大小之间的比较结果来确定所述大小字段和所述位置字段的最终值的步骤可包括:如果所述大小字段的值大于或等于所述压缩数据的大小,则将所述大小字段的值更新成所述压缩数据的大小;如果所述大小字段的值小于所述压缩数据的大小,则将所述位置字段的值更新成所述文件的文件尾的位置,并将所述大小字段的值更新成所述压缩数据的大小。根据本发明的示例性实施例,提供一种数据解压缩方法,所述数据解压缩方法可包括:由配置的可编程器件从持久化存储装置中的文件读取压缩数据;由所述可编程器件对读取的压缩数据进行解压缩来得到解压缩数据;由所述可编程器件将解压缩数据提供给数据库。可选地,由所述可编程器件从持久化存储装置中的所述文件读取压缩数据的步骤可包括:由所述可编程器件通过posix文件系统接口从持久化存储装置中的所述文件读取所述压缩数据。可选地,由所述可编程器件将所述解压缩数据提供给数据库的步骤可包括:由所述可编程器件通过posix文件系统接口将所述解压缩数据提供给数据库。可选地,由所述可编程器件从持久化存储装置中的文件读取压缩数据的步骤可包括:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段从所述文件读取所述压缩数据。根据本发明的示例性实施例,提供一种数据压缩装置,所述装置包括:可编程器件,被配置为进行以下操作:从数据库接收待压缩数据;对所述待压缩数据进行压缩来得到压缩数据;并且将所述压缩数据写入到持久化存储装置中的文件中。可选地,所述可编程器件可被配置为通过posix文件系统接口以预定单位从数据库接收所述待压缩数据。可选地,所述可编程器件可被配置为通过posix文件系统接口将所述压缩数据写入到所述文件中。可选地,所述可编程器件可被配置为通过以下操作将所述压缩数据写入到持久化存储装置中的文件中:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述待压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中。可选地,所述可编程器件可被配置为通过以下操作根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中:如果所述位置字段的值和所述大小字段的值是初始值,则将所述位置字段的值设置成所述文件的文件尾的位置,将所述大小字段的值设置成所述压缩数据的大小,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据;如果所述位置字段的值和所述大小字段的值不是初始值,则根据所述大小字段的值与所述压缩数据的大小之间的比较结果来确定所述大小字段和所述位置字段的最终值,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据。可选地,所述可编程器件可被配置为通过以下操作来确定所述大小字段和所述位置字段的最终值:如果所述大小字段的值大于或等于所述压缩数据的大小,则将所述大小字段的值更新成所述压缩数据的大小;如果所述大小字段的值小于所述压缩数据的大小,则将所述位置字段的值更新成所述文件的文件尾的位置,并将所述大小字段的值更新成所述压缩数据的大小。根据本发明的示例性实施例,提供一种数据解压缩装置,所述数据解压缩装置可包括:可编程器件,被配置为进行以下操作:从持久化存储装置中的文件读取压缩数据;对读取的压缩数据进行解压缩来得到解压缩数据;并且将解压缩数据提供给数据库。可选地,所述可编程器件可被配置为通过posix文件系统接口从持久化存储装置中的所述文件读取所述压缩数据。可选地,所述可编程器件可被配置为通过posix文件系统接口将所述解压缩数据提供给数据库。可选地,所述可编程器件可被配置为通过以下操作从持久化存储装置中的文件读取压缩数据:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段从所述文件读取所述压缩数据。根据本申请的示例性实施例的数据压缩和解压缩方法及其装置可使用可编程器件进行数据压缩和解压缩,可在提高硬盘存储空间的同时,使数据库系统使用cpu的计算资源不受影响,进而获得最高性能。此外,根据本申请的示例性实施例的数据压缩和解压缩方法及其装置可将数据库系统对posix文件系统接口的调用重定向到由可编程器件接管,从而由可编程器件对数据进行压缩(文件写入)或解压缩(文件读取)后,再通过posix文件系统接口对下游的文件系统中的文件进行读写。根据本申请的示例性实施例的数据压缩和解压缩方法及其装置可在无需对上游的数据库系统以及下游的文件系统均进行任何修改的情况下由可编程器件实现原本由cpu进行的压缩和解压缩操作进而释放cpu资源,并且可有利于灵活改变压缩算法。换句话说,本申请的示例性实施例的数据压缩和解压缩方法及其装置能够在数据库系统和文件系统都无感知的情况下使用可编程器件对任意硬盘式数据库所有数据进行无损压缩或解压缩。此外,根据本申请的示例性实施例的数据压缩和解压缩方法及其装置可适用于任何使用posix文件系统接口读写数据的数据库和任何posix文件系统,并且由于本申请的示例性实施例的数据压缩和解压缩方法及其装置使用posix文件系统接口,因此具有在不同操作系统上运行的可移植性。将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。附图说明从下面结合附图对本申请实施例的详细描述中,本申请的这些和/或其他方面和优点将变得更加清楚并更容易理解,其中:图1是示出现有技术中的计算机架构图;图2是示出根据本申请示例性实施例的计算机架构图;图3是示出根据本申请示例性实施例的数据压缩方法的流程图;图4是示出根据本申请示例性实施例的数据解压缩方法的流程图;图5是示出根据本申请示例性实施例的数据压缩装置的框图;图6是示出根据本申请示例性实施例的数据解压缩装置的框图。具体实施方式现在将详细参照本发明的实施例,所述实施例的示例在附图中示出。以下将通过参照附图来说明所述实施例,以便解释本发明。这里,为了便于更好的理解本申请,首先对本发明的总体构思进行说明,本发明在图1所示出的传统计算机架构中增加了可编程器件,来帮助数据库系统完成数据在写入到文件系统中的文件之前的压缩工作并完成压缩输数据到文件系统中的文件的写入工作。如图2中所示,上游的数据库系统不需要做任何修改,仍然通过posix文件系统接口(即posix文件系统api)向硬盘中的文件系统中的文件读写数据,但是由配置好的可编程器件接管这些api的执行工作,在执行到文件系统中的文件的写入操作时,先使用可编程器件从数据库系统接收数据,然后对接收的数据进行压缩进而生成压缩数据,再通过posix文件系统api将压缩数据写入到下游的文件系统中的文件;在执行从文件系统中的文件读取数据的读取操作时,可首先使用可编程器件对文件系统中文件内的压缩数据进行解压缩,再将解压缩后的原始数据返回给数据库系统使用,其中,该可编程器件可通过烧录操作而固化有执行以上操作的程序。下面,首先参照图2和图3描述根据本申请示例性实施例的数据压缩方法。图3是示出根据本申请示例性实施例的数据压缩方法的流程图。如图3中所示,在步骤s310,由配置的可编程器件从数据库接收待压缩数据。其中,该数据库可通过调用posix文件系统提供的文件操作接口将所有需要保存的数据保存在持久化存储装置中以确保数据的可恢复性。此外,所述可编程器件可以是可编程门阵列(fpga)、复杂可编程器件(cpld)、通用数组逻辑(gal)等可直接插在传统计算机的pcie插槽上使用的器件,它们在按照本申请的逻辑经过编程之后可直接插在pcie插槽上与传统计算机的中央处理器(cpu)等器件进行通信。由所述可编程器件从数据库接收所述待压缩数据的步骤可包括:由可编程器件通过posix文件系统接口以预定单位从数据库接收所述待压缩数据。具体地讲,如图2中所示,当数据库系统向文件系统中的文件执行写操作时,数据库系统调用posix文件系统接口向文件系统写数据,在这个过程中,可编程器件接管posix文件系统接口的执行工作,进而可编程器件采用固定大小的页(page)通过posix文件系统接口从数据库系统获得待压缩数据。在步骤s320,由所述可编程器件对所述待压缩数据进行压缩来得到压缩数据。在步骤s330,由所述可编程器件将所述压缩数据写入到持久化存储装置中的文件中,其中,持久化存储装置是持久化块装置(例如,传统硬盘hdd或固态硬盘ssd)。具体地讲,由所述可编程器件将所述压缩数据写入到持久化存储装置中的文件中的步骤可包括:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述待压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中。具体地讲,文件系统以文件为单位维护一个查找表,用来保存请求的数据页在保存压缩数据的文件中的具体位置和压缩数据的长度信息,以使得可编程器件能够正确地将压缩数据写入到文件中,并且能够正确地读取文件中的压缩数据用于解压缩。该查找表的每一行有一个行号(pageid),代表原始数据页的序号,该行号无需存储。该查找表的每一行(从0开始编号)存在两个字段,第一个字段(即位置字段)表示读取数据页在保存压缩数据的文件内的起始位置(初始值为-1),且以字节为单位;第二个字段(即大小字段)表示压缩数据的大小(初始值为-1),且以字节为单位。此外,在文件的起始处还会保存该文件被数据库以什么固定大小的单位来访问(例如以m来表示),即,数据库访问该文件时所使用的单位,这是由于posix文件系统接口通常以字节为单位表示需要访问的是文件中的哪个位置(例如以k来表示),即,与posix文件系统接口需要访问的该文件中的位置有关的信息。此位置对应于查找表中的某一行(pageid),并且可通过以下的等式1来计算:pageid=[k/m](1)也就是说,pageid等于对k除以m的结果值取整。因此,通过等式1可从文件的查找表检索到与待压缩数据对应的位置字段和大小字段。例如,表1示出了查找表的一个示例,如果pageid=[k/m]=1,则可根据pageid=1从查找表检索到位置字段的值为4285并且大小字段的值为3876。[表1]pageid位置字段(字节)大小字段(字节)0042851428538762816139583121194007………根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中的步骤可包括:如果所述位置字段的值和所述大小字段的值是初始值,则将所述位置字段的值设置成所述文件的文件尾的位置,将所述大小字段的值设置成所述压缩数据的大小,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据;如果所述位置字段的值和所述大小字段的值不是初始值,则根据所述大小字段的值与所述压缩数据的大小之间的比较结果来确定所述大小字段和所述位置字段的最终值,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据。下面以举例的方式对此进行详细说明。例如,假设数据库以8192字节(8kb)的固定页为单位读写文件(即,m=8192字节),当数据库通过posix文件系统接口在文件的8192字节处写入8kb(8×1024)的数据页时,可编程器件通过利用等式1计算得到pageid=[8192/8192]=1,并根据pageid=1检索查找表来确定位置字段和大小字段的值。此时,可存在以下两种情况。第一种情况是确定的位置字段和大小字段均为初始值,这代表这一数据页时第一次写入,所以将该位置字段的值设置成该文件的文件尾的位置,并将该大小字段的值设置成该数据页在压缩之后的大小,此后,可编程器件可从该文件中由该位置字段的值所指示的位置处开始写入压缩后的数据。例如,假设查找表的pageid=0对应的位置字段和大小字段分别为0和4285,并且在写入当前数据页之前,pageid=1对应的位置字段和大小字段的值均为初始值,换句话说,在写入当前数据页之前,文件尾的位置为4285,因此,在写入当前数据页时,可将pageid=1对应的位置字段设置成4285,而将pageid=1对应的大小字段设置成数据页在压缩之后的大小,最后从该文件中由该位置字段的值指示的位置处开始写入所述压缩数据。第二种情况是确定的位置字段和大小字段均不是初始值,这代表这一数据页时更新写入,此时,需要根据该大小字段的值与当前数据页在压缩之后的压缩数据的大小之间的比较结果来确定该大小字段和该位置字段的最终值。具体地讲,根据该大小字段的值与所述压缩数据的大小之间的比较结果来确定该大小字段和该位置字段的最终值的步骤可包括:如果该大小字段的值大于或等于所述压缩数据的大小,则将该大小字段的值更新成所述压缩数据的大小;如果该大小字段的值小于所述压缩数据的大小,则将该位置字段的值更新成文件的文件尾的位置,并将该大小字段的值更新成所述压缩数据的大小。例如,当pageid=1对应的位置字段和大小字段的值分别为表1中的4285和3876,并且可编程器件对8kb的数据页进行压缩后的压缩数据的大小为size_new时,如果3876大于或等于size_new,则可编程器件将pageid=1对应的大小字段更新成该压缩数据的大小,并且pageid=1对应的位置字段的值不变;如果3876小于size_new,则表明该文件中的与pageid=1对应的位置字段的值起的3876个字节的空间无法保存下当前数据页的压缩数据,因此可编程器件将pageid=1对应的位置字段的值更新成该文件的文件尾的位置,并将pageid=1对应的大小字段的值更新成当前数据页的压缩数据的大小,即size_new,其中,该文件中由原来的位置字段的值指示的位置处将有一部分空间被释放,可使用各种现有的回收和重用方法来对该空间进行回收和重用。最后,从该文件中由该位置字段的值指示的位置处开始写入所述压缩数据。此外,在所述可编程器件将所述压缩数据写入到持久化存储装置中的所述文件中时,可编程器件通过posix文件系统接口将所述压缩数据写入到所述文件中。图4是示出根据本申请示例性实施例的数据解压缩方法的流程图。在步骤s410,由配置的可编程器件从持久化存储装置中的文件读取压缩数据。由所述可编程器件从持久化存储装置中的所述文件读取压缩数据的步骤可包括:由所述可编程器件通过posix文件系统接口从持久化存储装置中的所述文件读取所述压缩数据。具体地讲,如图2中所示,当数据库系统从文件系统中的文件读取压缩数据时,数据库系统调用posix文件系统接口向文件系统读操作,在这个过程中,可编程器件接管posix文件系统接口的执行工作,进而可编程器件采用固定大小的页(page)通过posix文件系统接口从文件系统获得压缩数据。具体地讲,由fgpa从持久化存储装置中的文件读取压缩数据的步骤可包括:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段从所述文件读取所述压缩数据。由于以上已经详细描述了与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,因此这里不再对此进行重复描述。下面以举例的方式对此进行详细描述。例如,当数据库系统通过posix文件系统接口在文件的16384字节处读取8kb的数据页时,可编程器件首先根据与posix文件系统接口需要访问的所述文件中的位置有关的信息(即k=16384)以及所述数据库访问所述文件时所使用的单位(即m=8192)来计算查找表中的行号,即,pageid=[16384/8192]=2,然后根据pageid=2从查找表中检索到与该数据页的压缩数据对应的位置字段和大小字段,例如,从上表1可检索到与pageid=2对应的位置字段和大小字段分别为8161和3958;此后,可编程器件从文件中的由该位置字段的值指示的位置处开始读取3958个字节的压缩数据。此后,在步骤s420,由可编程器件对读取的压缩数据进行解压缩来得到解压缩数据。此时,可编程器件按照与压缩过程相反的过程对压缩数据进行解压缩来得到解压缩的数据,即获得原始的8kb的数据页。然后,在步骤s430,由所述可编程器件将解压缩数据提供给数据库。具体地讲,可编程器件可通过posix文件系统接口将所述解压缩数据提供给数据库,即,将原始的8kb的数据页返回给上游的数据库,从而完成读取操作。图5是示出根据本申请示例性实施例的数据压缩装置500的框图。如图5中所示,数据压缩装置500可包括可编程器件510,其中,可编程器件510可以是可编程门阵列(fpga)、复杂可编程器件(cpld)、通用数组逻辑(gal)等可直接插在传统计算机的pcie插槽上使用的器件,它们在按照本申请的逻辑经过编程之后可直接插在pcie插槽上与传统计算机的中央处理器(cpu)等器件进行通信。可编程器件510可被配置为从数据库接收待压缩数据。具体地,可编程器件510可被配置为通过posix文件系统接口以预定单位从数据库接收所述待压缩数据。具体地讲,如图2中所示,当数据库系统向文件系统中的文件执行写操作时,数据库系统调用posix文件系统接口向文件系统写数据,在这个过程中,可编程器件510可接管posix文件系统接口的执行工作,进而可编程器件510可采用固定大小的页(page)通过posix文件系统接口从数据库系统获得待压缩数据。可编程器件510可被配置为对所述待压缩数据进行压缩来得到压缩数据,并且将该压缩数据写入到持久化存储装置中的文件中。具体地讲,可编程器件510可被配置为通过以下操作将压缩数据写入到持久化存储装置中的文件中:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述待压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中。由于以上已经参照图3和图4对与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位、以及如何根据它们查找表检索与所述待压缩数据对应的位置字段和大小字段进行了详细描述,因此,此处不再对此进行赘述。可编程器件510可被配置为通过以下操作根据所述位置字段和所述大小字段将所述压缩数据写入到所述文件中:如果所述位置字段的值和所述大小字段的值是初始值,则将所述位置字段的值设置成所述文件的文件尾的位置,将所述大小字段的值设置成所述压缩数据的大小,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据;如果所述位置字段的值和所述大小字段的值不是初始值,则根据所述大小字段的值与所述压缩数据的大小之间的比较结果来确定所述大小字段和所述位置字段的最终值,并从所述文件中由所述位置字段的值指示的位置处开始写入所述压缩数据。具体地,可编程器件510可被配置为通过以下操作来确定所述大小字段和所述位置字段的最终值:如果所述大小字段的值大于或等于所述压缩数据的大小,则将所述大小字段的值更新成所述压缩数据的大小;如果所述大小字段的值小于所述压缩数据的大小,则将所述位置字段的值更新成所述文件的文件尾的位置,并将所述大小字段的值更新成所述压缩数据的大小。由于以上已经参照图4对此进行了详细描述,因此此处不再进行赘述。此外,在可编程器件510将所述压缩数据写入到持久化存储装置中的所述文件中时,可编程器件510可通过posix文件系统接口将所述压缩数据写入到所述文件中。图6是示出根据本申请示例性实施例的数据解压缩装置600的框图。如图6中所示,数据解压缩装置600可包括可编程器件610。可编程器件610可以是与图5中的可编程器件510相同或相似的元件,即,可编程器件610可以是在按照本申请的逻辑经过编程之后可直接插在pcie插槽上与传统计算机的中央处理器(cpu)等器件进行通信的器件,例如,可编程门阵列(fpga)、复杂可编程器件(cpld)、通用数组逻辑(gal)等可直接插在传统计算机的pcie插槽上使用的器件。可编程器件610可被配置为从持久化存储装置中的文件读取压缩数据。具体地讲,如图2中所示,当数据库系统从文件系统中的文件读取压缩数据时,数据库系统调用posix文件系统接口向文件系统读操作,在这个过程中,可编程器件610接管posix文件系统接口的执行工作,进而可编程器件610采用固定大小的页(page)通过posix文件系统接口从文件系统获得压缩数据。具体地讲,可编程器件610可被配置为通过以下操作从持久化存储装置中的文件读取压缩数据:根据与posix文件系统接口需要访问的所述文件中的位置有关的信息以及所述数据库访问所述文件时所使用的单位,从所述文件的查找表检索与所述压缩数据对应的位置字段和大小字段;根据所述位置字段和所述大小字段从所述文件读取所述压缩数据。由于以上已经参照图4对此进行了详细描述,因此此处不再进行赘述。可编程器件610可被配置为对读取的压缩数据进行解压缩来得到解压缩数据。此时,可编程器件610可按照与压缩过程相反的过程对压缩数据进行解压缩来得到解压缩的数据,即获得原始的数据页。可编程器件610可被配置为将解压缩数据提供给数据库。具体地讲,可编程器件610可通过posix文件系统接口将所述解压缩数据提供给数据库,即,将原始的数据页返回给上游的数据库,从而完成读取操作。在以上描述中,所提及的可编程器件可被配置为具有执行以上描述的本申请的方法的程序。此外,在以上描述中,分别参照图5和图6对数据压缩装置500和数据解压缩装置600进行了单独的描述,然而,图5中的数据压缩装置500和图6中的数据解压缩装置600可由一个可编程器件来实现,换句话说,可将一个可编程器件配置为既能够执行图5的数据压缩装置500中的可编程器件510所实现的功能,也能够执行图6的数据解压缩装置600中的可编程器件610所实现的功能,并且,该一个可编程器件可被集成到图2中所示的基于可编程器件的压缩引擎中。可选地,图5的数据压缩装置500和图6的数据解压缩装置600可分别被集成到图2中所示出的基于可编程器件的压缩引擎中。以上描述的根据本申请的示例性实施例的数据压缩方法和数据解压缩方法及其装置可使用可编程器件进行数据压缩和解压缩,可在提高持久化存储装置的存储空间的同时,使数据库系统使用cpu的计算资源不受影响,进而获得最高性能。此外,根据本申请的示例性实施例的数据压缩方法和数据解压缩方法及其装置可将数据库系统对posix文件系统接口的调用重定向到由可编程器件接管,从而由可编程器件对数据进行压缩(文件写入)或解压缩(文件读取)后,再通过posix文件系统接口对下游的文件系统中的文件进行读写。根据本申请的示例性实施例的数据压缩和解压缩方法及其装置可在无需对上游的数据库系统以及下游的文件系统均进行任何修改的情况下释放cpu资源,并且可有利于灵活改变压缩算法。换句话说,本申请的示例性实施例的数据压缩和解压缩方法及其装置能够在数据库系统和文件系统都无感知的情况下使用可编程器件对任意硬盘式数据库所有数据进行无损压缩或解压缩。此外,根据本申请的示例性实施例的数据压缩和解压缩方法及其装置可适用于任何使用posix文件系统接口读写数据的数据库和任何posix文件系统,并且由于本申请的示例性实施例的数据压缩和解压缩方法及其装置使用posix文件系统接口,因此具有在不同操作系统上运行的可移植性。以上描述了本发明的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本发明不限于所披露的各示例性实施例。在不偏离本发明的范围和精神的情况下,对于本
技术领域
的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1