本发明涉及数据处理,特别涉及一种分布式数据库数据压缩方法、装置、设备及存储介质。
背景技术:
1、分布式数据库为了实现分布式数据管理,将数据在多个数据中心的多台服务器节点上进行数据分布,并在事务处理过程中,频繁的在各节点之间进行数据的异地调度和落盘存储。
2、在数据的异地调度过程中,有着大量的数据传输操作,但传输网络的资源是有限的,因此可以使用压缩算法对传输的数据进行压缩以减少对网络资源的占用,否则会影响数据库的数据异地异节点间的同步能力。另外,数据库要对大量的数据进行落盘存储,对存储系统的容量和io性能提出了很高要求,为了降低对存储系统的容量和io能力的压力,也需要使用压缩算法对数据进行压缩后进行存储,以此保证数据库的整体性能。这样一来,数据的压缩需要占用系统的cpu资源和内存资源,会造成cpu和内存资源占用过重,与数据库核心进程进行资源竞争,这样会严重拉低数据库的整体性能表现。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种分布式数据库数据压缩方法、装置、设备及存储介质,能够利用fpga减少了cpu和内存资源的占用,避免数据压缩与数据库核心进程进行资源竞争,可以提高数据库的整体性能。其具体方案如下:
2、第一方面,本申请提供了一种分布式数据库数据压缩方法,应用于fpga,包括:
3、从分布式数据库的内存中获取数据操作指令;
4、基于所述数据操作指令从所述分布式数据库中获取相应的待压缩数据;
5、利用预设压缩算法对所述待压缩数据进行压缩得到压缩后数据;
6、根据所述数据操作指令中的数据传输类型对所述压缩后数据进行传输。
7、可选的,所述从分布式数据库内存中获取数据操作指令之前,还包括:
8、将预设bit流文件烧录至fpga,以便所述fpga基于所述预设bit流文件完成分布式数据库数据压缩过程;
9、或,通过外挂flash对fpga进行程序配置,以便所述fpga利用配置完的程序完成分布式数据库数据压缩过程。
10、可选的,所述基于所述数据操作指令从所述分布式数据库中获取相应的待压缩数据,包括:
11、根据所述数据操作指令中的内存地址从所述分布式数据库中获取与所述内存地址对应的所述待压缩数据。
12、可选的,所述利用预设压缩算法对所述待压缩数据进行压缩得到压缩后数据,包括:
13、在若干个所述预设压缩算法中选择与所述数据操作指令中的压缩算法类型对应的压缩算法对所述待压缩数据进行压缩以得到所述压缩后数据。
14、可选的,所述根据所述数据操作指令中的数据传输类型对所述压缩后数据进行传输,包括:
15、若所述数据操作指令中所述数据传输类型为本地存储,则根据所述数据操作指令中的存储地址将所述压缩后数据发送到所述分布式数据库中的相应位置进行存储;
16、若所述数据操作指令中所述数据传输类型为节点传输,则对所述压缩后数据进行校验封装,并将封装后的数据发送到其他的相应节点数据库。
17、可选的,所述方法还包括:
18、对从其他节点数据库接收到的数据进行解封装,并对解封装后的数据进行校验以得到待处理数据;
19、若数据操作指令中数据存储方式为非压缩存储,则根据所述数据操作指令中压缩算法类型对应的预设压缩算法对所述待处理数据进行解压缩以得到解压缩后数据;
20、根据所述数据操作指令中的存储地址将所述解压缩后数据发送到分布式数据库中的相应位置进行存储。
21、可选的,所述方法还包括:
22、若数据操作指令中数据存储方式为压缩存储,则根据所述数据操作指令中的存储地址将所述待处理数据发送到分布式数据库中的相应位置进行存储。
23、第二方面,本申请提供了一种分布式数据库数据压缩装置,应用于fpga,包括:
24、操作指令获取模块,用于从分布式数据库的内存中获取数据操作指令;
25、数据获取模块,用于基于所述数据操作指令从所述分布式数据库中获取相应的待压缩数据;
26、数据压缩模块,用于利用预设压缩算法对所述待压缩数据进行压缩得到压缩后数据;
27、数据传输模块,用于根据所述数据操作指令中的数据传输类型对所述压缩后数据进行传输。
28、第三方面,本申请提供了一种电子设备,包括:
29、存储器,用于保存计算机程序;
30、处理器,用于执行所述计算机程序以实现如上述的分布式数据库数据压缩方法。
31、第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如上述的分布式数据库数据压缩方法。
32、由此可见,本申请可以基于fpga从分布式数据库的内存中获取数据操作指令;然后基于所述数据操作指令从所述分布式数据库中获取相应的待压缩数据;再利用预设压缩算法对所述待压缩数据进行压缩得到压缩后数据;然后根据所述数据操作指令中的数据传输类型对所述压缩后数据进行传输。这样一来,本申请可以利用fpga对数据库数据进行压缩,可以节省磁盘空间或者减少数据传输过程中的网络负载,并且利用fpga完成数据压缩与后续传输解放了数据库的数据压缩与传输进程,减少了cpu占用和内存资源的占用,避免了数据压缩与数据库核心进程进行资源竞争,这样可以提高数据库的整体性能。
1.一种分布式数据库数据压缩方法,其特征在于,应用于fpga,包括:
2.根据权利要求1所述的分布式数据库数据压缩方法,其特征在于,所述从分布式数据库内存中获取数据操作指令之前,还包括:
3.根据权利要求1所述的分布式数据库数据压缩方法,其特征在于,所述基于所述数据操作指令从所述分布式数据库中获取相应的待压缩数据,包括:
4.根据权利要求1所述的分布式数据库数据压缩方法,其特征在于,所述利用预设压缩算法对所述待压缩数据进行压缩得到压缩后数据,包括:
5.根据权利要求1至4任一项所述的分布式数据库数据压缩方法,其特征在于,所述根据所述数据操作指令中的数据传输类型对所述压缩后数据进行传输,包括:
6.根据权利要求5所述的分布式数据库数据压缩方法,其特征在于,还包括:
7.根据权利要求6所述的分布式数据库数据压缩方法,其特征在于,还包括:
8.一种分布式数据库数据压缩装置,其特征在于,应用于fpga,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式数据库数据压缩方法。