CN111858490B - 一种基于dbDedup的分布式数据库存储通信压缩方法 - Google Patents
一种基于dbDedup的分布式数据库存储通信压缩方法 Download PDFInfo
- Publication number
- CN111858490B CN111858490B CN202010709383.5A CN202010709383A CN111858490B CN 111858490 B CN111858490 B CN 111858490B CN 202010709383 A CN202010709383 A CN 202010709383A CN 111858490 B CN111858490 B CN 111858490B
- Authority
- CN
- China
- Prior art keywords
- record
- dbdedup
- records
- encoded
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006835 compression Effects 0.000 title claims abstract description 57
- 238000007906 compression Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004891 communication Methods 0.000 title claims abstract description 18
- 230000008569 process Effects 0.000 claims description 11
- 230000008901 benefit Effects 0.000 claims description 9
- 230000010076 replication Effects 0.000 claims description 9
- 239000000872 buffer Substances 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 3
- 230000002441 reversible effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000003780 insertion Methods 0.000 abstract description 4
- 230000037431 insertion Effects 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 abstract description 3
- 230000009467 reduction Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于dbDedup的分布式数据库存储通信压缩方法,所述方法基于dbDedup,使用基于相似性的dedup来同时实现良好的压缩率和较低的内存使用率,在为本地存储和远程复制准备更新的记录数据时使用的dedup编码工作流程,在插入或更新查询期间,将新记录写入本地操作日志,并通过dbDedup在后台将新纪录编码为关键路径之外的内容。本发明通过采用dbDedup结合了部分索引和字节级delta压缩,可以实现比块级别压缩和基于块的dedup更高的压缩率,同时还可以提高内存效率;通过使用新颖的编码和缓存机制来避免访问delta编码记录所涉及的大量I/O开销。
Description
技术领域
本发明涉及分布式数据库存储通信压缩技术领域,具体提供一种基于dbDedup的分布式数据库存储通信压缩方法,用于在线数据库管理系统的基于相似性的重复数据删除(dedup)方案,基于dbDedup来实现减少存储使用量和为远程复制而传输的数据量的装置。
背景技术
随着基于Web的应用程序的普及,当今更多的数据存储在各种形式的数据库中。由于数据增长的速度超过了硬件成本的下降速度,数据库压缩被应用到这一问题中。对于数据库存储,除了节省空间外,压缩还有助于减少磁盘I/O(输入/输出)的数量并提高性能,因为查询的数据适合较少的页面。对于跨地理区域复制的分布式数据库,也非常需要减少用于保持副本同步的数据传输量。
运营的数据库管理系统(DBMS)中用于数据缩减的最广泛使用的方法是块级别压缩(block-level compression)。此类DBMS用于支持面向用户的应用程序,这些应用程序执行简单查询以每次检索少量记录(与执行复杂的查询以扫描数据库的很大部分相反)。尽管块级别压缩是简单有效的,但是它无法解决跨块的冗余问题,因此为许多应用程序留下了很大的改进空间。
由于编码和解码步骤中涉及的I/O和计算开销,有效访问delta编码存储是一项长期的挑战。特别地,重构编码数据可能需要沿着长编码链读取所有增量,直到到达未编码(原始)数据项。为了提供合理的性能保证,大多数联机系统仅使用delta编码来减少网络传输(不对存储进行编码),或者在存储组件中使用它的程度非常有限(例如,通过将编码链的最大长度限制为较小的值)。但是,这样做导致了未充分利用可能实现的空间节省。
发明内容
浪潮云海分布式数据库(DRDB),原本默认在网络和存储中都使用了snappy算法进行压缩。在实际运行过程中,snappy实现的压缩率并未达到令人满意的效果。本发明的技术任务是针对上述存在的问题,提供一种基于dbDedup的分布式数据库存储通信压缩方法。
dedup是一种特殊的压缩技术,可识别并消除整个数据集的重复内容。与简单的压缩技术相比,它具有一些明显的优势,但是维护成本很高。尽管dedup在文件系统中得到了广泛的使用,但尚未在数据库中进行充分的研究——DBMS中的大多数数据缩减都是基于单个数据库页面的块级别压缩。这有以下三个原因:与文件或备份流相比,数据库对象较小。因此,dedup可能无法提供良好的压缩率而不保持太大的索引;第二,对于关系型DBMS,尤其是对于那些使用基于列的数据存储的DBMS,简单的压缩算法足以满足需要。提供令人满意的压缩率;第三,在云中出现复制服务之前,网络带宽的限制并不是一个关键问题(尤其是地理复制)。
分层数据中心基础架构的出现,对云中商用硬件提供更高级别的可靠性的需求以及数据库管理系统日益增长的多样性已经改变了运营格局。记录更新通常涉及读取当前版本并写回非常相似的记录。新创建的记录也可能与早期记录相似,只是内容的小部分发生了变化。这样的冗余为数据库存储和复制带宽的数据减少创造了很大的机会。
由于底层的DBMS不知道其关系的非并置记录之间的相似性,因此许多数据库应用程序都可以从dedup中受益。此外,dedup带来的好处与压缩的好处是互补的——dedup和压缩的结合比单独使用它们产生的数据减少更大。因此,基于dbDedup的压缩方案,可以减少分布式数据库存储和复制带宽的使用。
为实现上述目的,本发明提供了如下技术方案:
一种基于dbDedup的分布式数据库存储通信压缩方法,所述方法基于dbDedup,使用基于相似性的dedup来同时实现良好的压缩率和较低的内存使用率,在为本地存储和远程复制准备更新的记录数据时使用的dedup编码工作流程,在插入或更新查询期间,将新记录写入本地操作日志,并通过dbDedup在后台将新纪录编码为关键路径之外的内容,所述方法实现步骤包括:
(1)从新记录中提取相似性特征;
(2)在dedup索引中查找数据库语料库中候选相似记录的列表;
(3)从候选中选择一个最佳记录;
(4)在新记录和类似记录之间执行增量压缩,以计算编码形式来进行本地存储和副本同步。
所述方法使用双向编码技术,将双向delta压缩应用于源记录和目标记录,以生成新记录的前向编码形式和相似记录的后向编码形式,可减少远程复制带宽和数据库存储,同时针对常见情况查询进行优化,实现步骤包括:
首先通过dbDedup重新编码器从本地数据库或命中的源记录缓存中读取基本相似记录并应用前向编码增量来对新记录进行解码;
然后,使用delta将新重建的新记录作为源来压缩相似记录,就像在原始记录中一样,并为相似记录生成相同的向后编码增量;
最后,通过dbDedup将新记录写入次数据库,并将类似的记录更新为delta编码形式。
所述方法使用跳编码(hop encoding)技术来减少最坏情况的源检索,以读取编码的记录,同时很大程度上保留了压缩的好处,避免应用了dedup却很少产生重大收益的情况,实现步骤包括:
首先,通过一个dedup调控器监视运行时压缩率,并自动禁用对受益不足的数据库的dedup;
其次,基于记录大小,过滤器针对较小的记录自适应地跳过dedup,而这些记录对总体压缩率的贡献很小。
所述dbDedup通过两种新的编码方案极大地减轻了delta编码存储中压缩增益和访问速度之间的折衷。
所述方法通过dbDedup在给定的编码链中缓存关键节点,提高存效率,同时消除用于访问编码记录的大多数I/O开销,其中缓存关键节点包括:源记录高速缓存,它减少了编码期间的数据库读取次数;有损回写增量高速缓存,它减轻了由反向编码引起的写放大。
Delta编码的存储由于其“链接”属性而具有特殊的缓存机制。利用此属性,dbDedup仅在给定的编码链中缓存几个关键节点,从而最大程度地提高了内存效率,同时消除了用于访问编码记录的大多数I/O开销。它使用两个专用的高速缓存:一个是源记录高速缓存,它减少了编码期间的数据库读取次数;另一个是有损回写增量高速缓存,它减轻了由反向编码引起的写放大。
所述分布式数据库包括主节点和次节点,主节点以操作日志(oplog)批处理的形式异步将更新推送到次节点,具体实现过程如下:
主节点将新记录写入其本地数据库,并将该记录追加到操作日志(oplog);每个操作日志条目都包括一个时间戳和一个包含插入记录的有效负载,当未同步的操作日志(oplog)条目的大小达到阈值时,主节点将它们批量发送到次节点,次节点接收更新,将更新附加到其本地操作日志,然后重置新的操作日志条目以更新其本地数据库;
所述主节点将更新推送此节点的过程中,通过使用dbDedup,主节点首先将新记录存储在其本地操作日志中;
稍后,当准备存储记录或将其发送到副本时,dbDedup编码器按dedup步骤对其进行处理:
如果dbDedup成功地从现有数据语料库中选择了相似记录,它将通过首先检查源记录高速缓存来检索相似记录的内容;
如果发生高速缓存未命中,它将从基础存储中读取记录;
然后,它将双向delta压缩应用于源记录和目标记录,以生成新记录的前向编码形式和相似记录的后向编码形式:
dbDedup将新记录以其原始形式插入到主数据库中,并将向后编码的类似记录缓存在有损回写缓存中,直到系统I/O变得空闲为止;
然后,dbDedup将前向编码的记录追加到主操作日志,该操作日志在副本同步期间传输到次操作日志。
在次节点上,DBMS的oplog同步器接收已编码的oplog条目并将其传播到dbDedup重新编码器;
重新编码器首先通过从其本地数据库或命中的源记录缓存中读取基本相似记录并应用前向编码增量来对新记录进行解码;
然后,delta使用新重建的新记录作为源来压缩相似记录,就像在原始记录中一样,并为相似记录生成相同的向后编码增量;
最后,dbDedup将新记录写入次数据库,并将类似的记录更新为其delta编码形式。这些步骤确保次节点存储与主节点相同的数据。
所述dbDedup编码器为每个存储的记录维护一个引用计数,该记录将跟踪引用该记录作为解码基础的记录数;因为dbDedup使用向后编码进行数据库存储,所以插入后,新记录的引用计数将设置为1,而类似记录的引用计数将保持不变。相似记录的原始基准的引用计数(如果存在的话)减少1。
所述方法实现记录更新的过程包括:
更新后,dbDedup首先检查查询记录的引用计数,如果计数为零,这意味着没有其他记录可以引用该值进行解码,则dbDedup照常直接应用更新;
否则,dbDedup保持当前记录不变,并将更新附加到该记录,这样做可确保将其他记录用作参考仍然可以成功解码;
当引用计数达到0时,dbDedup将所有更新压缩到记录中,并将其替换为新数据;
dbDedup使用回写高速缓存来延迟增量编码的源记录的更新,为了防止它覆盖正常的客户端更新,dbDedup始终检查每个更新的高速缓存,如果找到具有相同ID的记录(以后再回写),它将使该条目无效并正常进行客户端更新。
所述方法实现纪录删除测过程包括:
如果要删除的记录的参考计数为0,则删除将正常进行;
否则,dbDedup将其标记为已删除,但保留其内容;
任何客户端读取已删除的记录都会返回空结果,但仍可以用作解码;
当一条记录的引用计数降至0时,dbDedup会将其从数据库中删除,并将其基本记录的引用计数减1。
所述方法实现记录读取的过程包括:
如果查询的记录是以原始格式存储的,则它会像通常情况一样直接发送给客户端;
如果记录已编码,则dbDedup的解码器会将其恢复为原始格式,然后再返回给客户端;
在解码期间,解码器从源记录高速缓存或在高速缓存未命中的存储中获取基本记录,并使用存储的增量重建查询的记录;
如果基本记录本身已编码,则解码器会反复重复上述步骤,直到找到完整存储的基本记录为止。
所述方法实现记录垃圾回收的过程包括:
每条记录的引用计数确保在更新或删除时不会损坏编码链;
为了促进垃圾收集,dbDedup会在读取时检查已删除的对象:
沿着解码路径,如果一条记录被视为已删除,则dbDedup会在其两个相邻记录之间创建一个增量,并将其引用计数减1;
如果没有其他记录需要解码,则从数据库中安全删除该记录。
与现有技术相比,本发明一种基于dbDedup的分布式数据库存储通信压缩方法具有以下突出的有益效果:
本发明通过采用dbDedup结合了部分索引和字节级delta压缩,可以实现比块级别压缩和基于块的dedup更高的压缩率,同时还可以提高内存效率;通过使用新颖的编码和缓存机制来避免访问delta编码记录所涉及的大量I/O开销。
通过几个真实的数据集用于评估dbDedup,它们代表了各种各样的数据库应用程序。我们通过创建时间戳对每个数据集进行排序,以生成写入跟踪,然后使用公共统计信息或已知的访问模式来生成读取跟踪,以模拟真实的工作负载。结果表明,dbDedup能够减少37倍的存储所需空间和用于网络复制服务传输的数据量,同时对DBMS性能的影响可忽略不计。在与块级压缩相结合的情况下,dbDedup提供了更显著的压缩优势,可以减少多达61倍的存储空间和网络复制传输量。
附图说明
图1是本发明dbDedup工作流程示意图;
图2是本发明dbDedup在分布式数据库中的应用示意图。
具体实施方式
下面将结合附图和实施例,对本发明作进一步详细说明。
一种基于dbDedup的分布式数据库存储通信压缩方法,所述方法实现的具体方案包括:
如图2所示,使用一个由一个客户端,一个主节点和一个次节点组成的简单分布式数据库,其中主节点处理写请求,并且以操作日志(oplog)批处理的形式异步将更新推送到次节点,dbDedup对于DBMS的主要操作:
插入:主节点将新记录写入其本地数据库,并将该记录追加到其oplog。每个操作日志条目都包括一个时间戳和一个包含插入记录的有效负载。当未同步的oplog条目的大小达到阈值时,主节点将它们批量发送到次节点。次节点接收更新,将更新附加到其本地操作日志,然后重置新的操作日志条目以更新其本地数据库。
使用dbDedup,主节点首先将新记录存储在其本地操作日志中。稍后,当准备存储记录或将其发送到副本时,如图1所示,dbDedup编码器按dedup步骤对其进行处理。如果dbDedup成功地从现有数据语料库中选择了相似记录,它将通过首先检查源记录高速缓存来检索相似记录的内容。如果发生高速缓存未命中,它将从基础存储中读取记录。然后,它将双向delta压缩应用于源记录和目标记录,以生成新记录的前向编码形式和相似记录的后向编码形式。dbDedup将新记录以其原始形式插入到主数据库中,并将向后编码的类似记录缓存在有损回写缓存中,直到系统I/O变得空闲为止。然后,dbDedup将前向编码的记录追加到主操作日志,该操作日志在副本同步期间传输到次操作日志。
在次节点上,DBMS的oplog同步器接收已编码的oplog条目并将其传播到dbDedup重新编码器。重新编码器首先通过从其本地数据库(或命中的源记录缓存)中读取基本相似记录并应用前向编码增量来对新记录进行解码。然后,delta使用新重建的新记录作为源来压缩相似记录,就像在原始记录中一样,并为相似记录生成相同的向后编码增量。最后,dbDedup将新记录写入次数据库,并将类似的记录更新为其delta编码形式。这些步骤确保次节点存储与主节点相同的数据。
dbDedup会为每个存储的记录维护一个引用计数,该记录将跟踪引用该记录作为解码基础的记录数。因为dbDedup使用向后编码进行数据库存储,所以插入后,新记录的引用计数将设置为1,而类似记录的引用计数将保持不变。相似记录的原始基准的引用计数(如果存在的话)减少1。
更新:更新后,dbDedup首先检查查询记录的引用计数。如果计数为零,这意味着没有其他记录可以引用该值进行解码,则dbDedup照常直接应用更新。否则,dbDedup保持当前记录不变,并将更新附加到该记录。这样做可确保将其他记录用作参考仍然可以成功解码。当引用计数达到0时,dbDedup将所有更新压缩到记录中,并将其替换为新数据。
dbDedup使用回写高速缓存来延迟增量编码的源记录的更新。为了防止它覆盖正常的客户端更新,dbDedup始终检查每个更新的高速缓存。如果找到具有相同ID的记录(以后再回写),它将使该条目无效并正常进行客户端更新。
删除:如果要删除的记录的参考计数为0,则删除将正常进行。否则,dbDedup将其标记为已删除,但保留其内容。任何客户端读取已删除的记录都会返回空结果,但仍可以用作解码。当一条记录的引用计数降至0时,dbDedup会将其从数据库中删除,并将其基本记录的引用计数减1。
读取:如果查询的记录是以原始格式存储的,则它会像通常情况一样直接发送给客户端。如果记录已编码,则dbDedup的解码器会将其恢复为原始格式,然后再返回给客户端。在解码期间,解码器从源记录高速缓存(或在高速缓存未命中的存储)中获取基本记录,并使用存储的增量重建查询的记录。如果基本记录本身已编码,则解码器会反复重复上述步骤,直到找到完整存储的基本记录为止。
垃圾回收:每条记录的引用计数确保在更新或删除时不会损坏编码链。为了促进垃圾收集,dbDedup会在读取时检查已删除的对象。具体地说,沿着解码路径,如果一条记录被视为已删除,则dbDedup会在其两个相邻记录之间创建一个增量,并将其引用计数减1。如果没有其他记录需要解码,则可以从数据库中安全删除该记录。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (9)
1.一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法基于dbDedup,使用基于相似性的dedup来同时实现良好的压缩率和较低的内存使用率,在为本地存储和远程复制准备更新的记录数据时使用的dedup编码工作流程,在插入或更新查询期间,将新记录写入本地操作日志,并通过dbDedup在后台将新纪录编码为关键路径之外的内容,所述方法实现步骤包括:
(1)从新记录中提取相似性特征;
(2)在dedup索引中查找数据库语料库中候选相似记录的列表;
(3)从候选中选择一个最佳记录;
(4)在新记录和类似记录之间执行增量压缩,以计算编码形式来进行本地存储和副本同步;
所述方法使用双向编码技术,将双向delta压缩应用于源记录和目标记录,以生成新记录的前向编码形式和相似记录的后向编码形式,实现步骤包括:
首先通过dbDedup重新编码器从本地数据库或命中的源记录缓存中读取基本相似记录并应用前向编码增量来对新记录进行解码;
然后,使用delta将新重建的新记录作为源来压缩相似记录并为相似记录生成相同的向后编码增量;
最后,通过dbDedup将新记录写入次数据库,并将类似的记录更新为delta编码形式。
2.根据权利要求1所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法使用跳编码技术来减少最坏情况的源检索,以读取编码的记录,实现步骤包括:
首先,通过一个dedup调控器监视运行时压缩率,并自动禁用对受益不足的数据库的dedup;
其次,基于记录大小,过滤器针对较小的记录自适应地跳过dedup。
3.根据权利要求2所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法通过dbDedup在给定的编码链中缓存关键节点,提高存效率,同时消除用于访问编码记录的大多数I/O开销,其中缓存关键节点包括:源记录高速缓存,它减少了编码期间的数据库读取次数;有损回写增量高速缓存,它减轻了由反向编码引起的写放大。
4.根据权利要求3所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述分布式数据库包括主节点和次节点,主节点以操作日志批处理的形式异步将更新推送到次节点,具体实现过程如下:
主节点将新记录写入其本地数据库,并将该记录追加到操作日志;每个操作日志条目都包括一个时间戳和一个包含插入记录的有效负载,当未同步的操作日志条目的大小达到阈值时,主节点将它们批量发送到次节点,次节点接收更新,将更新附加到其本地操作日志,然后重置新的操作日志条目以更新其本地数据库;
所述主节点将更新推送此节点的过程中,通过使用dbDedup,主节点首先将新记录存储在其本地操作日志中;
稍后,当准备存储记录或将其发送到副本时,dbDedup编码器按dedup步骤对其进行处理:
如果dbDedup成功地从现有数据语料库中选择了相似记录,它将通过首先检查源记录高速缓存来检索相似记录的内容;
如果发生高速缓存未命中,它将从基础存储中读取记录;
然后,它将双向delta压缩应用于源记录和目标记录,以生成新记录的前向编码形式和相似记录的后向编码形式:
dbDedup将新记录以其原始形式插入到主数据库中,并将向后编码的类似记录缓存在有损回写缓存中,直到系统I/O变得空闲为止;
然后,dbDedup将前向编码的记录追加到主操作日志,该操作日志在副本同步期间传输到次操作日志;
在次节点上,DBMS的操作日志同步器接收已编码的操作日志条目并将其传播到dbDedup重新编码器;
重新编码器首先通过从其本地数据库或命中的源记录缓存中读取基本相似记录并应用前向编码增量来对新记录进行解码;
然后,delta使用新重建的新记录作为源来压缩相似记录,并为相似记录生成相同的向后编码增量;
最后,dbDedup将新记录写入次数据库,并将类似的记录更新为其delta编码形式。
5.根据权利要求4所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述dbDedup编码器为每个存储的记录维护一个引用计数,该记录将跟踪引用该记录作为解码基础的记录数。
6.根据权利要求5所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法实现记录更新的过程包括:
更新后,dbDedup首先检查查询记录的引用计数,如果计数为零,这意味着没有其他记录可以引用该值进行解码,则dbDedup照常直接应用更新;
否则,dbDedup保持当前记录不变,并将更新附加到该记录;
当引用计数达到0时,dbDedup将所有更新压缩到记录中,并将其替换为新数据;
dbDedup使用回写高速缓存来延迟增量编码的源记录的更新,为了防止它覆盖正常的客户端更新,dbDedup始终检查每个更新的高速缓存,如果找到具有相同ID的记录,它将使该条目无效并正常进行客户端更新。
7.根据权利要求6所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法实现纪录删除测过程包括:
如果要删除的记录的参考计数为0,则删除将正常进行;
否则,dbDedup将其标记为已删除,但保留其内容;
任何客户端读取已删除的记录都会返回空结果,但仍可以用作解码;
当一条记录的引用计数降至0时,dbDedup会将其从数据库中删除,并将其基本记录的引用计数减1。
8.根据权利要求4-7任一所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法实现记录读取的过程包括:
如果查询的记录是以原始格式存储的,直接发送给客户端;
如果记录已编码,则dbDedup的解码器会将其恢复为原始格式,然后再返回给客户端;
在解码期间,解码器从源记录高速缓存或在高速缓存未命中的存储中获取基本记录,并使用存储的增量重建查询的记录;
如果基本记录本身已编码,则解码器会反复重复上述步骤,直到找到完整存储的基本记录为止。
9.根据权利要求8所述的一种基于dbDedup的分布式数据库存储通信压缩方法,其特征在于,所述方法实现记录垃圾回收的过程包括:
每条记录的引用计数确保在更新或删除时不会损坏编码链;
为了促进垃圾收集,dbDedup会在读取时检查已删除的对象:
沿着解码路径,如果一条记录被视为已删除,则dbDedup会在其两个相邻记录之间创建一个增量,并将其引用计数减1;
如果没有其他记录需要解码,则从数据库中安全删除该记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010709383.5A CN111858490B (zh) | 2020-07-22 | 2020-07-22 | 一种基于dbDedup的分布式数据库存储通信压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010709383.5A CN111858490B (zh) | 2020-07-22 | 2020-07-22 | 一种基于dbDedup的分布式数据库存储通信压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858490A CN111858490A (zh) | 2020-10-30 |
CN111858490B true CN111858490B (zh) | 2024-01-30 |
Family
ID=73001950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010709383.5A Active CN111858490B (zh) | 2020-07-22 | 2020-07-22 | 一种基于dbDedup的分布式数据库存储通信压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858490B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764989A (zh) * | 2021-01-12 | 2021-05-07 | 湖北宸威玺链信息技术有限公司 | 一种用于监控应用服务启停时间的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2660734A1 (en) * | 2012-04-30 | 2013-11-06 | Sap Ag | Deleting records in a multi-level storage architecture without record locks |
CN105190623A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 日志记录管理 |
CN108108476A (zh) * | 2018-01-03 | 2018-06-01 | 中科边缘智慧信息科技(苏州)有限公司 | 高可靠分布式日志系统的工作方法 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556396B2 (en) * | 2015-05-08 | 2023-01-17 | Seth Lytle | Structure linked native query database management system and methods |
-
2020
- 2020-07-22 CN CN202010709383.5A patent/CN111858490B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2660734A1 (en) * | 2012-04-30 | 2013-11-06 | Sap Ag | Deleting records in a multi-level storage architecture without record locks |
CN105190623A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 日志记录管理 |
CN108108476A (zh) * | 2018-01-03 | 2018-06-01 | 中科边缘智慧信息科技(苏州)有限公司 | 高可靠分布式日志系统的工作方法 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
Non-Patent Citations (2)
Title |
---|
列存储数据仓库中基于概率的保序字符串压缩方法;夏小玲;李海燕;王梅;;计算机研究与发展(第08期);全文 * |
基于协同缓存的分布式数据库更新机制研究;符青云;刘心松;;计算机工程(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111858490A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7058783B2 (en) | Method and mechanism for on-line data compression and in-place updates | |
CN101599091B (zh) | 用于存储器中数据压缩的基于内容的分段模式及包括等级分段表示的传输 | |
US9613043B2 (en) | Object deduplication and application aware snapshots | |
CN103177111B (zh) | 重复数据删除系统及其删除方法 | |
US8977597B2 (en) | Generating and applying redo records | |
US9201891B2 (en) | Storage system | |
CN1331058C (zh) | 将存储器压缩数据存储到存储器压缩磁盘上的方法 | |
CN101467148B (zh) | 利用了数据段的相似度的高效数据存储 | |
US8909605B1 (en) | Method and system for accelerating data movement using change information concerning difference between current and previous data movements | |
Xu et al. | Online deduplication for databases | |
US20170293450A1 (en) | Integrated Flash Management and Deduplication with Marker Based Reference Set Handling | |
US20110167221A1 (en) | System and method for efficiently creating off-site data volume back-ups | |
KR20220137632A (ko) | 데이터 관리 시스템 및 제어 방법 | |
WO2023082556A1 (zh) | 一种面向内存键值纠删码的混合数据更新方法及存储系统 | |
CN115774699B (zh) | 数据库共享字典压缩方法、装置、电子设备及存储介质 | |
CN111858490B (zh) | 一种基于dbDedup的分布式数据库存储通信压缩方法 | |
Xu et al. | Reducing replication bandwidth for distributed document databases | |
CN111831480B (zh) | 一种基于去重系统的分层编码方法、装置及去重系统 | |
US10769111B2 (en) | Data transformation of Cassandra files for improved deduplication during backup | |
US20240020277A1 (en) | Implementation for efficient log storage | |
Xu | Online Deduplication for Distributed Databases | |
Xu et al. | Similarity-based Deduplication for Databases | |
CN116962442A (zh) | 一种云计算数据高可用存储压缩方法 | |
Lee et al. | Data Compression Management Mechanism for Real-Time Main Memory Database Systems. | |
CN118069697A (zh) | 一种基于缓存优化的分布式数据库中的manifest实现的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |