zoukankan      html  css  js  c++  java
  • Kudu-压缩

    随着时间的推移,tablet会积累许多DiskRowSets,并且会在行更新时累积很多增量重做(REDO)文件。当插入一个关键字时,为了强制执行主关键字唯一性,Kudu会针对RowSets查询一组布隆过滤器,来找到可能包含该关键字的Rowset。越多的布隆过滤器检查及随后的DiskRowSet搜索,写入操作就会变得越慢。随着更多DiskRowSets的积累,必须采取措施确保写入性能不会下降。此外,随着每个RowSet累积更多的重做(REDO)增量文件,为了将基础数据转换为行的最新版本,需要执行更多的工作扫描。这意味着如果不采取任何行动,读取性能也会随时间而下降。Kudu可以通过执行压缩功能来处理这些问题,其中包括三种类型的压缩:

    • 微小增量压缩(Minor delta compaction)

      可以在不会触及基础数据的前提下,通过将增量文件合并在一起以减少文件的数量。其结果是读取操作必须寻求更少的增量文件来生成当前版本的行。

    • 重大增量压缩(Major delta compaction)

      将重做(REDO)记录迁移到撤销(UNDO)记录中,并更新基础数据。考虑到大多数读取将读取最近的快照(从基础数据的时间向前计算),并且基础数据将以最有效的方式进行存储(被编码和压缩),最小化重做(REDO)记录存储的数量可以获得更有效的读取。在重大压缩期间,行的重做(REDO)记录可以合并到基础数据中,并替换为包含先前版本行的等效的撤销(UNDO)记录集。可以对列的任何子集执行重大压缩,因此如果某列与其他列相比收到更多的更新,就可以在单个列上执行压缩,通过避免重写未更改的数据以减少重大增量压缩的I / O。

    • 行集合压缩(RowSet compaction)

      可以将范围内重叠的行集合(RowSets)组合在一起,从而生成更少的行集合(RowSets),从而加快写入速度。

  • 相关阅读:
    RabbitMQ修改端口号和心跳时间
    RabbitMQ常用命令行
    机票分页存储过程!
    Sql Server随机取数据
    Entity framewok 如何实现多条记录作为一条取出, for xml path如何实现
    AJAX请求时status返回状态明细表 readyState的五种状态
    最小化到托盘,右键退出
    post注入及提权思路
    MySQL提权之user.MYD中hash破解方法
    鸡肋提权之变态root利用
  • 原文地址:https://www.cnblogs.com/niutao/p/10555677.html
Copyright © 2011-2022 走看看