@nxtedition/rocksdb 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/BUILDING.md +12 -4
  2. package/binding.cc +2 -0
  3. package/deps/rocksdb/rocksdb/CMakeLists.txt +9 -0
  4. package/deps/rocksdb/rocksdb/Makefile +16 -5
  5. package/deps/rocksdb/rocksdb/TARGETS +23 -2
  6. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  7. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  8. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  9. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  10. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  11. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  12. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  13. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  14. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  15. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  16. package/deps/rocksdb/rocksdb/db/builder.cc +12 -4
  17. package/deps/rocksdb/rocksdb/db/c.cc +26 -0
  18. package/deps/rocksdb/rocksdb/db/c_test.c +3 -0
  19. package/deps/rocksdb/rocksdb/db/column_family.cc +8 -2
  20. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +29 -6
  21. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +8 -2
  22. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +16 -4
  23. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +2 -1
  24. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +16 -0
  25. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +402 -30
  26. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +2 -12
  27. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +14 -0
  28. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +7 -5
  29. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
  30. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +33 -7
  31. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
  32. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
  33. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +8 -1
  34. package/deps/rocksdb/rocksdb/db/db_options_test.cc +16 -0
  35. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +14 -15
  36. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
  37. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +5 -0
  38. package/deps/rocksdb/rocksdb/db/db_test.cc +16 -0
  39. package/deps/rocksdb/rocksdb/db/db_test2.cc +221 -92
  40. package/deps/rocksdb/rocksdb/db/db_test_util.cc +6 -2
  41. package/deps/rocksdb/rocksdb/db/db_test_util.h +4 -2
  42. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +1 -171
  43. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
  44. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
  45. package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
  46. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +57 -0
  47. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +13 -2
  48. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
  49. package/deps/rocksdb/rocksdb/db/flush_job.cc +10 -11
  50. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +11 -1
  51. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
  52. package/deps/rocksdb/rocksdb/db/repair.cc +12 -1
  53. package/deps/rocksdb/rocksdb/db/repair_test.cc +32 -10
  54. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
  55. package/deps/rocksdb/rocksdb/db/table_cache.cc +19 -127
  56. package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
  57. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
  58. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +130 -128
  59. package/deps/rocksdb/rocksdb/db/version_edit.cc +20 -0
  60. package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
  61. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
  62. package/deps/rocksdb/rocksdb/db/version_set.cc +205 -212
  63. package/deps/rocksdb/rocksdb/db/version_set.h +11 -0
  64. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
  65. package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
  66. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +2 -0
  67. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
  68. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +15 -0
  69. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
  70. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +43 -21
  71. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
  72. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +23 -27
  73. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +2 -3
  74. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
  75. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +14 -1
  76. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  77. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +17 -0
  78. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
  79. package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
  80. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
  81. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -0
  82. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +1 -1
  83. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -0
  84. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
  85. package/deps/rocksdb/rocksdb/options/cf_options.cc +13 -0
  86. package/deps/rocksdb/rocksdb/options/db_options.cc +8 -0
  87. package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
  88. package/deps/rocksdb/rocksdb/options/options.cc +7 -0
  89. package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
  90. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -4
  91. package/deps/rocksdb/rocksdb/options/options_test.cc +107 -9
  92. package/deps/rocksdb/rocksdb/src.mk +4 -1
  93. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +9 -4
  94. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +80 -6
  95. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
  96. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +81 -757
  97. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
  98. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
  99. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
  100. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +2 -1
  101. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +8 -0
  102. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -10
  103. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
  104. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
  105. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
  106. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
  107. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
  108. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
  109. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -2
  110. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +2 -1
  111. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
  112. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +60 -2
  113. package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
  114. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
  115. package/deps/rocksdb/rocksdb/table/multiget_context.h +46 -2
  116. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
  117. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
  118. package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
  119. package/deps/rocksdb/rocksdb/table/unique_id.cc +27 -0
  120. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +3 -0
  121. package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -0
  122. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +23 -7
  123. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +9 -1
  124. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
  125. package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
  126. package/deps/rocksdb/rocksdb/util/compression.h +49 -0
  127. package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
  128. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
  129. package/deps/rocksdb/rocksdb.gyp +16 -15
  130. package/package-lock.json +23687 -0
  131. package/package.json +2 -30
  132. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  133. package/prebuilds/darwin-x64/node.napi.node +0 -0
  134. package/prebuilds/linux-x64/node.napi.node +0 -0
  135. package/deps/liburing/liburing/README +0 -46
  136. package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
  137. package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
  138. package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
  139. package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
  140. package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
  141. package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
  142. package/deps/liburing/liburing/test/Makefile +0 -312
  143. package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
  144. package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
  145. package/deps/liburing/liburing/test/accept-link.c +0 -251
  146. package/deps/liburing/liburing/test/accept-reuse.c +0 -164
  147. package/deps/liburing/liburing/test/accept-test.c +0 -79
  148. package/deps/liburing/liburing/test/accept.c +0 -476
  149. package/deps/liburing/liburing/test/across-fork.c +0 -283
  150. package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
  151. package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
  152. package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
  153. package/deps/liburing/liburing/test/close-opath.c +0 -122
  154. package/deps/liburing/liburing/test/config +0 -10
  155. package/deps/liburing/liburing/test/connect.c +0 -398
  156. package/deps/liburing/liburing/test/cq-full.c +0 -96
  157. package/deps/liburing/liburing/test/cq-overflow.c +0 -294
  158. package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
  159. package/deps/liburing/liburing/test/cq-ready.c +0 -94
  160. package/deps/liburing/liburing/test/cq-size.c +0 -58
  161. package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
  162. package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
  163. package/deps/liburing/liburing/test/defer.c +0 -307
  164. package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
  165. package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
  166. package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
  167. package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
  168. package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
  169. package/deps/liburing/liburing/test/eventfd.c +0 -112
  170. package/deps/liburing/liburing/test/fadvise.c +0 -202
  171. package/deps/liburing/liburing/test/fallocate.c +0 -249
  172. package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
  173. package/deps/liburing/liburing/test/file-register.c +0 -843
  174. package/deps/liburing/liburing/test/file-update.c +0 -173
  175. package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
  176. package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
  177. package/deps/liburing/liburing/test/fixed-link.c +0 -90
  178. package/deps/liburing/liburing/test/fsync.c +0 -224
  179. package/deps/liburing/liburing/test/hardlink.c +0 -136
  180. package/deps/liburing/liburing/test/helpers.c +0 -135
  181. package/deps/liburing/liburing/test/helpers.h +0 -67
  182. package/deps/liburing/liburing/test/io-cancel.c +0 -537
  183. package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
  184. package/deps/liburing/liburing/test/io_uring_register.c +0 -664
  185. package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
  186. package/deps/liburing/liburing/test/iopoll.c +0 -366
  187. package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
  188. package/deps/liburing/liburing/test/lfs-openat.c +0 -273
  189. package/deps/liburing/liburing/test/link-timeout.c +0 -1107
  190. package/deps/liburing/liburing/test/link.c +0 -496
  191. package/deps/liburing/liburing/test/link_drain.c +0 -229
  192. package/deps/liburing/liburing/test/madvise.c +0 -195
  193. package/deps/liburing/liburing/test/mkdir.c +0 -108
  194. package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
  195. package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
  196. package/deps/liburing/liburing/test/nop.c +0 -115
  197. package/deps/liburing/liburing/test/open-close.c +0 -146
  198. package/deps/liburing/liburing/test/openat2.c +0 -240
  199. package/deps/liburing/liburing/test/personality.c +0 -204
  200. package/deps/liburing/liburing/test/pipe-eof.c +0 -81
  201. package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
  202. package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
  203. package/deps/liburing/liburing/test/poll-cancel.c +0 -135
  204. package/deps/liburing/liburing/test/poll-link.c +0 -227
  205. package/deps/liburing/liburing/test/poll-many.c +0 -208
  206. package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
  207. package/deps/liburing/liburing/test/poll-ring.c +0 -48
  208. package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
  209. package/deps/liburing/liburing/test/poll.c +0 -109
  210. package/deps/liburing/liburing/test/probe.c +0 -137
  211. package/deps/liburing/liburing/test/read-write.c +0 -876
  212. package/deps/liburing/liburing/test/register-restrictions.c +0 -633
  213. package/deps/liburing/liburing/test/rename.c +0 -134
  214. package/deps/liburing/liburing/test/ring-leak.c +0 -173
  215. package/deps/liburing/liburing/test/ring-leak2.c +0 -249
  216. package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
  217. package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
  218. package/deps/liburing/liburing/test/runtests.sh +0 -170
  219. package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
  220. package/deps/liburing/liburing/test/self.c +0 -91
  221. package/deps/liburing/liburing/test/send_recv.c +0 -291
  222. package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
  223. package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
  224. package/deps/liburing/liburing/test/shared-wq.c +0 -84
  225. package/deps/liburing/liburing/test/short-read.c +0 -75
  226. package/deps/liburing/liburing/test/shutdown.c +0 -163
  227. package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
  228. package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
  229. package/deps/liburing/liburing/test/socket-rw.c +0 -147
  230. package/deps/liburing/liburing/test/splice.c +0 -511
  231. package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
  232. package/deps/liburing/liburing/test/sq-full.c +0 -45
  233. package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
  234. package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
  235. package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
  236. package/deps/liburing/liburing/test/sq-space_left.c +0 -159
  237. package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
  238. package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
  239. package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
  240. package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
  241. package/deps/liburing/liburing/test/statx.c +0 -172
  242. package/deps/liburing/liburing/test/stdout.c +0 -232
  243. package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
  244. package/deps/liburing/liburing/test/submit-reuse.c +0 -239
  245. package/deps/liburing/liburing/test/symlink.c +0 -116
  246. package/deps/liburing/liburing/test/teardowns.c +0 -58
  247. package/deps/liburing/liburing/test/thread-exit.c +0 -131
  248. package/deps/liburing/liburing/test/timeout-new.c +0 -246
  249. package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
  250. package/deps/liburing/liburing/test/timeout.c +0 -1354
  251. package/deps/liburing/liburing/test/unlink.c +0 -111
  252. package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
  253. package/deps/rocksdb/rocksdb/README.md +0 -32
  254. package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
  255. package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
  256. package/deps/rocksdb/rocksdb/port/README +0 -10
  257. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
package/BUILDING.md CHANGED
@@ -1,10 +1,18 @@
1
1
  # LINUX
2
2
 
3
3
  - Run `./configure` in `deps/liburing`.
4
- - Clone and build zstd with `CFLAGS="-O3 -fPIC" make -C lib libzstd.a` and copy `libzstd.a` to `/usr/lib/x86_64-linux-gnu/libzstd_pic.a`.
5
- - Put zstd headers at `/usr/lib/x86_64-linux-gnu/include`.
4
+ - Update package lib, `apt-get update`.
5
+ - Update gcc, `apt-get upgrade gcc`.
6
+ - Clone and build zstd with `CFLAGS="-O3 -fPIC" make -C lib libzstd.a`
7
+ - Copy `libzstd.a` to `/usr/lib/x86_64-linux-gnu`.
8
+ - Copy headers to `/usr/lib/x86_64-linux-gnu/include`.
9
+ - Clone and build folly with `python3 ./build/fbcode_builder/getdeps.py build --no-tests --extra-cmake-defines='{"CMAKE_CXX_FLAGS": "-fPIC"}'`
10
+ - Copy `libfolly.a` to `/usr/lib/x86_64-linux-gnu`.
11
+ - Copy headers to `/usr/lib/x86_64-linux-gnu/include`.
12
+ - Copy boost headers from folly scratchpad to `/usr/lib/x86_64-linux-gnu/include`.
13
+ - `npx prebuildify -t -t 17.8.0 --napi --strip --arch x64`
6
14
 
7
15
  # OSX
8
16
 
9
- - Run `./configure` in `deps/liburing`.
10
- - `brew install zstd@1.5.2`
17
+ - `brew install zstd`
18
+ - `npx prebuildify -t -t 17.8.0 --napi --strip --arch x64`
package/binding.cc CHANGED
@@ -446,6 +446,7 @@ struct BaseIterator {
446
446
  }
447
447
  options.fill_cache = fillCache_;
448
448
  options.snapshot = snapshot_.get();
449
+ options.async_io = true;
449
450
 
450
451
  iterator_.reset(database_->db_->NewIterator(options));
451
452
  }
@@ -790,6 +791,7 @@ struct GetManyWorker final : public Worker {
790
791
  rocksdb::ReadOptions options;
791
792
  options.fill_cache = fillCache_;
792
793
  options.snapshot = snapshot_.get();
794
+ options.async_io = true;
793
795
 
794
796
  const auto numKeys = keys_.size();
795
797
 
@@ -796,6 +796,7 @@ set(SOURCES
796
796
  trace_replay/trace_record_result.cc
797
797
  trace_replay/trace_record.cc
798
798
  trace_replay/trace_replay.cc
799
+ util/async_file_reader.cc
799
800
  util/cleanable.cc
800
801
  util/coding.cc
801
802
  util/compaction_job_stats_impl.cc
@@ -1128,6 +1129,12 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
1128
1129
 
1129
1130
  install(DIRECTORY include/rocksdb COMPONENT devel DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
1130
1131
 
1132
+ foreach (plugin ${PLUGINS})
1133
+ foreach (header ${${plugin}_HEADERS})
1134
+ install(FILES plugin/${plugin}/${header} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocksdb/plugin/${plugin})
1135
+ endforeach()
1136
+ endforeach()
1137
+
1131
1138
  install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination})
1132
1139
 
1133
1140
  install(
@@ -1216,6 +1223,7 @@ if(WITH_TESTS)
1216
1223
  db/comparator_db_test.cc
1217
1224
  db/corruption_test.cc
1218
1225
  db/cuckoo_table_db_test.cc
1226
+ db/db_readonly_with_timestamp_test.cc
1219
1227
  db/db_with_timestamp_basic_test.cc
1220
1228
  db/db_block_cache_test.cc
1221
1229
  db/db_bloom_filter_test.cc
@@ -1384,6 +1392,7 @@ if(WITH_TESTS)
1384
1392
 
1385
1393
  set(TESTUTIL_SOURCE
1386
1394
  db/db_test_util.cc
1395
+ db/db_with_timestamp_test_util.cc
1387
1396
  monitoring/thread_status_updater_debug.cc
1388
1397
  table/mock_table.cc
1389
1398
  utilities/agg_merge/test_agg_merge.cc
@@ -136,6 +136,13 @@ CXXFLAGS += $(PLATFORM_SHARED_CFLAGS) -DROCKSDB_DLL
136
136
  CFLAGS += $(PLATFORM_SHARED_CFLAGS) -DROCKSDB_DLL
137
137
  endif
138
138
 
139
+ ifeq ($(USE_COROUTINES), 1)
140
+ USE_FOLLY = 1
141
+ OPT += -DUSE_COROUTINES
142
+ ROCKSDB_CXX_STANDARD = c++2a
143
+ USE_RTTI = 1
144
+ endif
145
+
139
146
  # if we're compiling for release, compile without debug code (-DNDEBUG)
140
147
  ifeq ($(DEBUG_LEVEL),0)
141
148
  OPT += -DNDEBUG
@@ -226,6 +233,7 @@ dummy := $(shell (export ROCKSDB_ROOT="$(CURDIR)"; \
226
233
  export ROCKSDB_NO_FBCODE="$(ROCKSDB_NO_FBCODE)"; \
227
234
  export USE_CLANG="$(USE_CLANG)"; \
228
235
  export LIB_MODE="$(LIB_MODE)"; \
236
+ export ROCKSDB_CXX_STANDARD="$(ROCKSDB_CXX_STANDARD)"; \
229
237
  "$(CURDIR)/build_tools/build_detect_platform" "$(CURDIR)/make_config.mk"))
230
238
  # this file is generated by the previous line to set build flags and sources
231
239
  include make_config.mk
@@ -1370,6 +1378,9 @@ db_blob_basic_test: $(OBJ_DIR)/db/blob/db_blob_basic_test.o $(TEST_LIBRARY) $(LI
1370
1378
  db_blob_compaction_test: $(OBJ_DIR)/db/blob/db_blob_compaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1371
1379
  $(AM_LINK)
1372
1380
 
1381
+ db_readonly_with_timestamp_test: $(OBJ_DIR)/db/db_readonly_with_timestamp_test.o $(TEST_LIBRARY) $(LIBRARY)
1382
+ $(AM_LINK)
1383
+
1373
1384
  db_with_timestamp_basic_test: $(OBJ_DIR)/db/db_with_timestamp_basic_test.o $(TEST_LIBRARY) $(LIBRARY)
1374
1385
  $(AM_LINK)
1375
1386
 
@@ -2053,6 +2064,7 @@ ifeq ($(PLATFORM), OS_OPENBSD)
2053
2064
  ROCKSDBJNILIB = librocksdbjni-openbsd$(ARCH).so
2054
2065
  ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_JAVA_VERSION)-openbsd$(ARCH).jar
2055
2066
  endif
2067
+ export SHA256_CMD
2056
2068
 
2057
2069
  zlib-$(ZLIB_VER).tar.gz:
2058
2070
  curl --fail --output zlib-$(ZLIB_VER).tar.gz --location ${ZLIB_DOWNLOAD_BASE}/zlib-$(ZLIB_VER).tar.gz
@@ -2185,7 +2197,7 @@ JAR_CMD := jar
2185
2197
  endif
2186
2198
  endif
2187
2199
  rocksdbjavastatic_javalib:
2188
- cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) javalib
2200
+ cd java; $(MAKE) javalib
2189
2201
  rm -f java/target/$(ROCKSDBJNILIB)
2190
2202
  $(CXX) $(CXXFLAGS) -I./java/. $(JAVA_INCLUDE) -shared -fPIC \
2191
2203
  -o ./java/target/$(ROCKSDBJNILIB) $(ALL_JNI_NATIVE_SOURCES) \
@@ -2299,7 +2311,7 @@ rocksdbjava: $(LIB_OBJECTS)
2299
2311
  ifeq ($(JAVA_HOME),)
2300
2312
  $(error JAVA_HOME is not set)
2301
2313
  endif
2302
- $(AM_V_GEN)cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) javalib;
2314
+ $(AM_V_GEN)cd java; $(MAKE) javalib;
2303
2315
  $(AM_V_at)rm -f ./java/target/$(ROCKSDBJNILIB)
2304
2316
  $(AM_V_at)$(CXX) $(CXXFLAGS) -I./java/. -I./java/rocksjni $(JAVA_INCLUDE) $(ROCKSDB_PLUGIN_JNI_CXX_INCLUDEFLAGS) -shared -fPIC -o ./java/target/$(ROCKSDBJNILIB) $(ALL_JNI_NATIVE_SOURCES) $(LIB_OBJECTS) $(JAVA_LDFLAGS) $(COVERAGEFLAGS)
2305
2317
  $(AM_V_at)cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR) HISTORY*.md
@@ -2311,14 +2323,13 @@ jclean:
2311
2323
  cd java;$(MAKE) clean;
2312
2324
 
2313
2325
  jtest_compile: rocksdbjava
2314
- cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) java_test
2326
+ cd java;$(MAKE) java_test
2315
2327
 
2316
2328
  jtest_run:
2317
2329
  cd java;$(MAKE) run_test
2318
2330
 
2319
2331
  jtest: rocksdbjava
2320
- cd java;$(MAKE) sample; SHA256_CMD='$(SHA256_CMD)' $(MAKE) test;
2321
- $(PYTHON) tools/check_all_python.py # TODO peterd: find a better place for this check in CI targets
2332
+ cd java;$(MAKE) sample test
2322
2333
 
2323
2334
  jdb_bench:
2324
2335
  cd java;$(MAKE) db_bench;
@@ -224,6 +224,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
224
224
  "trace_replay/trace_record_handler.cc",
225
225
  "trace_replay/trace_record_result.cc",
226
226
  "trace_replay/trace_replay.cc",
227
+ "util/async_file_reader.cc",
227
228
  "util/build_version.cc",
228
229
  "util/cleanable.cc",
229
230
  "util/coding.cc",
@@ -327,7 +328,13 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
327
328
  "utilities/wal_filter.cc",
328
329
  "utilities/write_batch_with_index/write_batch_with_index.cc",
329
330
  "utilities/write_batch_with_index/write_batch_with_index_internal.cc",
330
- ], deps=["//folly/container:f14_hash"], headers=None, link_whole=False, extra_test_libs=False)
331
+ ], deps=[
332
+ "//folly/container:f14_hash",
333
+ "//folly/experimental/coro:blocking_wait",
334
+ "//folly/experimental/coro:collect",
335
+ "//folly/experimental/coro:coroutine",
336
+ "//folly/experimental/coro:task",
337
+ ], headers=None, link_whole=False, extra_test_libs=False)
331
338
 
332
339
  cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
333
340
  "cache/cache.cc",
@@ -545,6 +552,7 @@ cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
545
552
  "trace_replay/trace_record_handler.cc",
546
553
  "trace_replay/trace_record_result.cc",
547
554
  "trace_replay/trace_replay.cc",
555
+ "util/async_file_reader.cc",
548
556
  "util/build_version.cc",
549
557
  "util/cleanable.cc",
550
558
  "util/coding.cc",
@@ -648,10 +656,17 @@ cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
648
656
  "utilities/wal_filter.cc",
649
657
  "utilities/write_batch_with_index/write_batch_with_index.cc",
650
658
  "utilities/write_batch_with_index/write_batch_with_index_internal.cc",
651
- ], deps=["//folly/container:f14_hash"], headers=None, link_whole=True, extra_test_libs=False)
659
+ ], deps=[
660
+ "//folly/container:f14_hash",
661
+ "//folly/experimental/coro:blocking_wait",
662
+ "//folly/experimental/coro:collect",
663
+ "//folly/experimental/coro:coroutine",
664
+ "//folly/experimental/coro:task",
665
+ ], headers=None, link_whole=True, extra_test_libs=False)
652
666
 
653
667
  cpp_library_wrapper(name="rocksdb_test_lib", srcs=[
654
668
  "db/db_test_util.cc",
669
+ "db/db_with_timestamp_test_util.cc",
655
670
  "table/mock_table.cc",
656
671
  "test_util/mock_time_env.cc",
657
672
  "test_util/testharness.cc",
@@ -5161,6 +5176,12 @@ cpp_unittest_wrapper(name="db_rate_limiter_test",
5161
5176
  extra_compiler_flags=[])
5162
5177
 
5163
5178
 
5179
+ cpp_unittest_wrapper(name="db_readonly_with_timestamp_test",
5180
+ srcs=["db/db_readonly_with_timestamp_test.cc"],
5181
+ deps=[":rocksdb_test_lib"],
5182
+ extra_compiler_flags=[])
5183
+
5184
+
5164
5185
  cpp_unittest_wrapper(name="db_secondary_test",
5165
5186
  srcs=["db/db_secondary_test.cc"],
5166
5187
  deps=[":rocksdb_test_lib"],
@@ -0,0 +1,7 @@
1
+ macro(get_cxx_std_flags FLAGS_VARIABLE)
2
+ if( CMAKE_CXX_STANDARD_REQUIRED )
3
+ set(${FLAGS_VARIABLE} ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION})
4
+ else()
5
+ set(${FLAGS_VARIABLE} ${CMAKE_CXX${CMAKE_CXX_STANDARD}_EXTENSION_COMPILE_OPTION})
6
+ endif()
7
+ endmacro()
@@ -0,0 +1,29 @@
1
+ # - Find JeMalloc library
2
+ # Find the native JeMalloc includes and library
3
+ #
4
+ # JeMalloc_INCLUDE_DIRS - where to find jemalloc.h, etc.
5
+ # JeMalloc_LIBRARIES - List of libraries when using jemalloc.
6
+ # JeMalloc_FOUND - True if jemalloc found.
7
+
8
+ find_path(JeMalloc_INCLUDE_DIRS
9
+ NAMES jemalloc/jemalloc.h
10
+ HINTS ${JEMALLOC_ROOT_DIR}/include)
11
+
12
+ find_library(JeMalloc_LIBRARIES
13
+ NAMES jemalloc
14
+ HINTS ${JEMALLOC_ROOT_DIR}/lib)
15
+
16
+ include(FindPackageHandleStandardArgs)
17
+ find_package_handle_standard_args(JeMalloc DEFAULT_MSG JeMalloc_LIBRARIES JeMalloc_INCLUDE_DIRS)
18
+
19
+ mark_as_advanced(
20
+ JeMalloc_LIBRARIES
21
+ JeMalloc_INCLUDE_DIRS)
22
+
23
+ if(JeMalloc_FOUND AND NOT (TARGET JeMalloc::JeMalloc))
24
+ add_library (JeMalloc::JeMalloc UNKNOWN IMPORTED)
25
+ set_target_properties(JeMalloc::JeMalloc
26
+ PROPERTIES
27
+ IMPORTED_LOCATION ${JeMalloc_LIBRARIES}
28
+ INTERFACE_INCLUDE_DIRECTORIES ${JeMalloc_INCLUDE_DIRS})
29
+ endif()
@@ -0,0 +1,29 @@
1
+ # - Find NUMA
2
+ # Find the NUMA library and includes
3
+ #
4
+ # NUMA_INCLUDE_DIRS - where to find numa.h, etc.
5
+ # NUMA_LIBRARIES - List of libraries when using NUMA.
6
+ # NUMA_FOUND - True if NUMA found.
7
+
8
+ find_path(NUMA_INCLUDE_DIRS
9
+ NAMES numa.h numaif.h
10
+ HINTS ${NUMA_ROOT_DIR}/include)
11
+
12
+ find_library(NUMA_LIBRARIES
13
+ NAMES numa
14
+ HINTS ${NUMA_ROOT_DIR}/lib)
15
+
16
+ include(FindPackageHandleStandardArgs)
17
+ find_package_handle_standard_args(NUMA DEFAULT_MSG NUMA_LIBRARIES NUMA_INCLUDE_DIRS)
18
+
19
+ mark_as_advanced(
20
+ NUMA_LIBRARIES
21
+ NUMA_INCLUDE_DIRS)
22
+
23
+ if(NUMA_FOUND AND NOT (TARGET NUMA::NUMA))
24
+ add_library (NUMA::NUMA UNKNOWN IMPORTED)
25
+ set_target_properties(NUMA::NUMA
26
+ PROPERTIES
27
+ IMPORTED_LOCATION ${NUMA_LIBRARIES}
28
+ INTERFACE_INCLUDE_DIRECTORIES ${NUMA_INCLUDE_DIRS})
29
+ endif()
@@ -0,0 +1,29 @@
1
+ # - Find Snappy
2
+ # Find the snappy compression library and includes
3
+ #
4
+ # Snappy_INCLUDE_DIRS - where to find snappy.h, etc.
5
+ # Snappy_LIBRARIES - List of libraries when using snappy.
6
+ # Snappy_FOUND - True if snappy found.
7
+
8
+ find_path(Snappy_INCLUDE_DIRS
9
+ NAMES snappy.h
10
+ HINTS ${snappy_ROOT_DIR}/include)
11
+
12
+ find_library(Snappy_LIBRARIES
13
+ NAMES snappy
14
+ HINTS ${snappy_ROOT_DIR}/lib)
15
+
16
+ include(FindPackageHandleStandardArgs)
17
+ find_package_handle_standard_args(Snappy DEFAULT_MSG Snappy_LIBRARIES Snappy_INCLUDE_DIRS)
18
+
19
+ mark_as_advanced(
20
+ Snappy_LIBRARIES
21
+ Snappy_INCLUDE_DIRS)
22
+
23
+ if(Snappy_FOUND AND NOT (TARGET Snappy::snappy))
24
+ add_library (Snappy::snappy UNKNOWN IMPORTED)
25
+ set_target_properties(Snappy::snappy
26
+ PROPERTIES
27
+ IMPORTED_LOCATION ${Snappy_LIBRARIES}
28
+ INTERFACE_INCLUDE_DIRECTORIES ${Snappy_INCLUDE_DIRS})
29
+ endif()
@@ -0,0 +1,33 @@
1
+ # - Find TBB
2
+ # Find the Thread Building Blocks library and includes
3
+ #
4
+ # TBB_INCLUDE_DIRS - where to find tbb.h, etc.
5
+ # TBB_LIBRARIES - List of libraries when using TBB.
6
+ # TBB_FOUND - True if TBB found.
7
+
8
+ if(NOT DEFINED TBB_ROOT_DIR)
9
+ set(TBB_ROOT_DIR "$ENV{TBBROOT}")
10
+ endif()
11
+
12
+ find_path(TBB_INCLUDE_DIRS
13
+ NAMES tbb/tbb.h
14
+ HINTS ${TBB_ROOT_DIR}/include)
15
+
16
+ find_library(TBB_LIBRARIES
17
+ NAMES tbb
18
+ HINTS ${TBB_ROOT_DIR}/lib ENV LIBRARY_PATH)
19
+
20
+ include(FindPackageHandleStandardArgs)
21
+ find_package_handle_standard_args(TBB DEFAULT_MSG TBB_LIBRARIES TBB_INCLUDE_DIRS)
22
+
23
+ mark_as_advanced(
24
+ TBB_LIBRARIES
25
+ TBB_INCLUDE_DIRS)
26
+
27
+ if(TBB_FOUND AND NOT (TARGET TBB::TBB))
28
+ add_library (TBB::TBB UNKNOWN IMPORTED)
29
+ set_target_properties(TBB::TBB
30
+ PROPERTIES
31
+ IMPORTED_LOCATION ${TBB_LIBRARIES}
32
+ INTERFACE_INCLUDE_DIRECTORIES ${TBB_INCLUDE_DIRS})
33
+ endif()
@@ -0,0 +1,29 @@
1
+ # - Find gflags library
2
+ # Find the gflags includes and library
3
+ #
4
+ # GFLAGS_INCLUDE_DIR - where to find gflags.h.
5
+ # GFLAGS_LIBRARIES - List of libraries when using gflags.
6
+ # gflags_FOUND - True if gflags found.
7
+
8
+ find_path(GFLAGS_INCLUDE_DIR
9
+ NAMES gflags/gflags.h)
10
+
11
+ find_library(GFLAGS_LIBRARIES
12
+ NAMES gflags)
13
+
14
+ include(FindPackageHandleStandardArgs)
15
+ find_package_handle_standard_args(gflags
16
+ DEFAULT_MSG GFLAGS_LIBRARIES GFLAGS_INCLUDE_DIR)
17
+
18
+ mark_as_advanced(
19
+ GFLAGS_LIBRARIES
20
+ GFLAGS_INCLUDE_DIR)
21
+
22
+ if(gflags_FOUND AND NOT (TARGET gflags::gflags))
23
+ add_library(gflags::gflags UNKNOWN IMPORTED)
24
+ set_target_properties(gflags::gflags
25
+ PROPERTIES
26
+ IMPORTED_LOCATION ${GFLAGS_LIBRARIES}
27
+ INTERFACE_INCLUDE_DIRECTORIES ${GFLAGS_INCLUDE_DIR}
28
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
29
+ endif()
@@ -0,0 +1,29 @@
1
+ # - Find Lz4
2
+ # Find the lz4 compression library and includes
3
+ #
4
+ # lz4_INCLUDE_DIRS - where to find lz4.h, etc.
5
+ # lz4_LIBRARIES - List of libraries when using lz4.
6
+ # lz4_FOUND - True if lz4 found.
7
+
8
+ find_path(lz4_INCLUDE_DIRS
9
+ NAMES lz4.h
10
+ HINTS ${lz4_ROOT_DIR}/include)
11
+
12
+ find_library(lz4_LIBRARIES
13
+ NAMES lz4
14
+ HINTS ${lz4_ROOT_DIR}/lib)
15
+
16
+ include(FindPackageHandleStandardArgs)
17
+ find_package_handle_standard_args(lz4 DEFAULT_MSG lz4_LIBRARIES lz4_INCLUDE_DIRS)
18
+
19
+ mark_as_advanced(
20
+ lz4_LIBRARIES
21
+ lz4_INCLUDE_DIRS)
22
+
23
+ if(lz4_FOUND AND NOT (TARGET lz4::lz4))
24
+ add_library(lz4::lz4 UNKNOWN IMPORTED)
25
+ set_target_properties(lz4::lz4
26
+ PROPERTIES
27
+ IMPORTED_LOCATION ${lz4_LIBRARIES}
28
+ INTERFACE_INCLUDE_DIRECTORIES ${lz4_INCLUDE_DIRS})
29
+ endif()
@@ -0,0 +1,26 @@
1
+ # - Find liburing
2
+ #
3
+ # uring_INCLUDE_DIR - Where to find liburing.h
4
+ # uring_LIBRARIES - List of libraries when using uring.
5
+ # uring_FOUND - True if uring found.
6
+
7
+ find_path(uring_INCLUDE_DIR
8
+ NAMES liburing.h)
9
+ find_library(uring_LIBRARIES
10
+ NAMES liburing.a liburing)
11
+
12
+ include(FindPackageHandleStandardArgs)
13
+ find_package_handle_standard_args(uring
14
+ DEFAULT_MSG uring_LIBRARIES uring_INCLUDE_DIR)
15
+
16
+ mark_as_advanced(
17
+ uring_INCLUDE_DIR
18
+ uring_LIBRARIES)
19
+
20
+ if(uring_FOUND AND NOT TARGET uring::uring)
21
+ add_library(uring::uring UNKNOWN IMPORTED)
22
+ set_target_properties(uring::uring PROPERTIES
23
+ INTERFACE_INCLUDE_DIRECTORIES "${uring_INCLUDE_DIR}"
24
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
25
+ IMPORTED_LOCATION "${uring_LIBRARIES}")
26
+ endif()
@@ -0,0 +1,29 @@
1
+ # - Find zstd
2
+ # Find the zstd compression library and includes
3
+ #
4
+ # zstd_INCLUDE_DIRS - where to find zstd.h, etc.
5
+ # zstd_LIBRARIES - List of libraries when using zstd.
6
+ # zstd_FOUND - True if zstd found.
7
+
8
+ find_path(zstd_INCLUDE_DIRS
9
+ NAMES zstd.h
10
+ HINTS ${zstd_ROOT_DIR}/include)
11
+
12
+ find_library(zstd_LIBRARIES
13
+ NAMES zstd
14
+ HINTS ${zstd_ROOT_DIR}/lib)
15
+
16
+ include(FindPackageHandleStandardArgs)
17
+ find_package_handle_standard_args(zstd DEFAULT_MSG zstd_LIBRARIES zstd_INCLUDE_DIRS)
18
+
19
+ mark_as_advanced(
20
+ zstd_LIBRARIES
21
+ zstd_INCLUDE_DIRS)
22
+
23
+ if(zstd_FOUND AND NOT (TARGET zstd::zstd))
24
+ add_library (zstd::zstd UNKNOWN IMPORTED)
25
+ set_target_properties(zstd::zstd
26
+ PROPERTIES
27
+ IMPORTED_LOCATION ${zstd_LIBRARIES}
28
+ INTERFACE_INCLUDE_DIRECTORIES ${zstd_INCLUDE_DIRS})
29
+ endif()
@@ -0,0 +1,10 @@
1
+ # Read rocksdb version from version.h header file.
2
+
3
+ function(get_rocksdb_version version_var)
4
+ file(READ "${CMAKE_CURRENT_SOURCE_DIR}/include/rocksdb/version.h" version_header_file)
5
+ foreach(component MAJOR MINOR PATCH)
6
+ string(REGEX MATCH "#define ROCKSDB_${component} ([0-9]+)" _ ${version_header_file})
7
+ set(ROCKSDB_VERSION_${component} ${CMAKE_MATCH_1})
8
+ endforeach()
9
+ set(${version_var} "${ROCKSDB_VERSION_MAJOR}.${ROCKSDB_VERSION_MINOR}.${ROCKSDB_VERSION_PATCH}" PARENT_SCOPE)
10
+ endfunction()
@@ -37,6 +37,7 @@
37
37
  #include "table/block_based/block_based_table_builder.h"
38
38
  #include "table/format.h"
39
39
  #include "table/internal_iterator.h"
40
+ #include "table/unique_id_impl.h"
40
41
  #include "test_util/sync_point.h"
41
42
  #include "util/stop_watch.h"
42
43
 
@@ -310,6 +311,15 @@ Status BuildTable(
310
311
  meta->file_checksum_func_name = file_writer->GetFileChecksumFuncName();
311
312
  file_checksum = meta->file_checksum;
312
313
  file_checksum_func_name = meta->file_checksum_func_name;
314
+ // Set unique_id only if db_id and db_session_id exist
315
+ if (!tboptions.db_id.empty() && !tboptions.db_session_id.empty()) {
316
+ if (!GetSstInternalUniqueId(tboptions.db_id, tboptions.db_session_id,
317
+ meta->fd.GetNumber(), &(meta->unique_id))
318
+ .ok()) {
319
+ // if failed to get unique id, just set it Null
320
+ meta->unique_id = kNullUniqueId64x2;
321
+ }
322
+ }
313
323
  }
314
324
 
315
325
  if (s.ok()) {
@@ -331,12 +341,10 @@ Status BuildTable(
331
341
  if (s.ok() && !empty) {
332
342
  // Verify that the table is usable
333
343
  // We set for_compaction to false and don't OptimizeForCompactionTableRead
334
- // here because this is a special case after we finish the table building
344
+ // here because this is a special case after we finish the table building.
335
345
  // No matter whether use_direct_io_for_flush_and_compaction is true,
336
- // we will regrad this verification as user reads since the goal is
337
- // to cache it here for further user reads
346
+ // the goal is to cache it here for further user reads.
338
347
  ReadOptions read_options;
339
- read_options.rate_limiter_priority = Env::IO_USER;
340
348
  std::unique_ptr<InternalIterator> it(table_cache->NewIterator(
341
349
  read_options, file_options, tboptions.internal_comparator, *meta,
342
350
  nullptr /* range_del_agg */, mutable_cf_options.prefix_extractor,
@@ -2855,6 +2855,20 @@ void rocksdb_options_set_bottommost_compression_options_zstd_max_train_bytes(
2855
2855
  opt->rep.bottommost_compression_opts.enabled = enabled;
2856
2856
  }
2857
2857
 
2858
+ void rocksdb_options_set_bottommost_compression_options_use_zstd_dict_trainer(
2859
+ rocksdb_options_t* opt, unsigned char use_zstd_dict_trainer,
2860
+ unsigned char enabled) {
2861
+ opt->rep.bottommost_compression_opts.use_zstd_dict_trainer =
2862
+ use_zstd_dict_trainer;
2863
+ opt->rep.bottommost_compression_opts.enabled = enabled;
2864
+ }
2865
+
2866
+ unsigned char
2867
+ rocksdb_options_get_bottommost_compression_options_use_zstd_dict_trainer(
2868
+ rocksdb_options_t* opt) {
2869
+ return opt->rep.bottommost_compression_opts.use_zstd_dict_trainer;
2870
+ }
2871
+
2858
2872
  void rocksdb_options_set_bottommost_compression_options_max_dict_buffer_bytes(
2859
2873
  rocksdb_options_t* opt, uint64_t max_dict_buffer_bytes,
2860
2874
  unsigned char enabled) {
@@ -2882,6 +2896,16 @@ int rocksdb_options_get_compression_options_zstd_max_train_bytes(
2882
2896
  return opt->rep.compression_opts.zstd_max_train_bytes;
2883
2897
  }
2884
2898
 
2899
+ void rocksdb_options_set_compression_options_use_zstd_dict_trainer(
2900
+ rocksdb_options_t* opt, unsigned char use_zstd_dict_trainer) {
2901
+ opt->rep.compression_opts.use_zstd_dict_trainer = use_zstd_dict_trainer;
2902
+ }
2903
+
2904
+ unsigned char rocksdb_options_get_compression_options_use_zstd_dict_trainer(
2905
+ rocksdb_options_t* opt) {
2906
+ return opt->rep.compression_opts.use_zstd_dict_trainer;
2907
+ }
2908
+
2885
2909
  void rocksdb_options_set_compression_options_parallel_threads(
2886
2910
  rocksdb_options_t* opt, int value) {
2887
2911
  opt->rep.compression_opts.parallel_threads = value;
@@ -3673,6 +3697,8 @@ uint64_t rocksdb_perfcontext_metric(rocksdb_perfcontext_t* context,
3673
3697
  return rep->env_unlock_file_nanos;
3674
3698
  case rocksdb_env_new_logger_nanos:
3675
3699
  return rep->env_new_logger_nanos;
3700
+ case rocksdb_number_async_seek:
3701
+ return rep->number_async_seek;
3676
3702
  default:
3677
3703
  break;
3678
3704
  }
@@ -2539,6 +2539,9 @@ int main(int argc, char** argv) {
2539
2539
  200 ==
2540
2540
  rocksdb_options_get_compression_options_max_dict_buffer_bytes(co));
2541
2541
 
2542
+ rocksdb_options_set_compression_options_use_zstd_dict_trainer(co, 0);
2543
+ CheckCondition(
2544
+ 0 == rocksdb_options_get_compression_options_use_zstd_dict_trainer(co));
2542
2545
  rocksdb_options_destroy(co);
2543
2546
  }
2544
2547
 
@@ -136,9 +136,15 @@ Status CheckCompressionSupported(const ColumnFamilyOptions& cf_options) {
136
136
  }
137
137
  }
138
138
  if (cf_options.compression_opts.zstd_max_train_bytes > 0) {
139
- if (!ZSTD_TrainDictionarySupported()) {
139
+ if (cf_options.compression_opts.use_zstd_dict_trainer) {
140
+ if (!ZSTD_TrainDictionarySupported()) {
141
+ return Status::InvalidArgument(
142
+ "zstd dictionary trainer cannot be used because ZSTD 1.1.3+ "
143
+ "is not linked with the binary.");
144
+ }
145
+ } else if (!ZSTD_FinalizeDictionarySupported()) {
140
146
  return Status::InvalidArgument(
141
- "zstd dictionary trainer cannot be used because ZSTD 1.1.3+ "
147
+ "zstd finalizeDictionary cannot be used because ZSTD 1.4.5+ "
142
148
  "is not linked with the binary.");
143
149
  }
144
150
  if (cf_options.compression_opts.max_dict_bytes == 0) {