Skip to content

Latest commit

 

History

History
258 lines (227 loc) · 9.99 KB

CHANGELOG.md

File metadata and controls

258 lines (227 loc) · 9.99 KB

CHANGELOG

2020-02-08

  • v1.4.0
  • Release Note
    • [Feature] Better TTL Support
      • Support TtlExtractor
      • add cf opt ttl_gc_ratio & ttl_max_scan_gap
    • [Feature] CompactionFilter adds is_bottommost_level
    • [Feature] Add Comparator::IsAlias for compatibility
    • [Feature] Add DiagnosableLRUCache for debugging
    • [Stats] Disable LazyCompaction by default
    • [Bug Fix] Fix DeleteFile multiple deletion bug
    • [Bug Fix] Fix TransactionDB Open infinity loop bug
    • [Bug Fix] Fix manual compaction bug when enable LazyCompaction
    • [Bug Fix] Fix Patricia Trie memtable crash when doing cocurrent writes
    • [Bug Fix] Fix exclusive manual compaction wait gc bug

2020-12-11

  • v1.3.2
  • Release Note
    • [Stats] Release TerarkDB as a public project
    • [Stats] Code refine & docs improvement etc.

2020-09-18

  • v1.2.12
  • Release Note
    • [Feature] Add DBOptions::max_wal_size for WAL size control
    • [Feature] Add DisableTruncate/EnableTruncate API for SstFileManager
      • Allow users disablng DeleteScheduler's Truncate function
    • [Bug Fix] Fix the calculation of used space in SstFileManager(not accurate) after enabling KV separetion
    • [Bug Fix] Fix memory usage problem uder multi-CF

2020-08-28

  • v1.2.11
  • Release Note
    • [Bug Fix] Large WAL deletion triggers latency spike due to IO content
    • [Bug Fix] Move lots of code outside db mutex lock for better performance when SST file number is huge.
    • [Bug Fix] DumpStats cost too much time inside mutex when there are too many CFs

2020-08-07

  • v1.2.10
  • Release Note:
    • [Bug Fix] WAL may corruput when enabling prepare_log_writer_num
    • [Bug Fix] WalManager::GetUpdatesSince
    • [Bug Fix] Dirty Read problem after enabling MemTable InplaceUpdate

2020-07-24

  • v1.2.9
  • Release Note:
    • [Performance] Optimize comparator performance in SkipList MemTable
    • [Performance] Reduce memory copies in lots of place, reduce value reading cost
    • [Feature] Add a new PatriciaTrie MemTable for better performance
    • [Feature] Add avoid_unnecessary_blocking_io, reduce tail lantency
    • [Feature] Refactor ValueMetaExtractor, allow users to extract Key and CF_ID
    • [Build] Change to CMake build
    • [Stats] Add Avg and Max latency for Metrics module
    • [Bug Fix] Reduce mutex cost in VersionBuilder which triggers latency spike
    • [Bug Fix] Deletion of Iterators trigger latency spike in some cases
    • [Bug Fix] Mutex costs too much during background directory scanning
    • [Bug Fix] Bad pointer ReadOptions::tailing true BUG
    • [Bug Fix] Lifcycle management of Promise may crash application in some cases
    • [Bug Fix] WAL creation in background may trigger write stop
    • [Bug Fix] Empty Value reading may fail in some cases

2020-06-04

  • 版本号:v1.2.8

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

    • 预创建指定个 WAL 文件,将创建 WAL 文件的逻辑从锁内移动到后台线程,降低写入长尾
    • 让描述 LSM 树拓补关系的 SST 文件常驻内存,降低读取长尾
    • 增加 WriteBufferFlushPri 选项,对多 CF 支持更r友好
  • 修复问题:

    • 修复 LOG 中输出的 Flush 信息未包含 Key Value 分离 Blob 信息的问题
    • 修复 Feature 冲突导致数据集损坏的问题,不能同时启用下面的 Feature
      • TerarkZipTable 开启 SecondPassIter 支持
      • 开启 Key Value 分离
      • 在 CompactionFilter 中改变了 Value 或 MergeOperator 结果不稳定
  • 版本号:v1.2.7

  • 日期:2020-05-15

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

    • 新增 ValueMetaExtractor 用来获取 Value 的元数据
      • CompactionFilter::FilterV2 接口增加 Value 元数据参数
      • 解决 Key Value 分离后 CompactionFilter 成本过高的问题
    • GetPropertiesOfTablesInRange 增加 include_blob 参数
  • 修复问题:

    • 修复 BlockBasedTable 工作在 mmap 模式下有潜在的 OOM Kill 风险的问题
  • 版本号:v1.2.6

  • 日期:2020-04-29

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

    • Key Value 分离实现优化,更早的分离大 Value,降低 GC 压力
    • TerarkZipTable 配置深度集成,支持所有原版 RocksDB 的配置方式
    • LazyLevelCompaction 增大 SST 中 Tombstone 的下推权重,更快回收存储空间
  • 修复问题:

    • 修复使用 TerarkZipTable 可能导致 OOM Kill 的问题
    • 修复开启 Key Value 分离之后的一系列问题:
      • 修复返回用户的 Properties 未包含对应 Blob SST 的问题
      • 修复估算数据信息未包含 Blob SST 的问题
      • 修复 LSM 树过小导致空间回收不及时的问题
      • 修复大量删除数据有风险反复触发无效 GC 的问题
    • 修复继承原版 RocksDB 数据后开启 Key Value 分离后空间泄露的问题
    • 修复 Metrics 汇报长尾错误的问题
  • 已知问题:

    • BlockBasedTable 工作在 mmap 模式下有潜在的 OOM Kill 风险
  • 版本号:v1.2.5

  • 日期:2020-04-10

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

    • 增加 pin_table_properties_in_reader 选项,降低 TableProperties 内存占用
    • 增加 max_task_per_thread 选项,支持单线程运行多个 Compaction/GC 任务
    • 支持内嵌 jemalloc,make 参数增加 USE_JEMALLOC=1 启用
    • ZipOffsetBlobStore 新增 ZSTD 算法支持
  • 修复问题:

    • 修复从 RocksDB 迁移,若使用了 RangeDeletion,有可能丢失部分数据的问题
    • 修复 Ingest SST 读取数据错误的问题
    • 修复 Lazy Level Compaction 在数据量很少时出现"松树"形 LSM 树的问题
    • 修复后台 Domain Socket 退出问题导致 DB 关闭卡住的问题
    • 修复后台 GC 任务导致排他性手动 Compact 被阻塞的问题
    • 修复 AdaptiveTableFactory 输出配置被截断的问题
  • 版本号:v1.2.4

  • 日期:2020-03-26

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

    • 丰富 Key Value 分离相关配置
  • 修复问题:

    • 修复 checksum level 为 2 时启动过慢的问题
    • 修复 ColumnFamily 数据删空后 CompactionPicker 内存越界的问题
    • 修复 CompactionFilter 非幂等时,有概率残留部分被过滤掉的 Key 的问题
      • 开启 KV 分离,或使用 BlockBasedTable 不受影响
  • 已知问题:

    • 从 RocksDB 迁移,若使用了 RangeDeletion,有可能丢失部分数据
      • 未使用 RangeDeletion 则不受影响
      • 实现方式有差异,未做完兼容。整库 Compact 消除 RangeDeletion 后迁移即可
    • 极低概率后台 Compact 触发异常导致 Write 失败,如果出现请保留现场,联系@zhaoming.274
  • 版本号:v1.2.3

  • 日期:2020-03-05

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

    • 增加 Flink 相关适配
    • Metrics 汇报写入流量
  • 修复问题:

    • 修复 Metrics 占用资源过高的问题
    • 修复 PORTABLE 构建时 CRC32 不使用硬件加速的问题
    • 修复开启 ASAN 时 NestLoudsTrie 构建触发警告的问题
  • 已知问题:

    • 重启或长时间运行,会出现若干 hugepage warning
    • 极低概率后台 Compact 触发异常导致 Write 失败,如果出现请保留现场,联系@zhaoming.274
  • 版本号:v1.2.2

  • 日期:2020-02-13

  • 发版说明:

    • 计划内例行发版
  • 功能变更:

  • 修复问题:

    • 修复 MapSstIterator 触发断言的问题
    • 修复 DictZipBlobStore 校验级别为 2 时,写入空数据导致宕机的问题
    • 核心库为 MixedLenBlobStore 增加更严格的校验
  • 已知问题:

    • 重启或长时间运行,会出现若干 hugepage warning
    • 极低概率后台 Compact 触发异常导致 Write 失败,如果出现请保留现场,联系@zhaoming.274
  • 版本号:v1.2.1

  • 日期:2020-02-06

  • 发版说明:

    • 本版本为预览版发布,旨在进行第一次正式发布演练,请给位同学严格执行测试流程
    • 下一次版本发布会在一周之后正式进行
  • 功能变更:

    • 实现 KeyValue 分离存储
    • 移除 BlobDB 的支持
    • 增加 LazyBuffer 系列接口
    • 移除 PinnableSlice 系列接口
  • 修复问题:

    • 修复 NestLoudsTrie 的 Rank 接口错误
    • 修复 SubCompaction 导致 CPU 资源使用过度的问题
    • VersionBuilder::SaveTo 逻辑移出锁外
    • 修复手动 Compact 导致宕机的问题
    • 修复 BlockBasedTable 与 RangeDeletion 同时使用导致内存泄露的问题
    • 修复信息上报 API 的数据错误
  • 已知问题:

    • 重启或长时间运行,会出现若干 hugepage warning
    • 使用了 PinnableSlice、MergeOperator、CompactionFilter 的接口可能需要少许代码修改完成迁移
      • 后续版本提供有少许性能损失的平滑迁移
    • 因为不再支持 BlobDB,自此版本发布后,所有使用了 BlobDB 的实例无法迁移至此版本

2020-01-07

  • Fix fake assertion of universal compaction picker
  • Refine lazy level compaction pick size
  • Refine database statistics report relevance

2020-01-05

  • Remove terark index build pipeline
  • Fix PatriciaTrieMemTable bugs

2019-12-30

  • Refactor terark env logic

2019-12-29

  • Level based lazy compaction dev completed
  • Add Redis-protocol OPS Console

2019-12-16

  • Use new Compaction Style = Level
  • Fix few issues
  • Enable commit in the middle by default

2019-12-09

  • Fix TerarkDB iterator.seek_prev bug, may cause data corruption.

2019-12-04

  • Improvement: remove useless compaction

2019-12-03

  • Add metrics for grafana on storage engine level

2019-12-02

  • Update TerarkDB for better compaction

2019-11-28

  • Fix TerarkDB bug: sstable map may lose some data

2019-11-08

  • Add KV Seperation for LSM, for better compaction performance
  • Bug fix

2019-11-05

  • Fix rocksdb's super version bug, which may cause merge operator gets wrong value.
  • Fix terarkdb's kv seperation bug
  • Add more test cases in terark-core

2019-09-26

  • Fix LocalTempDir is not set correctly

2019-09-12

  • Update TerarkDB, refine build script

2019-08-29

  • 解决 MEMTABLE FLUSH CRASH 问题,这是由一个手误引入的 BUG

2019-08-28

  • Fix Bug: 解决 TerarkDB OOM 的问题

2019-08-21

  • add co-routina by using boost fiber