@nxtedition/rocksdb 6.0.0-alpha.0 → 6.0.2

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 (311) hide show
  1. package/BUILDING.md +10 -0
  2. package/binding.cc +14 -17
  3. package/binding.gyp +2 -2
  4. package/deps/rocksdb/build_version.cc +4 -10
  5. package/deps/rocksdb/rocksdb/CMakeLists.txt +17 -3
  6. package/deps/rocksdb/rocksdb/Makefile +57 -86
  7. package/deps/rocksdb/rocksdb/TARGETS +4 -0
  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/common.mk +30 -0
  14. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  15. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  16. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  17. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  18. package/deps/rocksdb/rocksdb/db/builder.cc +11 -4
  19. package/deps/rocksdb/rocksdb/db/c.cc +45 -0
  20. package/deps/rocksdb/rocksdb/db/c_test.c +25 -2
  21. package/deps/rocksdb/rocksdb/db/column_family.cc +4 -3
  22. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  23. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  24. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  25. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  26. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  27. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  28. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +25 -10
  29. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +6 -0
  30. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  31. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +69 -14
  32. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +21 -21
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +135 -32
  37. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  38. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  39. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  40. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  41. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
  42. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  43. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  44. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  45. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  46. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  48. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +9 -8
  49. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +1 -1
  50. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +5 -4
  51. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  52. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  53. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +9 -3
  54. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +6 -3
  55. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  56. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  57. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  58. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  59. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  60. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  61. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  62. package/deps/rocksdb/rocksdb/db/db_options_test.cc +12 -12
  63. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  64. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  65. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +15 -14
  66. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +6 -6
  67. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  68. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  69. package/deps/rocksdb/rocksdb/db/db_test.cc +44 -42
  70. package/deps/rocksdb/rocksdb/db/db_test2.cc +23 -19
  71. package/deps/rocksdb/rocksdb/db/db_test_util.cc +95 -17
  72. package/deps/rocksdb/rocksdb/db/db_test_util.h +48 -0
  73. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  74. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  75. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +4 -4
  76. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  77. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  78. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  79. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  80. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +34 -12
  81. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +3 -0
  82. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  83. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  84. package/deps/rocksdb/rocksdb/db/flush_job.cc +18 -4
  85. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  86. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  87. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  88. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -0
  89. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  90. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  91. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  92. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  93. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  94. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  95. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  96. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  97. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  98. package/deps/rocksdb/rocksdb/db/repair.cc +1 -1
  99. package/deps/rocksdb/rocksdb/db/repair_test.cc +5 -5
  100. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  101. package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -4
  102. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  103. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -5
  104. package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -2
  105. package/deps/rocksdb/rocksdb/db/version_set.cc +2 -2
  106. package/deps/rocksdb/rocksdb/db/version_set.h +3 -3
  107. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  108. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  109. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  110. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  111. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  112. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  113. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  114. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +7 -6
  115. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  116. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  117. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +31 -6
  118. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  119. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  120. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  121. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +359 -275
  122. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  123. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  124. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  125. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  126. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  127. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  128. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  129. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  130. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  131. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  132. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  133. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  134. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  135. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  136. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  137. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -1
  138. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  139. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  140. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  141. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +69 -45
  142. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +3 -1
  143. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +35 -0
  144. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  145. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  146. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  147. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  148. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  149. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  150. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  151. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  152. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +28 -3
  153. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  154. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  155. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  156. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  157. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  158. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  159. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -103
  160. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  161. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  162. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  163. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  164. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  165. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  166. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  167. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  168. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  169. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  170. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  171. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  172. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  173. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  174. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +2 -8
  175. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  176. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  177. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  178. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  179. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  180. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  181. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  182. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  183. package/deps/rocksdb/rocksdb/options/cf_options.cc +34 -38
  184. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  185. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  186. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  187. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  188. package/deps/rocksdb/rocksdb/options/db_options.cc +38 -17
  189. package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
  190. package/deps/rocksdb/rocksdb/options/options_helper.cc +82 -39
  191. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  192. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -3
  193. package/deps/rocksdb/rocksdb/options/options_test.cc +115 -59
  194. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  195. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  196. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  197. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  198. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  199. package/deps/rocksdb/rocksdb/src.mk +2 -0
  200. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  201. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  202. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  203. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  204. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +14 -4
  205. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  206. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +1 -1
  207. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +85 -41
  208. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +42 -72
  209. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +7 -5
  210. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  211. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
  212. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  213. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  214. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  215. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  216. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  217. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -1
  218. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +6 -3
  219. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  220. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -5
  221. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  222. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  223. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  224. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  225. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  226. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  227. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  228. package/deps/rocksdb/rocksdb/table/multiget_context.h +14 -11
  229. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  230. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  231. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  232. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  233. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  234. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  235. package/deps/rocksdb/rocksdb/table/unique_id.cc +57 -25
  236. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +34 -4
  237. package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -1
  238. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  239. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  240. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  241. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  242. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  243. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +254 -98
  244. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  245. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  246. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  247. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  248. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  249. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  250. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +17 -3
  251. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  252. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  253. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  254. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  255. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  256. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  257. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  258. package/deps/rocksdb/rocksdb/util/compression.h +7 -7
  259. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  260. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  261. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  262. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  263. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  264. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  265. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  266. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  267. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  268. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  269. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  270. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  271. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  272. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  273. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  274. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  275. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  276. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  277. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  278. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  279. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  280. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  281. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  282. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  283. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  284. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  285. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  286. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  287. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  288. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  289. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  290. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  291. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  292. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  293. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  294. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  295. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  296. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  297. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  298. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  299. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  300. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  301. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  302. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  303. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  304. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  305. package/deps/rocksdb/rocksdb.gyp +40 -31
  306. package/package.json +2 -2
  307. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  308. package/prebuilds/linux-x64/node.napi.node +0 -0
  309. package/deps/rocksdb/rocksdb/python.mk +0 -9
  310. package/prebuilds/darwin-x64/node.napi.node +0 -0
  311. package/prebuilds/linux-arm64/node.napi.node +0 -0
package/BUILDING.md ADDED
@@ -0,0 +1,10 @@
1
+ # LINUX
2
+
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`.
6
+
7
+ # OSX
8
+
9
+ - Run `./configure` in `deps/liburing`.
10
+ - `brew install zstd@1.5.2`
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()),
@@ -735,7 +726,7 @@ struct GetWorker final : public Worker {
735
726
  options.fill_cache = fillCache_;
736
727
  options.snapshot = snapshot_.get();
737
728
 
738
- auto status = database.db_->Get(options, key_, &value_);
729
+ auto status = database.db_->Get(options, database.db_->DefaultColumnFamily(), key_, &value_);
739
730
 
740
731
  key_.clear();
741
732
  snapshot_ = nullptr;
@@ -757,7 +748,7 @@ struct GetWorker final : public Worker {
757
748
 
758
749
  private:
759
750
  std::string key_;
760
- std::string value_;
751
+ rocksdb::PinnableSlice value_;
761
752
  const bool asBuffer_;
762
753
  const bool fillCache_;
763
754
  std::shared_ptr<const rocksdb::Snapshot> snapshot_;
@@ -1080,18 +1071,24 @@ struct NextWorker final : public Worker {
1080
1071
  if (iterator_->keys_ && iterator_->values_) {
1081
1072
  auto k = iterator_->CurrentKey();
1082
1073
  auto v = iterator_->CurrentValue();
1083
- cache_.emplace_back(k.data(), k.size());
1084
- cache_.emplace_back(v.data(), v.size());
1074
+ cache_.push_back({});
1075
+ cache_.back().PinSelf(k);
1076
+ cache_.push_back({});
1077
+ cache_.back().PinSelf(v);
1085
1078
  bytesRead += k.size() + v.size();
1086
1079
  } else if (iterator_->keys_) {
1087
1080
  auto k = iterator_->CurrentKey();
1088
- cache_.emplace_back(k.data(), k.size());
1089
1081
  cache_.push_back({});
1082
+ cache_.back().PinSelf(k);
1083
+ cache_.push_back({});
1084
+ // no value
1090
1085
  bytesRead += k.size();
1091
1086
  } else if (iterator_->values_) {
1092
1087
  auto v = iterator_->CurrentValue();
1093
1088
  cache_.push_back({});
1094
- cache_.emplace_back(v.data(), v.size());
1089
+ // no key
1090
+ cache_.push_back({});
1091
+ cache_.back().PinSelf(v);
1095
1092
  bytesRead += v.size();
1096
1093
  }
1097
1094
 
@@ -1130,7 +1127,7 @@ struct NextWorker final : public Worker {
1130
1127
  }
1131
1128
 
1132
1129
  private:
1133
- std::vector<std::string> cache_;
1130
+ std::vector<rocksdb::PinnableSlice> cache_;
1134
1131
  Iterator* iterator_ = nullptr;
1135
1132
  uint32_t size_ = 0;
1136
1133
  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,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/cleanable.cc
799
800
  util/coding.cc
800
801
  util/compaction_job_stats_impl.cc
801
802
  util/comparator.cc
@@ -1119,6 +1120,12 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
1119
1120
  COMPATIBILITY SameMajorVersion
1120
1121
  )
1121
1122
 
1123
+ configure_file(
1124
+ ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
1125
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
1126
+ @ONLY
1127
+ )
1128
+
1122
1129
  install(DIRECTORY include/rocksdb COMPONENT devel DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
1123
1130
 
1124
1131
  install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination})
@@ -1157,6 +1164,13 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
1157
1164
  COMPONENT devel
1158
1165
  DESTINATION ${package_config_destination}
1159
1166
  )
1167
+
1168
+ install(
1169
+ FILES
1170
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
1171
+ COMPONENT devel
1172
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
1173
+ )
1160
1174
  endif()
1161
1175
 
1162
1176
  option(WITH_ALL_TESTS "Build all test, rather than a small subset" ON)
@@ -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}
@@ -340,6 +340,8 @@ endif
340
340
  # ASAN doesn't work well with jemalloc. If we're compiling with ASAN, we should use regular malloc.
341
341
  ifdef COMPILE_WITH_ASAN
342
342
  DISABLE_JEMALLOC=1
343
+ ASAN_OPTIONS?=detect_stack_use_after_return=1
344
+ export ASAN_OPTIONS
343
345
  EXEC_LDFLAGS += -fsanitize=address
344
346
  PLATFORM_CCFLAGS += -fsanitize=address
345
347
  PLATFORM_CXXFLAGS += -fsanitize=address
@@ -596,9 +598,6 @@ am__v_CCH_1 =
596
598
  check-headers: $(HEADER_OK_FILES)
597
599
 
598
600
  # 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
601
  ifdef ASSERT_STATUS_CHECKED
603
602
  # TODO: finish fixing all tests to pass this check
604
603
  TESTS_FAILING_ASC = \
@@ -633,7 +632,6 @@ TESTS_PLATFORM_DEPENDENT := \
633
632
  db_basic_test \
634
633
  db_blob_basic_test \
635
634
  db_encryption_test \
636
- db_test2 \
637
635
  external_sst_file_basic_test \
638
636
  auto_roll_logger_test \
639
637
  bloom_test \
@@ -655,7 +653,6 @@ TESTS_PLATFORM_DEPENDENT := \
655
653
  rate_limiter_test \
656
654
  perf_context_test \
657
655
  iostats_context_test \
658
- db_wal_test \
659
656
 
660
657
  # Sort ROCKSDBTESTS_SUBSET for filtering, except db_test is special (expensive)
661
658
  # so is placed first (out-of-order)
@@ -796,17 +793,10 @@ $(SHARED4): $(LIB_OBJECTS)
796
793
  $(AM_V_CCLD) $(CXX) $(PLATFORM_SHARED_LDFLAGS)$(SHARED3) $(LIB_OBJECTS) $(LDFLAGS) -o $@
797
794
  endif # PLATFORM_SHARED_EXT
798
795
 
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
-
796
+ .PHONY: check clean coverage ldb_tests package dbg gen-pc build_size \
797
+ release tags tags0 valgrind_check format static_lib shared_lib all \
798
+ rocksdbjavastatic rocksdbjava install install-static install-shared \
799
+ uninstall analyze tools tools_lib check-headers checkout_folly
810
800
 
811
801
  all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(TESTS)
812
802
 
@@ -843,18 +833,6 @@ coverage: clean
843
833
  # Delete intermediate files
844
834
  $(FIND) . -type f \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f {} \;
845
835
 
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
836
  # Run all tests in parallel, accumulating per-test logs in t/log-*.
859
837
  #
860
838
  # Each t/run-* file is a tiny generated bourne shell script that invokes one of
@@ -894,7 +872,7 @@ $(parallel_tests):
894
872
  TEST_SCRIPT=t/run-$$TEST_BINARY-$${TEST_NAME//\//-}; \
895
873
  printf '%s\n' \
896
874
  '#!/bin/sh' \
897
- "d=\$(TMPD)$$TEST_SCRIPT" \
875
+ "d=\$(TEST_TMPDIR)$$TEST_SCRIPT" \
898
876
  'mkdir -p $$d' \
899
877
  "TEST_TMPDIR=\$$d $(DRIVER) ./$$TEST_BINARY --gtest_filter=$$TEST_NAME" \
900
878
  > $$TEST_SCRIPT; \
@@ -954,7 +932,6 @@ endif
954
932
 
955
933
  .PHONY: check_0
956
934
  check_0:
957
- $(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
958
935
  printf '%s\n' '' \
959
936
  'To monitor subtest <duration,pass/fail,name>,' \
960
937
  ' run "make watch-log" in a separate window' ''; \
@@ -965,7 +942,8 @@ check_0:
965
942
  | $(prioritize_long_running_tests) \
966
943
  | grep -E '$(tests-regexp)' \
967
944
  | grep -E -v '$(EXCLUDE_TESTS_REGEX)' \
968
- | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu '{} $(parallel_redir)' ; \
945
+ | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
946
+ --tmpdir=$(TEST_TMPDIR) '{} $(parallel_redir)' ; \
969
947
  parallel_retcode=$$? ; \
970
948
  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
949
  awk_retcode=$$?; \
@@ -976,7 +954,6 @@ valgrind-exclude-regexp = InlineSkipTest.ConcurrentInsert|TransactionStressTest.
976
954
  .PHONY: valgrind_check_0
977
955
  valgrind_check_0: test_log_prefix := valgrind_
978
956
  valgrind_check_0:
979
- $(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
980
957
  printf '%s\n' '' \
981
958
  'To monitor subtest <duration,pass/fail,name>,' \
982
959
  ' run "make watch-log" in a separate window' ''; \
@@ -988,10 +965,11 @@ valgrind_check_0:
988
965
  | grep -E '$(tests-regexp)' \
989
966
  | grep -E -v '$(valgrind-exclude-regexp)' \
990
967
  | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
991
- '(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
968
+ --tmpdir=$(TEST_TMPDIR) \
969
+ '(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
992
970
  $(parallel_redir)' \
993
971
 
994
- CLEAN_FILES += t LOG $(TMPD)
972
+ CLEAN_FILES += t LOG $(TEST_TMPDIR)
995
973
 
996
974
  # When running parallel "make check", you can monitor its progress
997
975
  # from another window.
@@ -1014,12 +992,12 @@ check: all
1014
992
  && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1015
993
  grep -q 'GNU Parallel'; \
1016
994
  then \
1017
- $(MAKE) T="$$t" TMPD=$(TMPD) check_0; \
995
+ $(MAKE) T="$$t" check_0; \
1018
996
  else \
1019
997
  for t in $(TESTS); do \
1020
998
  echo "===== Running $$t (`date`)"; ./$$t || exit 1; done; \
1021
999
  fi
1022
- rm -rf $(TMPD)
1000
+ rm -rf $(TEST_TMPDIR)
1023
1001
  ifneq ($(PLATFORM), OS_AIX)
1024
1002
  $(PYTHON) tools/check_all_python.py
1025
1003
  ifeq ($(filter -DROCKSDB_LITE,$(OPT)),)
@@ -1046,31 +1024,31 @@ ldb_tests: ldb
1046
1024
  include crash_test.mk
1047
1025
 
1048
1026
  asan_check: clean
1049
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) check -j32
1027
+ COMPILE_WITH_ASAN=1 $(MAKE) check -j32
1050
1028
  $(MAKE) clean
1051
1029
 
1052
1030
  asan_crash_test: clean
1053
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test
1031
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test
1054
1032
  $(MAKE) clean
1055
1033
 
1056
1034
  whitebox_asan_crash_test: clean
1057
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
1035
+ COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
1058
1036
  $(MAKE) clean
1059
1037
 
1060
1038
  blackbox_asan_crash_test: clean
1061
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
1039
+ COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
1062
1040
  $(MAKE) clean
1063
1041
 
1064
1042
  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
1043
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_atomic_flush
1066
1044
  $(MAKE) clean
1067
1045
 
1068
1046
  asan_crash_test_with_txn: clean
1069
- ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
1047
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
1070
1048
  $(MAKE) clean
1071
1049
 
1072
1050
  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
1051
+ COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_best_efforts_recovery
1074
1052
  $(MAKE) clean
1075
1053
 
1076
1054
  ubsan_check: clean
@@ -1116,11 +1094,11 @@ valgrind_test_some:
1116
1094
  valgrind_check: $(TESTS)
1117
1095
  $(MAKE) DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" gen_parallel_tests
1118
1096
  $(AM_V_GEN)if test "$(J)" != 1 \
1119
- && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1097
+ && (build_tools/gnu_parallel --gnu --help 2>/dev/null) | \
1120
1098
  grep -q 'GNU Parallel'; \
1121
1099
  then \
1122
- $(MAKE) TMPD=$(TMPD) \
1123
- DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" valgrind_check_0; \
1100
+ $(MAKE) \
1101
+ DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" valgrind_check_0; \
1124
1102
  else \
1125
1103
  for t in $(filter-out %skiplist_test options_settable_test,$(TESTS)); do \
1126
1104
  $(VALGRIND_VER) $(VALGRIND_OPTS) ./$$t; \
@@ -1140,27 +1118,6 @@ valgrind_check_some: $(ROCKSDBTESTS_SUBSET)
1140
1118
  fi; \
1141
1119
  done
1142
1120
 
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
1121
  test_names = \
1165
1122
  ./db_test --gtest_list_tests \
1166
1123
  | perl -n \
@@ -1168,24 +1125,6 @@ test_names = \
1168
1125
  -e '/^(\s*)(\S+)/; !$$1 and do {$$p=$$2; break};' \
1169
1126
  -e 'print qq! $$p$$2!'
1170
1127
 
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
1128
  analyze: clean
1190
1129
  USE_CLANG=1 $(MAKE) analyze_incremental
1191
1130
 
@@ -2405,6 +2344,38 @@ checkout_folly:
2405
2344
  @# NOTE: this hack is not needed if using FBCODE compiler config
2406
2345
  perl -pi -e 's/^(#include <boost)/\/\/$$1/' third-party/folly/folly/functional/Invoke.h
2407
2346
 
2347
+ # ---------------------------------------------------------------------------
2348
+ # Build size testing
2349
+ # ---------------------------------------------------------------------------
2350
+
2351
+ REPORT_BUILD_STATISTIC?=echo STATISTIC:
2352
+
2353
+ build_size:
2354
+ # === normal build, static ===
2355
+ $(MAKE) clean
2356
+ $(MAKE) static_lib
2357
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib $$(stat --printf="%s" librocksdb.a)
2358
+ strip librocksdb.a
2359
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_stripped $$(stat --printf="%s" librocksdb.a)
2360
+ # === normal build, shared ===
2361
+ $(MAKE) clean
2362
+ $(MAKE) shared_lib
2363
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib $$(stat --printf="%s" `readlink -f librocksdb.so`)
2364
+ strip `readlink -f librocksdb.so`
2365
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_stripped $$(stat --printf="%s" `readlink -f librocksdb.so`)
2366
+ # === lite build, static ===
2367
+ $(MAKE) clean
2368
+ $(MAKE) LITE=1 static_lib
2369
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_lite $$(stat --printf="%s" librocksdb.a)
2370
+ strip librocksdb.a
2371
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.static_lib_lite_stripped $$(stat --printf="%s" librocksdb.a)
2372
+ # === lite build, shared ===
2373
+ $(MAKE) clean
2374
+ $(MAKE) LITE=1 shared_lib
2375
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_lite $$(stat --printf="%s" `readlink -f librocksdb.so`)
2376
+ strip `readlink -f librocksdb.so`
2377
+ $(REPORT_BUILD_STATISTIC) rocksdb.build_size.shared_lib_lite_stripped $$(stat --printf="%s" `readlink -f librocksdb.so`)
2378
+
2408
2379
  # ---------------------------------------------------------------------------
2409
2380
  # Platform-specific compilation
2410
2381
  # ---------------------------------------------------------------------------
@@ -15,6 +15,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
15
15
  "cache/cache_reservation_manager.cc",
16
16
  "cache/clock_cache.cc",
17
17
  "cache/compressed_secondary_cache.cc",
18
+ "cache/fast_lru_cache.cc",
18
19
  "cache/lru_cache.cc",
19
20
  "cache/sharded_cache.cc",
20
21
  "db/arena_wrapped_db_iter.cc",
@@ -224,6 +225,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
224
225
  "trace_replay/trace_record_result.cc",
225
226
  "trace_replay/trace_replay.cc",
226
227
  "util/build_version.cc",
228
+ "util/cleanable.cc",
227
229
  "util/coding.cc",
228
230
  "util/compaction_job_stats_impl.cc",
229
231
  "util/comparator.cc",
@@ -334,6 +336,7 @@ cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
334
336
  "cache/cache_reservation_manager.cc",
335
337
  "cache/clock_cache.cc",
336
338
  "cache/compressed_secondary_cache.cc",
339
+ "cache/fast_lru_cache.cc",
337
340
  "cache/lru_cache.cc",
338
341
  "cache/sharded_cache.cc",
339
342
  "db/arena_wrapped_db_iter.cc",
@@ -543,6 +546,7 @@ cpp_library_wrapper(name="rocksdb_whole_archive_lib", srcs=[
543
546
  "trace_replay/trace_record_result.cc",
544
547
  "trace_replay/trace_replay.cc",
545
548
  "util/build_version.cc",
549
+ "util/cleanable.cc",
546
550
  "util/coding.cc",
547
551
  "util/compaction_job_stats_impl.cc",
548
552
  "util/comparator.cc",