首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是墓碑,压实和吸尘在蜂巢?

什么是墓碑,压实和吸尘在蜂巢?
EN

Stack Overflow用户
提问于 2017-07-19 22:09:32
回答 1查看 2K关注 0票数 1

墓碑、压实和抽真空在蜂巢中有什么区别?

我读到,压实/压实是一组后台进程,运行在亚稳态内,以支持酸性交易。他们负责蜂巢的垃圾收集/客房管理。

我的问题是:

  1. 墓碑清除蜂巢的目的是什么?
  2. 如何在我的生产系统中实现?
  3. 当数据以文件格式存储而没有缓存时,我们为什么需要垃圾收集?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 04:48:34

您问题中的术语在使用多版本并发控制策略管理并发的数据库系统中相当常见。在此策略中,数据更新和删除不会直接覆盖旧数据。相反,更新和删除会导致存储多个版本的数据(过时的版本和更新的版本)。其他并发运行的事务可以在继续查看其旧版本的数据的同时完成。

把这个和你的问题联系起来:

  1. 墓碑清除蜂巢的目的是什么?

"Tombstone“通常指调用者调用delete事务而不是实际删除底层数据时,将数据标记为”逻辑删除“。在随后的读取事务中,标记为墓碑的数据将被视为已删除(未找到)。这避免了对其他并发事务违反隔离属性,因为他们可以继续查看数据的早期版本。

“清除”通常指的是数据库系统扫描以前用墓碑标记的数据并将其物理删除的过程。物理删除通常会执行其他用户事务的异步执行,以获得更好的性能。Hive文档使用术语“压缩”来进行此活动。

  1. 如何在我的生产系统中实现?

Hive ACID事务在幕后实现了这些技术。您只需正确设置配置即可激活它。

  1. 当数据以文件格式存储而没有缓存时,我们为什么需要垃圾收集?

引用关于Hive事务的文档的基本设计部分:

HDFS不支持文件的就地更改.它也不提供读取的一致性,在与用户正在读取的文件附加的作者面前。为了在HDFS之上提供这些特性,我们遵循了在其他数据仓库工具中使用的标准方法。表或分区的数据存储在一组基本文件中。新记录、更新和删除存储在增量文件中。为每个事务创建了一组新的增量文件(在流代理(如Flume或Storm )的情况下,每一批事务)都会更改表或分区。在读取时,读取器合并基文件和增量文件,在读取时应用任何更新和删除。

此外,引用关于Delta文件压缩的部分

随着操作修改表,越来越多的增量文件被创建,需要压缩以保持足够的性能。

总之,Hive事务的实现在HDFS中生成基本文件和增量文件,但是许多小的增量文件可能会影响性能,因此需要垃圾收集过程(压缩)来将小的增量文件合并到一起。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45201869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档