CHANGELOG.md 10.0 KB
Newer Older
L
linyuanjin 已提交
1
## CHANGELOG
Z
ZhaoMing 已提交
2

Z
ZhaoMing 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
### 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

19
### 2020-12-11
20 21
- v1.3.2
- Release Note
Z
ZhaoMing 已提交
22 23
  - [Stats] Release TerarkDB as a public project
  - [Stats] Code refine & docs improvement etc.
24 25 26 27

### 2020-09-18
- v1.2.12
- Release Note
Z
ZhaoMing 已提交
28 29
  - [Feature] Add `DBOptions::max_wal_size` for WAL size control
  - [Feature] Add DisableTruncate/EnableTruncate API for SstFileManager
30
    - Allow users disablng `DeleteScheduler`'s `Truncate` function
Z
ZhaoMing 已提交
31 32
  - [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
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

### 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
Z
ZhaoMing 已提交
61
  - [Bug Fix] Bad pointer ReadOptions::tailing true BUG
62 63 64 65 66
  - [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
Z
ZhaoMing 已提交
67 68 69 70 71 72
- 版本号:v1.2.8
- 发版说明:
  - 计划内例行发版
- 功能变更:
  - 预创建指定个 WAL 文件,将创建 WAL 文件的逻辑从锁内移动到后台线程,降低写入长尾
  - 让描述 LSM 树拓补关系的 SST 文件常驻内存,降低读取长尾
Z
ZhaoMing 已提交
73
  - 增加 WriteBufferFlushPri 选项,对多 CF 支持更r友好
Z
ZhaoMing 已提交
74 75 76 77 78 79 80
- 修复问题:
  - 修复 LOG 中输出的 Flush 信息未包含 Key Value 分离 Blob 信息的问题
  - 修复 Feature 冲突导致数据集损坏的问题,不能同时启用下面的 Feature
    - TerarkZipTable 开启 SecondPassIter 支持
    - 开启 Key Value 分离
    - 在 CompactionFilter 中改变了 Value 或 MergeOperator 结果不稳定

Z
ZhaoMing 已提交
81 82 83 84 85 86 87 88 89 90 91 92
- 版本号:v1.2.7
- 日期:2020-05-15
- 发版说明:
  - 计划内例行发版
- 功能变更:
  - 新增 ValueMetaExtractor 用来获取 Value 的元数据
    - CompactionFilter::FilterV2 接口增加 Value 元数据参数
    - 解决 Key Value 分离后 CompactionFilter 成本过高的问题
  - GetPropertiesOfTablesInRange 增加 include_blob 参数
- 修复问题:
  - 修复 BlockBasedTable 工作在 mmap 模式下有潜在的 OOM Kill 风险的问题

93 94 95 96 97
- 版本号:v1.2.6
- 日期:2020-04-29
- 发版说明:
  - 计划内例行发版
- 功能变更:
98
  - Key Value 分离实现优化,更早的分离大 Value,降低 GC 压力
99 100 101 102 103 104 105 106 107 108 109 110 111 112
  - 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 风险

Z
ZhaoMing 已提交
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
- 版本号: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 读取数据错误的问题
    - https://github.com/facebook/rocksdb/issues/6666
  - 修复 Lazy Level Compaction 在数据量很少时出现"松树"形 LSM 树的问题
  - 修复后台 Domain Socket 退出问题导致 DB 关闭卡住的问题
  - 修复后台 GC 任务导致排他性手动 Compact 被阻塞的问题
  - 修复 AdaptiveTableFactory 输出配置被截断的问题

Z
ZhaoMing 已提交
131
- 版本号:v1.2.4
Z
ZhaoMing 已提交
132
- 日期:2020-03-26
Z
ZhaoMing 已提交
133 134 135 136 137 138
- 发版说明:
  - 计划内例行发版
- 功能变更:
  - 丰富 Key Value 分离相关配置
- 修复问题:
  - 修复 checksum level 为 2 时启动过慢的问题
139
  - 修复 ColumnFamily 数据删空后 CompactionPicker 内存越界的问题
Z
ZhaoMing 已提交
140 141
  - 修复 CompactionFilter 非幂等时,有概率残留部分被过滤掉的 Key 的问题
    - 开启 KV 分离,或使用 BlockBasedTable 不受影响
Z
ZhaoMing 已提交
142 143 144 145 146 147
- 已知问题:
  - 从 RocksDB 迁移,若使用了 RangeDeletion,有可能丢失部分数据
    - 未使用 RangeDeletion 则不受影响
    - 实现方式有差异,未做完兼容。整库 Compact 消除 RangeDeletion 后迁移即可
  - 极低概率后台 Compact 触发异常导致 Write 失败,如果出现请保留现场,联系@zhaoming.274

赵明 已提交
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
- 版本号:v1.2.3
- 日期:2020-03-05
- 发版说明:
  - 计划内例行发版
- 功能变更:
  - 增加 Flink 相关适配
  - Metrics 汇报写入流量
- 修复问题:
  - 修复 Metrics 占用资源过高的问题 
  - 修复 PORTABLE 构建时 CRC32 不使用硬件加速的问题
  - 修复开启 ASAN 时 NestLoudsTrie 构建触发警告的问题
- 已知问题:
  - 重启或长时间运行,会出现若干 hugepage warning
  - 极低概率后台 Compact 触发异常导致 Write 失败,如果出现请保留现场,联系@zhaoming.274

Z
ZhaoMing 已提交
163 164 165 166 167 168 169 170
- 版本号:v1.2.2
- 日期:2020-02-13
- 发版说明:
  - 计划内例行发版
- 功能变更:
  -
- 修复问题:
  - 修复 MapSstIterator 触发断言的问题
Z
ZhaoMing 已提交
171
  - 修复 DictZipBlobStore 校验级别为 2 时,写入空数据导致宕机的问题
Z
ZhaoMing 已提交
172 173 174 175 176
  - 核心库为 MixedLenBlobStore 增加更严格的校验
- 已知问题:
  - 重启或长时间运行,会出现若干 hugepage warning
  - 极低概率后台 Compact 触发异常导致 Write 失败,如果出现请保留现场,联系@zhaoming.274

Z
ZhaoMing 已提交
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
- 版本号:v1.2.1
- 日期:2020-02-06
- 发版说明:
  - 本版本为预览版发布,旨在进行第一次正式发布演练,请给位同学严格执行测试流程
  - 下一次版本发布会在一周之后正式进行
- 功能变更:
  - 实现 KeyValue 分离存储
  - 移除 BlobDB 的支持
  - 增加 LazyBuffer 系列接口
  - 移除 PinnableSlice 系列接口
- 修复问题:
  - 修复 NestLoudsTrie 的 Rank 接口错误
  - 修复 SubCompaction 导致 CPU 资源使用过度的问题
  -`VersionBuilder::SaveTo` 逻辑移出锁外
  - 修复手动 Compact 导致宕机的问题
  - 修复 BlockBasedTable 与 RangeDeletion 同时使用导致内存泄露的问题
  - 修复信息上报 API 的数据错误
- 已知问题:
Z
ZhaoMing 已提交
195
  - 重启或长时间运行,会出现若干 hugepage warning
Z
ZhaoMing 已提交
196 197 198 199
  - 使用了 PinnableSlice、MergeOperator、CompactionFilter 的接口可能需要少许代码修改完成迁移
    - 后续版本提供有少许性能损失的平滑迁移
  - 因为不再支持 BlobDB,自此版本发布后,所有使用了 BlobDB 的实例无法迁移至此版本

陈常龙 已提交
200 201 202 203 204
2020-01-07
- Fix fake assertion of universal compaction picker
- Refine lazy level compaction pick size
- Refine database statistics report relevance

Z
ZhaoMing 已提交
205 206 207 208 209 210 211
2020-01-05
- Remove terark index build pipeline
- Fix PatriciaTrieMemTable bugs

2019-12-30
- Refactor terark env logic

L
linyuanjin 已提交
212
2019-12-29
Z
ZhaoMing 已提交
213
- Level based lazy compaction dev completed
L
linyuanjin 已提交
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
- 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