@nxtedition/rocksdb 6.0.0 → 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 (488) hide show
  1. package/BUILDING.md +18 -0
  2. package/binding.cc +16 -17
  3. package/binding.gyp +2 -2
  4. package/deps/rocksdb/build_version.cc +4 -10
  5. package/deps/rocksdb/rocksdb/CMakeLists.txt +26 -3
  6. package/deps/rocksdb/rocksdb/Makefile +73 -91
  7. package/deps/rocksdb/rocksdb/TARGETS +27 -2
  8. package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
  9. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
  10. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
  12. package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
  13. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  14. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  15. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  16. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  17. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  18. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  19. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  20. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  21. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  22. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  23. package/deps/rocksdb/rocksdb/common.mk +30 -0
  24. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  25. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  26. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  27. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  28. package/deps/rocksdb/rocksdb/db/builder.cc +22 -7
  29. package/deps/rocksdb/rocksdb/db/c.cc +71 -0
  30. package/deps/rocksdb/rocksdb/db/c_test.c +28 -2
  31. package/deps/rocksdb/rocksdb/db/column_family.cc +12 -5
  32. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  33. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +54 -16
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +14 -2
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +85 -18
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +23 -22
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +151 -32
  47. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  48. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  49. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  50. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  51. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +404 -32
  52. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  53. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  54. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  55. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  56. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  57. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  58. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +11 -20
  59. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +15 -1
  60. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +12 -9
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +42 -10
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +54 -23
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +3 -0
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +14 -4
  68. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  69. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  70. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  71. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  72. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  73. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  74. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  75. package/deps/rocksdb/rocksdb/db/db_options_test.cc +28 -12
  76. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  77. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  78. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +331 -0
  79. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +11 -6
  80. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  81. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  82. package/deps/rocksdb/rocksdb/db/db_test.cc +60 -42
  83. package/deps/rocksdb/rocksdb/db/db_test2.cc +244 -111
  84. package/deps/rocksdb/rocksdb/db/db_test_util.cc +101 -19
  85. package/deps/rocksdb/rocksdb/db/db_test_util.h +52 -2
  86. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  87. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  88. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +5 -175
  89. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
  90. package/deps/rocksdb/rocksdb/db/db_with_timestamp_test_util.h +126 -0
  91. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  92. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  93. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  94. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  95. package/deps/rocksdb/rocksdb/db/experimental.cc +1 -1
  96. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +91 -12
  97. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -2
  98. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +2 -0
  99. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  100. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  101. package/deps/rocksdb/rocksdb/db/flush_job.cc +28 -15
  102. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  103. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  104. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  105. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +14 -1
  106. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +6 -0
  107. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  108. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  109. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  110. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  111. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  112. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  113. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  114. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  115. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  116. package/deps/rocksdb/rocksdb/db/repair.cc +13 -2
  117. package/deps/rocksdb/rocksdb/db/repair_test.cc +37 -15
  118. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  119. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +3 -1
  120. package/deps/rocksdb/rocksdb/db/table_cache.cc +20 -130
  121. package/deps/rocksdb/rocksdb/db/table_cache.h +3 -2
  122. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +140 -0
  123. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  124. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +133 -133
  125. package/deps/rocksdb/rocksdb/db/version_edit.cc +22 -2
  126. package/deps/rocksdb/rocksdb/db/version_edit.h +13 -4
  127. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +14 -14
  128. package/deps/rocksdb/rocksdb/db/version_set.cc +207 -214
  129. package/deps/rocksdb/rocksdb/db/version_set.h +14 -3
  130. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +154 -0
  131. package/deps/rocksdb/rocksdb/db/version_set_test.cc +10 -9
  132. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  133. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  134. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  135. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  136. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  137. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  138. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  139. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +9 -6
  140. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  141. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  142. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +44 -6
  143. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  144. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  145. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  146. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +374 -275
  147. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  148. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  149. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  150. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  151. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  152. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  153. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  154. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  155. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  156. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  157. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  158. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  159. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  160. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  161. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  162. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +159 -65
  163. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +44 -22
  164. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  165. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +142 -17
  166. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  167. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  168. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +60 -40
  169. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +1 -0
  170. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +23 -5
  171. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +49 -1
  172. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  173. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  174. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  175. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  176. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  177. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  178. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
  179. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  180. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  181. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +45 -3
  182. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +2 -0
  183. package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +4 -1
  184. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +3 -0
  185. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  186. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  187. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  188. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  191. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +378 -103
  192. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  193. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  194. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  195. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  196. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  197. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  198. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  199. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  200. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  201. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  202. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  203. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  204. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  205. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  206. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +7 -8
  207. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  208. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  209. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  210. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  211. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -1
  212. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  213. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  214. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  215. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  216. package/deps/rocksdb/rocksdb/options/cf_options.cc +47 -38
  217. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  218. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  219. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  220. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  221. package/deps/rocksdb/rocksdb/options/db_options.cc +46 -17
  222. package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
  223. package/deps/rocksdb/rocksdb/options/options.cc +7 -0
  224. package/deps/rocksdb/rocksdb/options/options_helper.cc +86 -39
  225. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  226. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +12 -7
  227. package/deps/rocksdb/rocksdb/options/options_test.cc +222 -68
  228. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  229. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  230. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  231. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  232. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  233. package/deps/rocksdb/rocksdb/src.mk +6 -1
  234. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  235. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  236. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  237. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  238. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +23 -8
  239. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  240. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +81 -7
  241. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +8 -2
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +94 -726
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +21 -15
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +9 -3
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +754 -0
  246. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +44 -73
  247. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +15 -5
  248. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  249. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +2 -11
  250. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +59 -1
  251. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +18 -0
  252. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  253. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +0 -61
  254. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +0 -13
  255. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  256. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -2
  258. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  259. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -2
  260. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
  261. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +8 -4
  262. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  263. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -1
  264. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +65 -7
  265. package/deps/rocksdb/rocksdb/table/block_fetcher.h +2 -0
  266. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  267. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  268. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  269. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  270. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  271. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  272. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +39 -0
  273. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  274. package/deps/rocksdb/rocksdb/table/multiget_context.h +60 -13
  275. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  276. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  277. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  278. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +2 -1
  279. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +1 -1
  280. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  281. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  282. package/deps/rocksdb/rocksdb/table/table_reader.h +13 -0
  283. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  284. package/deps/rocksdb/rocksdb/table/unique_id.cc +84 -25
  285. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +37 -4
  286. package/deps/rocksdb/rocksdb/test_util/testutil.cc +3 -1
  287. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  288. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  289. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  290. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  291. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  292. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +277 -105
  293. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  294. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  295. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  296. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  297. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  298. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  299. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +26 -4
  300. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  301. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  302. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +72 -0
  303. package/deps/rocksdb/rocksdb/util/async_file_reader.h +144 -0
  304. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  305. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  306. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  307. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  308. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  309. package/deps/rocksdb/rocksdb/util/compression.h +56 -7
  310. package/deps/rocksdb/rocksdb/util/coro_utils.h +111 -0
  311. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  312. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  313. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  314. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  315. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  316. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  317. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  318. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  319. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  320. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +55 -0
  321. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  322. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  323. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  324. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  325. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  326. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  327. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  328. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  329. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  330. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  331. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  332. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  333. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  334. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  335. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  336. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  337. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  338. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  339. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  340. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  341. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  342. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  343. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  344. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  345. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  346. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  347. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  348. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  349. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  350. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  351. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  352. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  353. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  354. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  355. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  356. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  357. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  358. package/deps/rocksdb/rocksdb.gyp +47 -37
  359. package/package-lock.json +23687 -0
  360. package/package.json +2 -30
  361. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  362. package/prebuilds/darwin-x64/node.napi.node +0 -0
  363. package/prebuilds/linux-x64/node.napi.node +0 -0
  364. package/deps/liburing/liburing/README +0 -46
  365. package/deps/liburing/liburing/test/232c93d07b74-test.c +0 -305
  366. package/deps/liburing/liburing/test/35fa71a030ca-test.c +0 -329
  367. package/deps/liburing/liburing/test/500f9fbadef8-test.c +0 -89
  368. package/deps/liburing/liburing/test/7ad0e4b2f83c-test.c +0 -93
  369. package/deps/liburing/liburing/test/8a9973408177-test.c +0 -106
  370. package/deps/liburing/liburing/test/917257daa0fe-test.c +0 -53
  371. package/deps/liburing/liburing/test/Makefile +0 -312
  372. package/deps/liburing/liburing/test/a0908ae19763-test.c +0 -58
  373. package/deps/liburing/liburing/test/a4c0b3decb33-test.c +0 -180
  374. package/deps/liburing/liburing/test/accept-link.c +0 -251
  375. package/deps/liburing/liburing/test/accept-reuse.c +0 -164
  376. package/deps/liburing/liburing/test/accept-test.c +0 -79
  377. package/deps/liburing/liburing/test/accept.c +0 -476
  378. package/deps/liburing/liburing/test/across-fork.c +0 -283
  379. package/deps/liburing/liburing/test/b19062a56726-test.c +0 -53
  380. package/deps/liburing/liburing/test/b5837bd5311d-test.c +0 -77
  381. package/deps/liburing/liburing/test/ce593a6c480a-test.c +0 -135
  382. package/deps/liburing/liburing/test/close-opath.c +0 -122
  383. package/deps/liburing/liburing/test/config +0 -10
  384. package/deps/liburing/liburing/test/connect.c +0 -398
  385. package/deps/liburing/liburing/test/cq-full.c +0 -96
  386. package/deps/liburing/liburing/test/cq-overflow.c +0 -294
  387. package/deps/liburing/liburing/test/cq-peek-batch.c +0 -102
  388. package/deps/liburing/liburing/test/cq-ready.c +0 -94
  389. package/deps/liburing/liburing/test/cq-size.c +0 -58
  390. package/deps/liburing/liburing/test/d4ae271dfaae-test.c +0 -96
  391. package/deps/liburing/liburing/test/d77a67ed5f27-test.c +0 -65
  392. package/deps/liburing/liburing/test/defer.c +0 -307
  393. package/deps/liburing/liburing/test/double-poll-crash.c +0 -186
  394. package/deps/liburing/liburing/test/eeed8b54e0df-test.c +0 -114
  395. package/deps/liburing/liburing/test/empty-eownerdead.c +0 -42
  396. package/deps/liburing/liburing/test/eventfd-disable.c +0 -151
  397. package/deps/liburing/liburing/test/eventfd-ring.c +0 -97
  398. package/deps/liburing/liburing/test/eventfd.c +0 -112
  399. package/deps/liburing/liburing/test/fadvise.c +0 -202
  400. package/deps/liburing/liburing/test/fallocate.c +0 -249
  401. package/deps/liburing/liburing/test/fc2a85cb02ef-test.c +0 -138
  402. package/deps/liburing/liburing/test/file-register.c +0 -843
  403. package/deps/liburing/liburing/test/file-update.c +0 -173
  404. package/deps/liburing/liburing/test/files-exit-hang-poll.c +0 -128
  405. package/deps/liburing/liburing/test/files-exit-hang-timeout.c +0 -134
  406. package/deps/liburing/liburing/test/fixed-link.c +0 -90
  407. package/deps/liburing/liburing/test/fsync.c +0 -224
  408. package/deps/liburing/liburing/test/hardlink.c +0 -136
  409. package/deps/liburing/liburing/test/helpers.c +0 -135
  410. package/deps/liburing/liburing/test/helpers.h +0 -67
  411. package/deps/liburing/liburing/test/io-cancel.c +0 -537
  412. package/deps/liburing/liburing/test/io_uring_enter.c +0 -296
  413. package/deps/liburing/liburing/test/io_uring_register.c +0 -664
  414. package/deps/liburing/liburing/test/io_uring_setup.c +0 -192
  415. package/deps/liburing/liburing/test/iopoll.c +0 -366
  416. package/deps/liburing/liburing/test/lfs-openat-write.c +0 -117
  417. package/deps/liburing/liburing/test/lfs-openat.c +0 -273
  418. package/deps/liburing/liburing/test/link-timeout.c +0 -1107
  419. package/deps/liburing/liburing/test/link.c +0 -496
  420. package/deps/liburing/liburing/test/link_drain.c +0 -229
  421. package/deps/liburing/liburing/test/madvise.c +0 -195
  422. package/deps/liburing/liburing/test/mkdir.c +0 -108
  423. package/deps/liburing/liburing/test/multicqes_drain.c +0 -383
  424. package/deps/liburing/liburing/test/nop-all-sizes.c +0 -107
  425. package/deps/liburing/liburing/test/nop.c +0 -115
  426. package/deps/liburing/liburing/test/open-close.c +0 -146
  427. package/deps/liburing/liburing/test/openat2.c +0 -240
  428. package/deps/liburing/liburing/test/personality.c +0 -204
  429. package/deps/liburing/liburing/test/pipe-eof.c +0 -81
  430. package/deps/liburing/liburing/test/pipe-reuse.c +0 -105
  431. package/deps/liburing/liburing/test/poll-cancel-ton.c +0 -139
  432. package/deps/liburing/liburing/test/poll-cancel.c +0 -135
  433. package/deps/liburing/liburing/test/poll-link.c +0 -227
  434. package/deps/liburing/liburing/test/poll-many.c +0 -208
  435. package/deps/liburing/liburing/test/poll-mshot-update.c +0 -273
  436. package/deps/liburing/liburing/test/poll-ring.c +0 -48
  437. package/deps/liburing/liburing/test/poll-v-poll.c +0 -353
  438. package/deps/liburing/liburing/test/poll.c +0 -109
  439. package/deps/liburing/liburing/test/probe.c +0 -137
  440. package/deps/liburing/liburing/test/read-write.c +0 -876
  441. package/deps/liburing/liburing/test/register-restrictions.c +0 -633
  442. package/deps/liburing/liburing/test/rename.c +0 -134
  443. package/deps/liburing/liburing/test/ring-leak.c +0 -173
  444. package/deps/liburing/liburing/test/ring-leak2.c +0 -249
  445. package/deps/liburing/liburing/test/rsrc_tags.c +0 -449
  446. package/deps/liburing/liburing/test/runtests-loop.sh +0 -16
  447. package/deps/liburing/liburing/test/runtests.sh +0 -170
  448. package/deps/liburing/liburing/test/rw_merge_test.c +0 -97
  449. package/deps/liburing/liburing/test/self.c +0 -91
  450. package/deps/liburing/liburing/test/send_recv.c +0 -291
  451. package/deps/liburing/liburing/test/send_recvmsg.c +0 -345
  452. package/deps/liburing/liburing/test/sendmsg_fs_cve.c +0 -198
  453. package/deps/liburing/liburing/test/shared-wq.c +0 -84
  454. package/deps/liburing/liburing/test/short-read.c +0 -75
  455. package/deps/liburing/liburing/test/shutdown.c +0 -163
  456. package/deps/liburing/liburing/test/sigfd-deadlock.c +0 -74
  457. package/deps/liburing/liburing/test/socket-rw-eagain.c +0 -156
  458. package/deps/liburing/liburing/test/socket-rw.c +0 -147
  459. package/deps/liburing/liburing/test/splice.c +0 -511
  460. package/deps/liburing/liburing/test/sq-full-cpp.cc +0 -45
  461. package/deps/liburing/liburing/test/sq-full.c +0 -45
  462. package/deps/liburing/liburing/test/sq-poll-dup.c +0 -200
  463. package/deps/liburing/liburing/test/sq-poll-kthread.c +0 -168
  464. package/deps/liburing/liburing/test/sq-poll-share.c +0 -137
  465. package/deps/liburing/liburing/test/sq-space_left.c +0 -159
  466. package/deps/liburing/liburing/test/sqpoll-cancel-hang.c +0 -159
  467. package/deps/liburing/liburing/test/sqpoll-disable-exit.c +0 -195
  468. package/deps/liburing/liburing/test/sqpoll-exit-hang.c +0 -77
  469. package/deps/liburing/liburing/test/sqpoll-sleep.c +0 -68
  470. package/deps/liburing/liburing/test/statx.c +0 -172
  471. package/deps/liburing/liburing/test/stdout.c +0 -232
  472. package/deps/liburing/liburing/test/submit-link-fail.c +0 -154
  473. package/deps/liburing/liburing/test/submit-reuse.c +0 -239
  474. package/deps/liburing/liburing/test/symlink.c +0 -116
  475. package/deps/liburing/liburing/test/teardowns.c +0 -58
  476. package/deps/liburing/liburing/test/thread-exit.c +0 -131
  477. package/deps/liburing/liburing/test/timeout-new.c +0 -246
  478. package/deps/liburing/liburing/test/timeout-overflow.c +0 -204
  479. package/deps/liburing/liburing/test/timeout.c +0 -1354
  480. package/deps/liburing/liburing/test/unlink.c +0 -111
  481. package/deps/liburing/liburing/test/wakeup-hang.c +0 -162
  482. package/deps/rocksdb/rocksdb/README.md +0 -32
  483. package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
  484. package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
  485. package/deps/rocksdb/rocksdb/port/README +0 -10
  486. package/deps/rocksdb/rocksdb/python.mk +0 -9
  487. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
  488. package/prebuilds/linux-arm64/node.napi.node +0 -0
package/BUILDING.md ADDED
@@ -0,0 +1,18 @@
1
+ # LINUX
2
+
3
+ - Run `./configure` in `deps/liburing`.
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`
14
+
15
+ # OSX
16
+
17
+ - `brew install zstd`
18
+ - `npx prebuildify -t -t 17.8.0 --napi --strip --arch x64`
package/binding.cc CHANGED
@@ -200,16 +200,7 @@ static void Finalize(napi_env env, void* data, void* hint) {
200
200
  }
201
201
  }
202
202
 
203
- napi_status Convert(napi_env env, std::string s, bool asBuffer, napi_value& result) {
204
- if (asBuffer) {
205
- auto ptr = new std::string(std::move(s));
206
- return napi_create_external_buffer(env, ptr->size(), ptr->data(), Finalize<std::string>, ptr, &result);
207
- } else {
208
- return napi_create_string_utf8(env, s.data(), s.size(), &result);
209
- }
210
- }
211
-
212
- napi_status Convert(napi_env env, rocksdb::PinnableSlice s, bool asBuffer, napi_value& result) {
203
+ napi_status Convert(napi_env env, rocksdb::PinnableSlice&& s, bool asBuffer, napi_value& result) {
213
204
  if (asBuffer) {
214
205
  auto ptr = new rocksdb::PinnableSlice(std::move(s));
215
206
  return napi_create_external_buffer(env, ptr->size(), const_cast<char*>(ptr->data()),
@@ -455,6 +446,7 @@ struct BaseIterator {
455
446
  }
456
447
  options.fill_cache = fillCache_;
457
448
  options.snapshot = snapshot_.get();
449
+ options.async_io = true;
458
450
 
459
451
  iterator_.reset(database_->db_->NewIterator(options));
460
452
  }
@@ -735,7 +727,7 @@ struct GetWorker final : public Worker {
735
727
  options.fill_cache = fillCache_;
736
728
  options.snapshot = snapshot_.get();
737
729
 
738
- auto status = database.db_->Get(options, key_, &value_);
730
+ auto status = database.db_->Get(options, database.db_->DefaultColumnFamily(), key_, &value_);
739
731
 
740
732
  key_.clear();
741
733
  snapshot_ = nullptr;
@@ -757,7 +749,7 @@ struct GetWorker final : public Worker {
757
749
 
758
750
  private:
759
751
  std::string key_;
760
- std::string value_;
752
+ rocksdb::PinnableSlice value_;
761
753
  const bool asBuffer_;
762
754
  const bool fillCache_;
763
755
  std::shared_ptr<const rocksdb::Snapshot> snapshot_;
@@ -799,6 +791,7 @@ struct GetManyWorker final : public Worker {
799
791
  rocksdb::ReadOptions options;
800
792
  options.fill_cache = fillCache_;
801
793
  options.snapshot = snapshot_.get();
794
+ options.async_io = true;
802
795
 
803
796
  const auto numKeys = keys_.size();
804
797
 
@@ -1080,18 +1073,24 @@ struct NextWorker final : public Worker {
1080
1073
  if (iterator_->keys_ && iterator_->values_) {
1081
1074
  auto k = iterator_->CurrentKey();
1082
1075
  auto v = iterator_->CurrentValue();
1083
- cache_.emplace_back(k.data(), k.size());
1084
- cache_.emplace_back(v.data(), v.size());
1076
+ cache_.push_back({});
1077
+ cache_.back().PinSelf(k);
1078
+ cache_.push_back({});
1079
+ cache_.back().PinSelf(v);
1085
1080
  bytesRead += k.size() + v.size();
1086
1081
  } else if (iterator_->keys_) {
1087
1082
  auto k = iterator_->CurrentKey();
1088
- cache_.emplace_back(k.data(), k.size());
1089
1083
  cache_.push_back({});
1084
+ cache_.back().PinSelf(k);
1085
+ cache_.push_back({});
1086
+ // no value
1090
1087
  bytesRead += k.size();
1091
1088
  } else if (iterator_->values_) {
1092
1089
  auto v = iterator_->CurrentValue();
1093
1090
  cache_.push_back({});
1094
- cache_.emplace_back(v.data(), v.size());
1091
+ // no key
1092
+ cache_.push_back({});
1093
+ cache_.back().PinSelf(v);
1095
1094
  bytesRead += v.size();
1096
1095
  }
1097
1096
 
@@ -1130,7 +1129,7 @@ struct NextWorker final : public Worker {
1130
1129
  }
1131
1130
 
1132
1131
  private:
1133
- std::vector<std::string> cache_;
1132
+ std::vector<rocksdb::PinnableSlice> cache_;
1134
1133
  Iterator* iterator_ = nullptr;
1135
1134
  uint32_t size_ = 0;
1136
1135
  bool finished_ = false;
package/binding.gyp CHANGED
@@ -61,7 +61,7 @@
61
61
  "-Wno-ignored-qualifiers"
62
62
  ],
63
63
  "OTHER_CPLUSPLUSFLAGS": [
64
- "-mmacosx-version-min=10.15",
64
+ "-mmacosx-version-min=12.2.1",
65
65
  "-std=c++20",
66
66
  "-fno-omit-frame-pointer",
67
67
  "-momit-leaf-frame-pointer",
@@ -70,7 +70,7 @@
70
70
  ],
71
71
  "GCC_ENABLE_CPP_RTTI": "YES",
72
72
  "GCC_ENABLE_CPP_EXCEPTIONS": "YES",
73
- "MACOSX_DEPLOYMENT_TARGET": "10.15"
73
+ "MACOSX_DEPLOYMENT_TARGET": "12.2.1"
74
74
  }
75
75
  }
76
76
  ]
@@ -12,12 +12,7 @@ static const std::string rocksdb_build_git_sha = "rocksdb_build_git_sha:None";
12
12
  static const std::string rocksdb_build_git_tag = "rocksdb_build_git_tag:None";
13
13
  static const std::string rocksdb_build_date = "rocksdb_build_date:None";
14
14
 
15
- #ifndef ROCKSDB_LITE
16
- extern "C" {
17
- } // extern "C"
18
-
19
15
  std::unordered_map<std::string, ROCKSDB_NAMESPACE::RegistrarFunc> ROCKSDB_NAMESPACE::ObjectRegistry::builtins_ = {};
20
- #endif //ROCKSDB_LITE
21
16
 
22
17
  namespace ROCKSDB_NAMESPACE {
23
18
  static void AddProperty(std::unordered_map<std::string, std::string> *props, const std::string& name) {
@@ -31,7 +26,7 @@ static void AddProperty(std::unordered_map<std::string, std::string> *props, con
31
26
  }
32
27
  }
33
28
  }
34
-
29
+
35
30
  static std::unordered_map<std::string, std::string>* LoadPropertiesSet() {
36
31
  auto * properties = new std::unordered_map<std::string, std::string>();
37
32
  AddProperty(properties, rocksdb_build_git_sha);
@@ -46,14 +41,14 @@ const std::unordered_map<std::string, std::string>& GetRocksBuildProperties() {
46
41
  }
47
42
 
48
43
  std::string GetRocksVersionAsString(bool with_patch) {
49
- std::string version = ToString(ROCKSDB_MAJOR) + "." + ToString(ROCKSDB_MINOR);
44
+ std::string version = std::to_string(ROCKSDB_MAJOR) + "." + std::to_string(ROCKSDB_MINOR);
50
45
  if (with_patch) {
51
- return version + "." + ToString(ROCKSDB_PATCH);
46
+ return version + "." + std::to_string(ROCKSDB_PATCH);
52
47
  } else {
53
48
  return version;
54
49
  }
55
50
  }
56
-
51
+
57
52
  std::string GetRocksBuildInfoAsString(const std::string& program, bool verbose) {
58
53
  std::string info = program + " (RocksDB) " + GetRocksVersionAsString(true);
59
54
  if (verbose) {
@@ -67,4 +62,3 @@ std::string GetRocksBuildInfoAsString(const std::string& program, bool verbose)
67
62
  return info;
68
63
  }
69
64
  } // namespace ROCKSDB_NAMESPACE
70
-
@@ -40,6 +40,8 @@ include(GoogleTest)
40
40
  get_rocksdb_version(rocksdb_VERSION)
41
41
  project(rocksdb
42
42
  VERSION ${rocksdb_VERSION}
43
+ DESCRIPTION "An embeddable persistent key-value store for fast storage"
44
+ HOMEPAGE_URL https://rocksdb.org/
43
45
  LANGUAGES CXX C ASM)
44
46
 
45
47
  if(POLICY CMP0042)
@@ -335,9 +337,6 @@ endif()
335
337
  # Reset the required flags
336
338
  set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
337
339
 
338
- # thread_local is part of C++11 and later (TODO: clean up this define)
339
- add_definitions(-DROCKSDB_SUPPORT_THREAD_LOCAL)
340
-
341
340
  option(WITH_IOSTATS_CONTEXT "Enable IO stats context" ON)
342
341
  if (NOT WITH_IOSTATS_CONTEXT)
343
342
  add_definitions(-DNIOSTATS_CONTEXT)
@@ -596,6 +595,7 @@ set(SOURCES
596
595
  cache/cache_reservation_manager.cc
597
596
  cache/clock_cache.cc
598
597
  cache/compressed_secondary_cache.cc
598
+ cache/fast_lru_cache.cc
599
599
  cache/lru_cache.cc
600
600
  cache/sharded_cache.cc
601
601
  db/arena_wrapped_db_iter.cc
@@ -796,6 +796,8 @@ 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
800
+ util/cleanable.cc
799
801
  util/coding.cc
800
802
  util/compaction_job_stats_impl.cc
801
803
  util/comparator.cc
@@ -1119,8 +1121,20 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
1119
1121
  COMPATIBILITY SameMajorVersion
1120
1122
  )
1121
1123
 
1124
+ configure_file(
1125
+ ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
1126
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
1127
+ @ONLY
1128
+ )
1129
+
1122
1130
  install(DIRECTORY include/rocksdb COMPONENT devel DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
1123
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
+
1124
1138
  install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination})
1125
1139
 
1126
1140
  install(
@@ -1157,6 +1171,13 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
1157
1171
  COMPONENT devel
1158
1172
  DESTINATION ${package_config_destination}
1159
1173
  )
1174
+
1175
+ install(
1176
+ FILES
1177
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
1178
+ COMPONENT devel
1179
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
1180
+ )
1160
1181
  endif()
1161
1182
 
1162
1183
  option(WITH_ALL_TESTS "Build all test, rather than a small subset" ON)
@@ -1202,6 +1223,7 @@ if(WITH_TESTS)
1202
1223
  db/comparator_db_test.cc
1203
1224
  db/corruption_test.cc
1204
1225
  db/cuckoo_table_db_test.cc
1226
+ db/db_readonly_with_timestamp_test.cc
1205
1227
  db/db_with_timestamp_basic_test.cc
1206
1228
  db/db_block_cache_test.cc
1207
1229
  db/db_bloom_filter_test.cc
@@ -1370,6 +1392,7 @@ if(WITH_TESTS)
1370
1392
 
1371
1393
  set(TESTUTIL_SOURCE
1372
1394
  db/db_test_util.cc
1395
+ db/db_with_timestamp_test_util.cc
1373
1396
  monitoring/thread_status_updater_debug.cc
1374
1397
  table/mock_table.cc
1375
1398
  utilities/agg_merge/test_agg_merge.cc
@@ -8,7 +8,7 @@
8
8
 
9
9
  BASH_EXISTS := $(shell which bash)
10
10
  SHELL := $(shell which bash)
11
- include python.mk
11
+ include common.mk
12
12
 
13
13
  CLEAN_FILES = # deliberately empty, so we can append below.
14
14
  CFLAGS += ${EXTRA_CFLAGS}
@@ -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
@@ -340,6 +348,8 @@ endif
340
348
  # ASAN doesn't work well with jemalloc. If we're compiling with ASAN, we should use regular malloc.
341
349
  ifdef COMPILE_WITH_ASAN
342
350
  DISABLE_JEMALLOC=1
351
+ ASAN_OPTIONS?=detect_stack_use_after_return=1
352
+ export ASAN_OPTIONS
343
353
  EXEC_LDFLAGS += -fsanitize=address
344
354
  PLATFORM_CCFLAGS += -fsanitize=address
345
355
  PLATFORM_CXXFLAGS += -fsanitize=address
@@ -596,9 +606,6 @@ am__v_CCH_1 =
596
606
  check-headers: $(HEADER_OK_FILES)
597
607
 
598
608
  # options_settable_test doesn't pass with UBSAN as we use hack in the test
599
- ifdef COMPILE_WITH_UBSAN
600
- TESTS := $(shell echo $(TESTS) | sed 's/\boptions_settable_test\b//g')
601
- endif
602
609
  ifdef ASSERT_STATUS_CHECKED
603
610
  # TODO: finish fixing all tests to pass this check
604
611
  TESTS_FAILING_ASC = \
@@ -633,7 +640,6 @@ TESTS_PLATFORM_DEPENDENT := \
633
640
  db_basic_test \
634
641
  db_blob_basic_test \
635
642
  db_encryption_test \
636
- db_test2 \
637
643
  external_sst_file_basic_test \
638
644
  auto_roll_logger_test \
639
645
  bloom_test \
@@ -655,7 +661,6 @@ TESTS_PLATFORM_DEPENDENT := \
655
661
  rate_limiter_test \
656
662
  perf_context_test \
657
663
  iostats_context_test \
658
- db_wal_test \
659
664
 
660
665
  # Sort ROCKSDBTESTS_SUBSET for filtering, except db_test is special (expensive)
661
666
  # so is placed first (out-of-order)
@@ -796,17 +801,10 @@ $(SHARED4): $(LIB_OBJECTS)
796
801
  $(AM_V_CCLD) $(CXX) $(PLATFORM_SHARED_LDFLAGS)$(SHARED3) $(LIB_OBJECTS) $(LDFLAGS) -o $@
797
802
  endif # PLATFORM_SHARED_EXT
798
803
 
799
- .PHONY: blackbox_crash_test check clean coverage crash_test ldb_tests package \
800
- release tags tags0 valgrind_check whitebox_crash_test format static_lib shared_lib all \
801
- dbg rocksdbjavastatic rocksdbjava gen-pc install install-static install-shared uninstall \
802
- analyze tools tools_lib check-headers checkout_folly \
803
- blackbox_crash_test_with_atomic_flush whitebox_crash_test_with_atomic_flush \
804
- blackbox_crash_test_with_txn whitebox_crash_test_with_txn \
805
- blackbox_crash_test_with_best_efforts_recovery \
806
- blackbox_crash_test_with_ts whitebox_crash_test_with_ts \
807
- blackbox_crash_test_with_multiops_wc_txn \
808
- blackbox_crash_test_with_multiops_wp_txn
809
-
804
+ .PHONY: check clean coverage ldb_tests package dbg gen-pc build_size \
805
+ release tags tags0 valgrind_check format static_lib shared_lib all \
806
+ rocksdbjavastatic rocksdbjava install install-static install-shared \
807
+ uninstall analyze tools tools_lib check-headers checkout_folly
810
808
 
811
809
  all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(TESTS)
812
810
 
@@ -843,18 +841,6 @@ coverage: clean
843
841
  # Delete intermediate files
844
842
  $(FIND) . -type f \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f {} \;
845
843
 
846
- ifneq (,$(filter check parallel_check,$(MAKECMDGOALS)),)
847
- # Use /dev/shm if it has the sticky bit set (otherwise, /tmp),
848
- # and create a randomly-named rocksdb.XXXX directory therein.
849
- # We'll use that directory in the "make check" rules.
850
- ifeq ($(TMPD),)
851
- TMPDIR := $(shell echo $${TMPDIR:-/tmp})
852
- TMPD := $(shell f=/dev/shm; test -k $$f || f=$(TMPDIR); \
853
- perl -le 'use File::Temp "tempdir";' \
854
- -e 'print tempdir("'$$f'/rocksdb.XXXX", CLEANUP => 0)')
855
- endif
856
- endif
857
-
858
844
  # Run all tests in parallel, accumulating per-test logs in t/log-*.
859
845
  #
860
846
  # Each t/run-* file is a tiny generated bourne shell script that invokes one of
@@ -894,7 +880,7 @@ $(parallel_tests):
894
880
  TEST_SCRIPT=t/run-$$TEST_BINARY-$${TEST_NAME//\//-}; \
895
881
  printf '%s\n' \
896
882
  '#!/bin/sh' \
897
- "d=\$(TMPD)$$TEST_SCRIPT" \
883
+ "d=\$(TEST_TMPDIR)$$TEST_SCRIPT" \
898
884
  'mkdir -p $$d' \
899
885
  "TEST_TMPDIR=\$$d $(DRIVER) ./$$TEST_BINARY --gtest_filter=$$TEST_NAME" \
900
886
  > $$TEST_SCRIPT; \
@@ -954,7 +940,6 @@ endif
954
940
 
955
941
  .PHONY: check_0
956
942
  check_0:
957
- $(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
958
943
  printf '%s\n' '' \
959
944
  'To monitor subtest <duration,pass/fail,name>,' \
960
945
  ' run "make watch-log" in a separate window' ''; \
@@ -965,7 +950,8 @@ check_0:
965
950
  | $(prioritize_long_running_tests) \
966
951
  | grep -E '$(tests-regexp)' \
967
952
  | grep -E -v '$(EXCLUDE_TESTS_REGEX)' \
968
- | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu '{} $(parallel_redir)' ; \
953
+ | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
954
+ --tmpdir=$(TEST_TMPDIR) '{} $(parallel_redir)' ; \
969
955
  parallel_retcode=$$? ; \
970
956
  awk '{ if ($$7 != 0 || $$8 != 0) { if ($$7 == "Exitval") { h = $$0; } else { if (!f) print h; print; f = 1 } } } END { if(f) exit 1; }' < LOG ; \
971
957
  awk_retcode=$$?; \
@@ -976,7 +962,6 @@ valgrind-exclude-regexp = InlineSkipTest.ConcurrentInsert|TransactionStressTest.
976
962
  .PHONY: valgrind_check_0
977
963
  valgrind_check_0: test_log_prefix := valgrind_
978
964
  valgrind_check_0:
979
- $(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
980
965
  printf '%s\n' '' \
981
966
  'To monitor subtest <duration,pass/fail,name>,' \
982
967
  ' run "make watch-log" in a separate window' ''; \
@@ -988,10 +973,11 @@ valgrind_check_0:
988
973
  | grep -E '$(tests-regexp)' \
989
974
  | grep -E -v '$(valgrind-exclude-regexp)' \
990
975
  | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
991
- '(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
976
+ --tmpdir=$(TEST_TMPDIR) \
977
+ '(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
992
978
  $(parallel_redir)' \
993
979
 
994
- CLEAN_FILES += t LOG $(TMPD)
980
+ CLEAN_FILES += t LOG $(TEST_TMPDIR)
995
981
 
996
982
  # When running parallel "make check", you can monitor its progress
997
983
  # from another window.
@@ -1014,12 +1000,12 @@ check: all
1014
1000
  && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1015
1001
  grep -q 'GNU Parallel'; \
1016
1002
  then \
1017
- $(MAKE) T="$$t" TMPD=$(TMPD) check_0; \
1003
+ $(MAKE) T="$$t" check_0; \
1018
1004
  else \
1019
1005
  for t in $(TESTS); do \
1020
1006
  echo "===== Running $$t (`date`)"; ./$$t || exit 1; done; \
1021
1007
  fi
1022
- rm -rf $(TMPD)
1008
+ rm -rf $(TEST_TMPDIR)
1023
1009
  ifneq ($(PLATFORM), OS_AIX)
1024
1010
  $(PYTHON) tools/check_all_python.py
1025
1011
  ifeq ($(filter -DROCKSDB_LITE,$(OPT)),)
@@ -1046,31 +1032,31 @@ ldb_tests: ldb
1046
1032
  include crash_test.mk
1047
1033
 
1048
1034
  asan_check: clean
1049
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) check -j32
1035
+ COMPILE_WITH_ASAN=1 $(MAKE) check -j32
1050
1036
  $(MAKE) clean
1051
1037
 
1052
1038
  asan_crash_test: clean
1053
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test
1039
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test
1054
1040
  $(MAKE) clean
1055
1041
 
1056
1042
  whitebox_asan_crash_test: clean
1057
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
1043
+ COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
1058
1044
  $(MAKE) clean
1059
1045
 
1060
1046
  blackbox_asan_crash_test: clean
1061
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
1047
+ COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
1062
1048
  $(MAKE) clean
1063
1049
 
1064
1050
  asan_crash_test_with_atomic_flush: clean
1065
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_atomic_flush
1051
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_atomic_flush
1066
1052
  $(MAKE) clean
1067
1053
 
1068
1054
  asan_crash_test_with_txn: clean
1069
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
1055
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
1070
1056
  $(MAKE) clean
1071
1057
 
1072
1058
  asan_crash_test_with_best_efforts_recovery: clean
1073
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_best_efforts_recovery
1059
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_best_efforts_recovery
1074
1060
  $(MAKE) clean
1075
1061
 
1076
1062
  ubsan_check: clean
@@ -1116,11 +1102,11 @@ valgrind_test_some:
1116
1102
  valgrind_check: $(TESTS)
1117
1103
  $(MAKE) DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" gen_parallel_tests
1118
1104
  $(AM_V_GEN)if test "$(J)" != 1 \
1119
- && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1105
+ && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1120
1106
  grep -q 'GNU Parallel'; \
1121
1107
  then \
1122
- $(MAKE) TMPD=$(TMPD) \
1123
- DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" valgrind_check_0; \
1108
+ $(MAKE) \
1109
+ DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" valgrind_check_0; \
1124
1110
  else \
1125
1111
  for t in $(filter-out %skiplist_test options_settable_test,$(TESTS)); do \
1126
1112
  $(VALGRIND_VER) $(VALGRIND_OPTS) ./$$t; \
@@ -1140,27 +1126,6 @@ valgrind_check_some: $(ROCKSDBTESTS_SUBSET)
1140
1126
  fi; \
1141
1127
  done
1142
1128
 
1143
- ifneq ($(PAR_TEST),)
1144
- parloop:
1145
- ret_bad=0; \
1146
- for t in $(PAR_TEST); do \
1147
- echo "===== Running $$t in parallel $(NUM_PAR) (`date`)";\
1148
- if [ $(db_test) -eq 1 ]; then \
1149
- seq $(J) | v="$$t" build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{}; export TEST_TMPDIR=$$s;' \
1150
- 'timeout 2m ./db_test --gtest_filter=$$v >> $$s/log-{} 2>1'; \
1151
- else\
1152
- seq $(J) | v="./$$t" build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{};' \
1153
- 'export TEST_TMPDIR=$$s; timeout 10m $$v >> $$s/log-{} 2>1'; \
1154
- fi; \
1155
- ret_code=$$?; \
1156
- if [ $$ret_code -ne 0 ]; then \
1157
- ret_bad=$$ret_code; \
1158
- echo $$t exited with $$ret_code; \
1159
- fi; \
1160
- done; \
1161
- exit $$ret_bad;
1162
- endif
1163
-
1164
1129
  test_names = \
1165
1130
  ./db_test --gtest_list_tests \
1166
1131
  | perl -n \
@@ -1168,24 +1133,6 @@ test_names = \
1168
1133
  -e '/^(\s*)(\S+)/; !$$1 and do {$$p=$$2; break};' \
1169
1134
  -e 'print qq! $$p$$2!'
1170
1135
 
1171
- parallel_check: $(TESTS)
1172
- $(AM_V_GEN)if test "$(J)" > 1 \
1173
- && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1174
- grep -q 'GNU Parallel'; \
1175
- then \
1176
- echo Running in parallel $(J); \
1177
- else \
1178
- echo "Need to have GNU Parallel and J > 1"; exit 1; \
1179
- fi; \
1180
- ret_bad=0; \
1181
- echo $(J);\
1182
- echo Test Dir: $(TMPD); \
1183
- seq $(J) | build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{}; rm -rf $$s; mkdir $$s'; \
1184
- $(MAKE) PAR_TEST="$(shell $(test_names))" TMPD=$(TMPD) \
1185
- J=$(J) db_test=1 parloop; \
1186
- $(MAKE) PAR_TEST="$(filter-out db_test, $(TESTS))" \
1187
- TMPD=$(TMPD) J=$(J) db_test=0 parloop;
1188
-
1189
1136
  analyze: clean
1190
1137
  USE_CLANG=1 $(MAKE) analyze_incremental
1191
1138
 
@@ -1431,6 +1378,9 @@ db_blob_basic_test: $(OBJ_DIR)/db/blob/db_blob_basic_test.o $(TEST_LIBRARY) $(LI
1431
1378
  db_blob_compaction_test: $(OBJ_DIR)/db/blob/db_blob_compaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1432
1379
  $(AM_LINK)
1433
1380
 
1381
+ db_readonly_with_timestamp_test: $(OBJ_DIR)/db/db_readonly_with_timestamp_test.o $(TEST_LIBRARY) $(LIBRARY)
1382
+ $(AM_LINK)
1383
+
1434
1384
  db_with_timestamp_basic_test: $(OBJ_DIR)/db/db_with_timestamp_basic_test.o $(TEST_LIBRARY) $(LIBRARY)
1435
1385
  $(AM_LINK)
1436
1386
 
@@ -2114,6 +2064,7 @@ ifeq ($(PLATFORM), OS_OPENBSD)
2114
2064
  ROCKSDBJNILIB = librocksdbjni-openbsd$(ARCH).so
2115
2065
  ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_JAVA_VERSION)-openbsd$(ARCH).jar
2116
2066
  endif
2067
+ export SHA256_CMD
2117
2068
 
2118
2069
  zlib-$(ZLIB_VER).tar.gz:
2119
2070
  curl --fail --output zlib-$(ZLIB_VER).tar.gz --location ${ZLIB_DOWNLOAD_BASE}/zlib-$(ZLIB_VER).tar.gz
@@ -2246,7 +2197,7 @@ JAR_CMD := jar
2246
2197
  endif
2247
2198
  endif
2248
2199
  rocksdbjavastatic_javalib:
2249
- cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) javalib
2200
+ cd java; $(MAKE) javalib
2250
2201
  rm -f java/target/$(ROCKSDBJNILIB)
2251
2202
  $(CXX) $(CXXFLAGS) -I./java/. $(JAVA_INCLUDE) -shared -fPIC \
2252
2203
  -o ./java/target/$(ROCKSDBJNILIB) $(ALL_JNI_NATIVE_SOURCES) \
@@ -2360,7 +2311,7 @@ rocksdbjava: $(LIB_OBJECTS)
2360
2311
  ifeq ($(JAVA_HOME),)
2361
2312
  $(error JAVA_HOME is not set)
2362
2313
  endif
2363
- $(AM_V_GEN)cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) javalib;
2314
+ $(AM_V_GEN)cd java; $(MAKE) javalib;
2364
2315
  $(AM_V_at)rm -f ./java/target/$(ROCKSDBJNILIB)
2365
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)
2366
2317
  $(AM_V_at)cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR) HISTORY*.md
@@ -2372,14 +2323,13 @@ jclean:
2372
2323
  cd java;$(MAKE) clean;
2373
2324
 
2374
2325
  jtest_compile: rocksdbjava
2375
- cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) java_test
2326
+ cd java;$(MAKE) java_test
2376
2327
 
2377
2328
  jtest_run:
2378
2329
  cd java;$(MAKE) run_test
2379
2330
 
2380
2331
  jtest: rocksdbjava
2381
- cd java;$(MAKE) sample; SHA256_CMD='$(SHA256_CMD)' $(MAKE) test;
2382
- $(PYTHON) tools/check_all_python.py # TODO peterd: find a better place for this check in CI targets
2332
+ cd java;$(MAKE) sample test
2383
2333
 
2384
2334
  jdb_bench:
2385
2335
  cd java;$(MAKE) db_bench;
@@ -2405,6 +2355,38 @@ checkout_folly:
2405
2355
  @# NOTE: this hack is not needed if using FBCODE compiler config
2406
2356
  perl -pi -e 's/^(#include <boost)/\/\/$$1/' third-party/folly/folly/functional/Invoke.h
2407
2357
 
2358
+ # ---------------------------------------------------------------------------
2359
+ # Build size testing
2360
+ # ---------------------------------------------------------------------------
2361
+
2362
+ REPORT_BUILD_STATISTIC?=echo STATISTIC:
2363
+
2364
+ build_size:
2365
+ # === normal build, static ===
2366
+ $(MAKE) clean
2367
+ $(MAKE) static_lib
2368
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib $$(stat --printf="%s" librocksdb.a)
2369
+ strip librocksdb.a
2370
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_stripped $$(stat --printf="%s" librocksdb.a)
2371
+ # === normal build, shared ===
2372
+ $(MAKE) clean
2373
+ $(MAKE) shared_lib
2374
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib $$(stat --printf="%s" `readlink -f librocksdb.so`)
2375
+ strip `readlink -f librocksdb.so`
2376
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_stripped $$(stat --printf="%s" `readlink -f librocksdb.so`)
2377
+ # === lite build, static ===
2378
+ $(MAKE) clean
2379
+ $(MAKE) LITE=1 static_lib
2380
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_lite $$(stat --printf="%s" librocksdb.a)
2381
+ strip librocksdb.a
2382
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_lite_stripped $$(stat --printf="%s" librocksdb.a)
2383
+ # === lite build, shared ===
2384
+ $(MAKE) clean
2385
+ $(MAKE) LITE=1 shared_lib
2386
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_lite $$(stat --printf="%s" `readlink -f librocksdb.so`)
2387
+ strip `readlink -f librocksdb.so`
2388
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_lite_stripped $$(stat --printf="%s" `readlink -f librocksdb.so`)
2389
+
2408
2390
  # ---------------------------------------------------------------------------
2409
2391
  # Platform-specific compilation
2410
2392
  # ---------------------------------------------------------------------------