@nxtedition/rocksdb 5.2.21 → 5.2.28

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 (923) hide show
  1. package/binding.cc +510 -967
  2. package/binding.gyp +78 -72
  3. package/chained-batch.js +1 -2
  4. package/deps/rocksdb/build_version.cc +70 -4
  5. package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
  6. package/deps/rocksdb/rocksdb/Makefile +459 -469
  7. package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
  8. package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
  9. package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
  10. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
  11. package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
  12. package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
  13. package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
  14. package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
  15. package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
  16. package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
  17. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
  18. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
  19. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
  20. package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
  21. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
  22. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
  23. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
  24. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
  25. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
  26. package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
  27. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
  28. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
  29. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
  30. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +7 -0
  31. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
  32. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
  33. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
  34. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
  35. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
  36. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
  37. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
  38. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
  39. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
  40. package/deps/rocksdb/rocksdb/crash_test.mk +93 -0
  41. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
  42. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
  43. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
  44. package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
  45. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
  46. package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
  47. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
  48. package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
  49. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
  50. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
  51. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
  52. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
  53. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
  54. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
  55. package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
  56. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
  57. package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
  58. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
  59. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
  60. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
  61. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
  62. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
  63. package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
  64. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
  65. package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
  66. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
  67. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
  68. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
  69. package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
  70. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
  71. package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
  72. package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
  73. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
  74. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
  75. package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
  76. package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
  77. package/deps/rocksdb/rocksdb/db/builder.h +16 -37
  78. package/deps/rocksdb/rocksdb/db/c.cc +413 -208
  79. package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
  80. package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
  81. package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
  82. package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
  83. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
  84. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
  85. package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
  86. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
  87. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
  88. package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
  89. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
  90. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
  91. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
  92. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
  93. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
  94. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
  95. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
  96. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
  97. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
  98. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
  99. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
  100. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
  101. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
  102. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
  103. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
  104. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
  105. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
  106. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
  107. package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
  108. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
  110. package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
  111. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
  112. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
  113. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
  114. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
  115. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
  116. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
  117. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
  118. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
  119. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
  120. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
  121. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
  122. package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
  123. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
  124. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
  125. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
  126. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
  127. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
  128. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
  129. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
  130. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
  131. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
  132. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
  133. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
  134. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
  135. package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
  136. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
  137. package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
  138. package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
  139. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
  140. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
  141. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
  142. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
  143. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
  144. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
  145. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
  146. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
  147. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
  148. package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
  149. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
  150. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
  151. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
  152. package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
  153. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
  154. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
  155. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
  156. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
  157. package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
  158. package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
  159. package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
  160. package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
  161. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
  162. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
  163. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
  164. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
  165. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
  166. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
  167. package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
  168. package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
  169. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
  170. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
  171. package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
  172. package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
  173. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
  174. package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
  175. package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
  176. package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
  177. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
  178. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
  179. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
  180. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
  181. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
  182. package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
  183. package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
  184. package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
  185. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
  186. package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
  187. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
  188. package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
  189. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
  190. package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
  191. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
  192. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
  193. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
  194. package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
  195. package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
  196. package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
  197. package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
  198. package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
  199. package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
  200. package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
  201. package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
  202. package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
  203. package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
  204. package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
  205. package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
  206. package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
  207. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
  208. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
  209. package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
  210. package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
  211. package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
  212. package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
  213. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
  214. package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
  215. package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
  216. package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
  217. package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
  218. package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
  219. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
  220. package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
  221. package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
  222. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
  223. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
  224. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
  225. package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
  226. package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
  227. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
  228. package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
  229. package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
  230. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
  231. package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
  232. package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
  233. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
  234. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
  235. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
  236. package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
  237. package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
  238. package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
  239. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
  240. package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
  241. package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
  242. package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
  243. package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
  244. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
  245. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
  246. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
  247. package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
  248. package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
  249. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
  250. package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
  251. package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
  252. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
  253. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
  254. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
  255. package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
  256. package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
  257. package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
  258. package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
  259. package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
  260. package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
  261. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
  262. package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
  263. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
  264. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
  265. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
  266. package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
  267. package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
  268. package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
  269. package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
  270. package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
  271. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
  272. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
  273. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
  274. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
  275. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
  276. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
  277. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
  278. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
  279. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
  280. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
  281. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
  282. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
  283. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
  284. package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
  285. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
  286. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
  287. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
  288. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
  289. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
  290. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
  291. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
  292. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
  293. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
  294. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
  295. package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
  296. package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
  297. package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
  298. package/deps/rocksdb/rocksdb/env/env.cc +632 -42
  299. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
  300. package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
  301. package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
  302. package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
  303. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
  304. package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
  305. package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
  306. package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
  307. package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
  308. package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
  309. package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
  310. package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
  311. package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
  312. package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
  313. package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
  314. package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
  315. package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
  316. package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
  317. package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
  318. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
  319. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
  320. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
  321. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
  322. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
  323. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
  324. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
  325. package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
  326. package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
  327. package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
  328. package/deps/rocksdb/rocksdb/file/filename.h +13 -8
  329. package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
  330. package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
  331. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
  332. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
  333. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
  334. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
  335. package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
  336. package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
  337. package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
  338. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
  339. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
  340. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
  341. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
  342. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
  343. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
  344. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
  345. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
  346. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
  347. package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
  348. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
  349. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
  350. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
  351. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
  352. package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
  353. package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
  354. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
  355. package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
  356. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
  357. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
  358. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
  359. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
  360. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
  361. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
  362. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
  363. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
  364. package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
  365. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
  366. package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
  367. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
  368. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
  369. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
  370. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
  371. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
  372. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
  373. package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
  374. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
  375. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
  376. package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
  377. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
  378. package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
  379. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
  380. package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
  381. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
  382. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
  383. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
  384. package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
  385. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
  386. package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
  387. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
  388. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
  389. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
  390. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
  391. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
  392. package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
  393. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
  394. package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
  395. package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
  396. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
  397. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
  398. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
  400. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
  401. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
  402. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
  403. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
  404. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
  405. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
  406. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
  407. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
  408. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
  409. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
  410. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
  411. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
  412. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
  413. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
  414. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
  415. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
  416. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
  417. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
  418. package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
  419. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
  420. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
  421. package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
  422. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
  423. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
  424. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
  425. package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
  426. package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
  427. package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
  428. package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
  429. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  430. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
  431. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
  432. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
  433. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
  434. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
  435. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
  436. package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
  437. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
  438. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
  439. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
  440. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
  441. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
  442. package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
  443. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
  444. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
  445. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
  446. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
  447. package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
  448. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
  449. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
  450. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
  451. package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
  452. package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
  453. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
  454. package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
  455. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
  456. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
  457. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
  458. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
  459. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
  460. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
  461. package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
  462. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
  463. package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
  464. package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
  465. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
  466. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
  467. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
  468. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
  469. package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
  470. package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
  471. package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
  472. package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
  473. package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
  474. package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
  475. package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
  476. package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
  477. package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
  478. package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
  479. package/deps/rocksdb/rocksdb/options/options.cc +49 -17
  480. package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
  481. package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
  482. package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
  483. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
  484. package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
  485. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
  486. package/deps/rocksdb/rocksdb/port/lang.h +52 -0
  487. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  488. package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
  489. package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
  490. package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
  491. package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
  492. package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
  493. package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
  494. package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
  495. package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
  496. package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
  497. package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
  498. package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
  499. package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
  500. package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
  501. package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
  502. package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
  503. package/deps/rocksdb/rocksdb/python.mk +9 -0
  504. package/deps/rocksdb/rocksdb/src.mk +82 -34
  505. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
  506. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
  507. package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
  508. package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
  509. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
  510. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
  511. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
  512. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
  513. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
  514. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
  515. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
  516. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
  517. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
  518. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
  519. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
  520. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
  521. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
  522. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
  523. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
  524. package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
  525. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
  526. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
  527. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
  528. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
  529. package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
  530. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
  531. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
  532. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
  533. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
  534. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
  535. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
  536. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
  537. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
  538. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
  539. package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
  540. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  541. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
  542. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  543. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
  544. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
  545. package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
  546. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
  547. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
  548. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
  549. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
  550. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
  551. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
  552. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
  553. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
  554. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
  555. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
  556. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
  557. package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
  558. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
  559. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
  560. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
  561. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
  562. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
  563. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
  564. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
  565. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
  566. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
  567. package/deps/rocksdb/rocksdb/table/format.cc +258 -104
  568. package/deps/rocksdb/rocksdb/table/format.h +120 -109
  569. package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
  570. package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
  571. package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
  572. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
  573. package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
  574. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
  575. package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
  576. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
  577. package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
  578. package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
  579. package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
  580. package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
  581. package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
  582. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
  583. package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
  584. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
  585. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
  586. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
  587. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
  588. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
  589. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
  590. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
  591. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
  592. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
  593. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
  594. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
  595. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
  596. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
  597. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
  598. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
  599. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
  600. package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
  601. package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
  602. package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
  603. package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
  604. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
  605. package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
  606. package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
  607. package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
  608. package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
  609. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
  610. package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
  611. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
  612. package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
  613. package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
  614. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
  615. package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
  616. package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
  617. package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
  618. package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
  619. package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
  620. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
  621. package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
  622. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
  623. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
  624. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
  625. package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
  626. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
  627. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
  628. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
  629. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
  630. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
  631. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
  632. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
  633. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
  634. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
  635. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  636. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
  637. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
  638. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
  639. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
  640. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
  641. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
  642. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
  643. package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
  644. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
  645. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
  646. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
  647. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
  648. package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
  649. package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
  650. package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
  651. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
  652. package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
  653. package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
  654. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
  655. package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
  656. package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
  657. package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
  658. package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
  659. package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
  660. package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
  661. package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
  662. package/deps/rocksdb/rocksdb/util/channel.h +2 -0
  663. package/deps/rocksdb/rocksdb/util/coding.h +1 -33
  664. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
  665. package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
  666. package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
  667. package/deps/rocksdb/rocksdb/util/compression.h +212 -7
  668. package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
  669. package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
  670. package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
  671. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
  672. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
  673. package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
  674. package/deps/rocksdb/rocksdb/util/defer.h +30 -1
  675. package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
  676. package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
  677. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
  678. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
  679. package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
  680. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
  681. package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
  682. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
  683. package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
  684. package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
  685. package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
  686. package/deps/rocksdb/rocksdb/util/hash.h +31 -1
  687. package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
  688. package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
  689. package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
  690. package/deps/rocksdb/rocksdb/util/heap.h +6 -1
  691. package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
  692. package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
  693. package/deps/rocksdb/rocksdb/util/math.h +74 -7
  694. package/deps/rocksdb/rocksdb/util/math128.h +13 -1
  695. package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
  696. package/deps/rocksdb/rocksdb/util/random.cc +9 -0
  697. package/deps/rocksdb/rocksdb/util/random.h +6 -0
  698. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
  699. package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
  700. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
  701. package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
  702. package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
  703. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
  704. package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
  705. package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
  706. package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
  707. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
  708. package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
  709. package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
  710. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
  711. package/deps/rocksdb/rocksdb/util/status.cc +32 -29
  712. package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
  713. package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
  714. package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
  715. package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
  716. package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
  717. package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
  718. package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
  719. package/deps/rocksdb/rocksdb/util/timer.h +55 -46
  720. package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
  721. package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
  722. package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
  723. package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
  724. package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
  725. package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
  726. package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
  727. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
  728. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
  729. package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
  730. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
  731. package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
  732. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
  733. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
  734. package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
  735. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
  736. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
  737. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
  738. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
  739. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
  740. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
  741. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
  742. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
  743. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
  744. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
  745. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
  746. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
  747. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
  748. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
  749. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
  750. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
  751. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
  752. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
  753. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
  754. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
  755. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
  756. package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
  757. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
  758. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
  759. package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
  760. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
  761. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
  762. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
  763. package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
  764. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
  765. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
  766. package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
  767. package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
  768. package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
  769. package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
  770. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
  771. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
  772. package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
  773. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
  774. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
  775. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
  776. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
  777. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
  778. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
  779. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
  780. package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
  781. package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
  782. package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
  783. package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
  784. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
  785. package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
  786. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
  787. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
  788. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
  789. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
  790. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
  791. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
  792. package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
  793. package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
  794. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
  795. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
  796. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
  797. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
  798. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
  799. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
  800. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
  801. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
  802. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
  803. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
  804. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
  805. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
  806. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
  807. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
  808. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
  809. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
  810. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
  811. package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
  812. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
  813. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
  814. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
  815. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
  816. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
  817. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
  818. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
  819. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
  820. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
  821. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  822. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
  823. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
  824. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
  825. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
  826. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
  827. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
  828. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
  829. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
  830. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
  831. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
  832. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
  833. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
  834. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
  835. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
  836. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
  837. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
  838. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
  839. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
  840. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
  841. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
  842. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
  843. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
  844. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
  845. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
  846. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
  847. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
  848. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
  849. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
  850. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
  851. package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
  852. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
  853. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
  854. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
  855. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
  856. package/deps/rocksdb/rocksdb.gyp +425 -446
  857. package/index.js +5 -87
  858. package/package-lock.json +23687 -0
  859. package/package.json +8 -9
  860. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  861. package/prebuilds/darwin-x64/node.napi.node +0 -0
  862. package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
  863. package/deps/rocksdb/rocksdb/README.md +0 -32
  864. package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
  865. package/deps/rocksdb/rocksdb/hdfs/README +0 -23
  866. package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
  867. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
  868. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
  869. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
  870. package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
  871. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
  872. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
  873. package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
  874. package/deps/rocksdb/rocksdb/port/README +0 -10
  875. package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
  876. package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
  877. package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
  878. package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
  879. package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
  880. package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
  881. package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
  882. package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
  883. package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
  884. package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
  885. package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
  886. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
  887. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
  888. package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
  889. package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
  890. package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
  891. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
  892. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
  893. package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
  894. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
  895. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
  896. package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
  897. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
  898. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
  899. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
  900. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
  901. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
  902. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
  903. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
  904. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
  905. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
  906. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
  907. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
  908. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
  909. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
  910. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
  911. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
  912. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
  913. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
  914. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
  915. package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
  916. package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
  917. package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
  918. package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
  919. package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
  920. package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
  921. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
  922. package/deps/snappy/snappy-1.1.7/README.md +0 -149
  923. package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
@@ -8,11 +8,7 @@
8
8
 
9
9
  BASH_EXISTS := $(shell which bash)
10
10
  SHELL := $(shell which bash)
11
- # Default to python3. Some distros like CentOS 8 do not have `python`.
12
- ifeq ($(origin PYTHON), undefined)
13
- PYTHON := $(shell which python3 || which python || echo python3)
14
- endif
15
- export PYTHON
11
+ include python.mk
16
12
 
17
13
  CLEAN_FILES = # deliberately empty, so we can append below.
18
14
  CFLAGS += ${EXTRA_CFLAGS}
@@ -55,50 +51,25 @@ DEBUG_LEVEL?=1
55
51
  # Set the default LIB_MODE to static
56
52
  LIB_MODE?=static
57
53
 
58
- ifeq ($(MAKECMDGOALS),dbg)
59
- DEBUG_LEVEL=2
60
- endif
54
+ # OBJ_DIR is where the object files reside. Default to the current directory
55
+ OBJ_DIR?=.
61
56
 
62
- ifeq ($(MAKECMDGOALS),clean)
63
- DEBUG_LEVEL=0
64
- endif
57
+ # Check the MAKECMDGOALS to set the DEBUG_LEVEL and LIB_MODE appropriately
65
58
 
66
- ifeq ($(MAKECMDGOALS),release)
59
+ ifneq ($(filter clean release install, $(MAKECMDGOALS)),)
67
60
  DEBUG_LEVEL=0
68
61
  endif
69
-
70
- ifeq ($(MAKECMDGOALS),shared_lib)
71
- LIB_MODE=shared
62
+ ifneq ($(filter dbg, $(MAKECMDGOALS)),)
63
+ DEBUG_LEVEL=2
64
+ else ifneq ($(filter shared_lib install-shared, $(MAKECMDGOALS)),)
72
65
  DEBUG_LEVEL=0
73
- endif
74
-
75
- ifeq ($(MAKECMDGOALS),install-shared)
76
66
  LIB_MODE=shared
77
- DEBUG_LEVEL=0
78
- endif
79
-
80
- ifeq ($(MAKECMDGOALS),static_lib)
67
+ else ifneq ($(filter static_lib install-static, $(MAKECMDGOALS)),)
81
68
  DEBUG_LEVEL=0
82
69
  LIB_MODE=static
83
- endif
84
-
85
- ifeq ($(MAKECMDGOALS),install-static)
86
- DEBUG_LEVEL=0
87
- LIB_MODE=static
88
- endif
89
-
90
- ifeq ($(MAKECMDGOALS),install)
91
- DEBUG_LEVEL=0
92
- endif
93
-
94
-
95
- ifneq ($(findstring jtest, $(MAKECMDGOALS)),)
70
+ else ifneq ($(filter jtest rocksdbjava%, $(MAKECMDGOALS)),)
96
71
  OBJ_DIR=jl
97
72
  LIB_MODE=shared
98
- endif
99
-
100
- ifneq ($(findstring rocksdbjava, $(MAKECMDGOALS)),)
101
- LIB_MODE=shared
102
73
  ifneq ($(findstring rocksdbjavastatic, $(MAKECMDGOALS)),)
103
74
  OBJ_DIR=jls
104
75
  ifneq ($(DEBUG_LEVEL),2)
@@ -107,8 +78,6 @@ ifneq ($(findstring rocksdbjava, $(MAKECMDGOALS)),)
107
78
  ifeq ($(MAKECMDGOALS),rocksdbjavastaticpublish)
108
79
  DEBUG_LEVEL=0
109
80
  endif
110
- else
111
- OBJ_DIR=jl
112
81
  endif
113
82
  endif
114
83
 
@@ -161,12 +130,6 @@ CFLAGS += -DHAVE_POWER8
161
130
  HAVE_POWER8=1
162
131
  endif
163
132
 
164
- ifeq (,$(shell $(CXX) -fsyntax-only -march=armv8-a+crc+crypto -xc /dev/null 2>&1))
165
- CXXFLAGS += -march=armv8-a+crc+crypto
166
- CFLAGS += -march=armv8-a+crc+crypto
167
- ARMCRC_SOURCE=1
168
- endif
169
-
170
133
  # if we're compiling for shared libraries, add the shared flags
171
134
  ifeq ($(LIB_MODE),shared)
172
135
  CXXFLAGS += $(PLATFORM_SHARED_CFLAGS) -DROCKSDB_DLL
@@ -247,28 +210,71 @@ am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
247
210
  am__v_AR_0 = @echo " AR " $@;
248
211
  am__v_AR_1 =
249
212
 
250
- ifdef ROCKSDB_USE_LIBRADOS
251
- LIB_SOURCES += utilities/env_librados.cc
252
- LDFLAGS += -lrados
253
- endif
254
-
255
213
  AM_LINK = $(AM_V_CCLD)$(CXX) -L. $(patsubst lib%.a, -l%, $(patsubst lib%.$(PLATFORM_SHARED_EXT), -l%, $^)) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
256
- AM_SHARE = $(AM_V_CCLD) $(CXX) $(PLATFORM_SHARED_LDFLAGS)$@ -L. $(patsubst lib%.$(PLATFORM_SHARED_EXT), -l%, $^) $(LDFLAGS) -o $@
214
+ AM_SHARE = $(AM_V_CCLD) $(CXX) $(PLATFORM_SHARED_LDFLAGS)$@ -L. $(patsubst lib%.$(PLATFORM_SHARED_EXT), -l%, $^) $(EXEC_LDFLAGS) $(LDFLAGS) -o $@
257
215
 
258
216
  # Detect what platform we're building on.
259
217
  # Export some common variables that might have been passed as Make variables
260
218
  # instead of environment variables.
261
219
  dummy := $(shell (export ROCKSDB_ROOT="$(CURDIR)"; \
220
+ export CXXFLAGS="$(EXTRA_CXXFLAGS)"; \
221
+ export LDFLAGS="$(EXTRA_LDFLAGS)"; \
262
222
  export COMPILE_WITH_ASAN="$(COMPILE_WITH_ASAN)"; \
263
223
  export COMPILE_WITH_TSAN="$(COMPILE_WITH_TSAN)"; \
264
224
  export COMPILE_WITH_UBSAN="$(COMPILE_WITH_UBSAN)"; \
265
225
  export PORTABLE="$(PORTABLE)"; \
266
226
  export ROCKSDB_NO_FBCODE="$(ROCKSDB_NO_FBCODE)"; \
267
227
  export USE_CLANG="$(USE_CLANG)"; \
228
+ export LIB_MODE="$(LIB_MODE)"; \
268
229
  "$(CURDIR)/build_tools/build_detect_platform" "$(CURDIR)/make_config.mk"))
269
230
  # this file is generated by the previous line to set build flags and sources
270
231
  include make_config.mk
271
232
 
233
+ ROCKSDB_PLUGIN_MKS = $(foreach plugin, $(ROCKSDB_PLUGINS), plugin/$(plugin)/*.mk)
234
+ include $(ROCKSDB_PLUGIN_MKS)
235
+ ROCKSDB_PLUGIN_PROTO =ROCKSDB_NAMESPACE::ObjectLibrary\&, const std::string\&
236
+ ROCKSDB_PLUGIN_SOURCES = $(foreach p, $(ROCKSDB_PLUGINS), $(foreach source, $($(p)_SOURCES), plugin/$(p)/$(source)))
237
+ ROCKSDB_PLUGIN_HEADERS = $(foreach p, $(ROCKSDB_PLUGINS), $(foreach header, $($(p)_HEADERS), plugin/$(p)/$(header)))
238
+ ROCKSDB_PLUGIN_LIBS = $(foreach p, $(ROCKSDB_PLUGINS), $(foreach lib, $($(p)_LIBS), -l$(lib)))
239
+ ROCKSDB_PLUGIN_W_FUNCS = $(foreach p, $(ROCKSDB_PLUGINS), $(if $($(p)_FUNC), $(p)))
240
+ ROCKSDB_PLUGIN_EXTERNS = $(foreach p, $(ROCKSDB_PLUGIN_W_FUNCS), int $($(p)_FUNC)($(ROCKSDB_PLUGIN_PROTO));)
241
+ ROCKSDB_PLUGIN_BUILTINS = $(foreach p, $(ROCKSDB_PLUGIN_W_FUNCS), {\"$(p)\"\, $($(p)_FUNC)}\,)
242
+ ROCKSDB_PLUGIN_LDFLAGS = $(foreach plugin, $(ROCKSDB_PLUGINS), $($(plugin)_LDFLAGS))
243
+ ROCKSDB_PLUGIN_PKGCONFIG_REQUIRES = $(foreach plugin, $(ROCKSDB_PLUGINS), $($(plugin)_PKGCONFIG_REQUIRES))
244
+
245
+ CXXFLAGS += $(foreach plugin, $(ROCKSDB_PLUGINS), $($(plugin)_CXXFLAGS))
246
+ PLATFORM_LDFLAGS += $(ROCKSDB_PLUGIN_LDFLAGS)
247
+
248
+ # Patch up the link flags for JNI from the plugins
249
+ JAVA_LDFLAGS += $(ROCKSDB_PLUGIN_LDFLAGS)
250
+ JAVA_STATIC_LDFLAGS += $(ROCKSDB_PLUGIN_LDFLAGS)
251
+
252
+ # Patch up the list of java native sources with files from the plugins
253
+ ROCKSDB_PLUGIN_JNI_NATIVE_SOURCES = $(foreach plugin, $(ROCKSDB_PLUGINS), $(foreach source, $($(plugin)_JNI_NATIVE_SOURCES), plugin/$(plugin)/$(source)))
254
+ ALL_JNI_NATIVE_SOURCES = $(JNI_NATIVE_SOURCES) $(ROCKSDB_PLUGIN_JNI_NATIVE_SOURCES)
255
+ ROCKSDB_PLUGIN_JNI_CXX_INCLUDEFLAGS = $(foreach plugin, $(ROCKSDB_PLUGINS), -I./plugin/$(plugin))
256
+
257
+ ifneq ($(strip $(ROCKSDB_PLUGIN_PKGCONFIG_REQUIRES)),)
258
+ LDFLAGS := $(LDFLAGS) $(shell pkg-config --libs $(ROCKSDB_PLUGIN_PKGCONFIG_REQUIRES))
259
+ ifneq ($(.SHELLSTATUS),0)
260
+ $(error pkg-config failed)
261
+ endif
262
+ CXXFLAGS := $(CXXFLAGS) $(shell pkg-config --cflags $(ROCKSDB_PLUGIN_PKGCONFIG_REQUIRES))
263
+ ifneq ($(.SHELLSTATUS),0)
264
+ $(error pkg-config failed)
265
+ endif
266
+ endif
267
+
268
+ CXXFLAGS += $(ARCHFLAG)
269
+
270
+ ifeq (,$(shell $(CXX) -fsyntax-only -march=armv8-a+crc+crypto -xc /dev/null 2>&1))
271
+ ifneq ($(PLATFORM),OS_MACOSX)
272
+ CXXFLAGS += -march=armv8-a+crc+crypto
273
+ CFLAGS += -march=armv8-a+crc+crypto
274
+ ARMCRC_SOURCE=1
275
+ endif
276
+ endif
277
+
272
278
  export JAVAC_ARGS
273
279
  CLEAN_FILES += make_config.mk rocksdb.pc
274
280
 
@@ -282,7 +288,7 @@ missing_make_config_paths := $(shell \
282
288
  grep "\./\S*\|/\S*" -o $(CURDIR)/make_config.mk | \
283
289
  while read path; \
284
290
  do [ -e $$path ] || echo $$path; \
285
- done | sort | uniq)
291
+ done | sort | uniq | grep -v "/DOES/NOT/EXIST")
286
292
 
287
293
  $(foreach path, $(missing_make_config_paths), \
288
294
  $(warning Warning: $(path) does not exist))
@@ -318,12 +324,32 @@ ifeq ($(LIB_MODE),shared)
318
324
  EXEC_LDFLAGS += -Wl,-rpath -Wl,'$$ORIGIN'
319
325
  endif
320
326
 
327
+ ifeq ($(PLATFORM), OS_MACOSX)
328
+ ifeq ($(ARCHFLAG), -arch arm64)
329
+ ifneq ($(MACHINE), arm64)
330
+ # If we're building on a non-arm64 machine but targeting arm64 Mac, we need to disable
331
+ # linking with jemalloc (as it won't be arm64-compatible) and remove some other options
332
+ # set during platform detection
333
+ DISABLE_JEMALLOC=1
334
+ PLATFORM_CFLAGS := $(filter-out -march=native -DHAVE_SSE42 -DHAVE_AVX2, $(PLATFORM_CFLAGS))
335
+ PLATFORM_CXXFLAGS := $(filter-out -march=native -DHAVE_SSE42 -DHAVE_AVX2, $(PLATFORM_CXXFLAGS))
336
+ endif
337
+ endif
338
+ endif
339
+
321
340
  # ASAN doesn't work well with jemalloc. If we're compiling with ASAN, we should use regular malloc.
322
341
  ifdef COMPILE_WITH_ASAN
323
342
  DISABLE_JEMALLOC=1
324
343
  EXEC_LDFLAGS += -fsanitize=address
325
344
  PLATFORM_CCFLAGS += -fsanitize=address
326
345
  PLATFORM_CXXFLAGS += -fsanitize=address
346
+ ifeq ($(LIB_MODE),shared)
347
+ ifdef USE_CLANG
348
+ # Fix false ODR violation; see https://github.com/google/sanitizers/issues/1017
349
+ EXEC_LDFLAGS += -mllvm -asan-use-private-alias=1
350
+ PLATFORM_CXXFLAGS += -mllvm -asan-use-private-alias=1
351
+ endif
352
+ endif
327
353
  endif
328
354
 
329
355
  # TSAN doesn't work well with jemalloc. If we're compiling with TSAN, we should use regular malloc.
@@ -363,11 +389,21 @@ ifdef ROCKSDB_VALGRIND_RUN
363
389
  PLATFORM_CCFLAGS += -DROCKSDB_VALGRIND_RUN
364
390
  PLATFORM_CXXFLAGS += -DROCKSDB_VALGRIND_RUN
365
391
  endif
392
+ ifdef ROCKSDB_FULL_VALGRIND_RUN
393
+ # Some tests are slow when run under valgrind and are only run when
394
+ # explicitly requested via the ROCKSDB_FULL_VALGRIND_RUN compiler flag.
395
+ PLATFORM_CCFLAGS += -DROCKSDB_VALGRIND_RUN -DROCKSDB_FULL_VALGRIND_RUN
396
+ PLATFORM_CXXFLAGS += -DROCKSDB_VALGRIND_RUN -DROCKSDB_FULL_VALGRIND_RUN
397
+ endif
366
398
 
367
399
  ifndef DISABLE_JEMALLOC
368
400
  ifdef JEMALLOC
369
401
  PLATFORM_CXXFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
370
402
  PLATFORM_CCFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
403
+ ifeq ($(USE_FOLLY),1)
404
+ PLATFORM_CXXFLAGS += -DUSE_JEMALLOC
405
+ PLATFORM_CCFLAGS += -DUSE_JEMALLOC
406
+ endif
371
407
  endif
372
408
  ifdef WITH_JEMALLOC_FLAG
373
409
  PLATFORM_LDFLAGS += -ljemalloc
@@ -378,8 +414,8 @@ ifndef DISABLE_JEMALLOC
378
414
  PLATFORM_CCFLAGS += $(JEMALLOC_INCLUDE)
379
415
  endif
380
416
 
381
- ifndef USE_FOLLY_DISTRIBUTED_MUTEX
382
- USE_FOLLY_DISTRIBUTED_MUTEX=0
417
+ ifndef USE_FOLLY
418
+ USE_FOLLY=0
383
419
  endif
384
420
 
385
421
  ifndef GTEST_THROW_ON_FAILURE
@@ -399,8 +435,12 @@ else
399
435
  PLATFORM_CXXFLAGS += -isystem $(GTEST_DIR)
400
436
  endif
401
437
 
402
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
403
- FOLLY_DIR = ./third-party/folly
438
+ # This provides a Makefile simulation of a Meta-internal folly integration.
439
+ # It is not validated for general use.
440
+ ifeq ($(USE_FOLLY),1)
441
+ ifeq (,$(FOLLY_DIR))
442
+ FOLLY_DIR = ./third-party/folly
443
+ endif
404
444
  # AIX: pre-defined system headers are surrounded by an extern "C" block
405
445
  ifeq ($(PLATFORM), OS_AIX)
406
446
  PLATFORM_CCFLAGS += -I$(FOLLY_DIR)
@@ -409,6 +449,8 @@ ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
409
449
  PLATFORM_CCFLAGS += -isystem $(FOLLY_DIR)
410
450
  PLATFORM_CXXFLAGS += -isystem $(FOLLY_DIR)
411
451
  endif
452
+ PLATFORM_CCFLAGS += -DUSE_FOLLY -DFOLLY_NO_CONFIG
453
+ PLATFORM_CXXFLAGS += -DUSE_FOLLY -DFOLLY_NO_CONFIG
412
454
  endif
413
455
 
414
456
  ifdef TEST_CACHE_LINE_SIZE
@@ -430,6 +472,10 @@ default: all
430
472
  WARNING_FLAGS = -W -Wextra -Wall -Wsign-compare -Wshadow \
431
473
  -Wunused-parameter
432
474
 
475
+ ifeq (,$(filter amd64, $(MACHINE)))
476
+ C_WARNING_FLAGS = -Wstrict-prototypes
477
+ endif
478
+
433
479
  ifdef USE_CLANG
434
480
  # Used by some teams in Facebook
435
481
  WARNING_FLAGS += -Wshift-sign-overflow
@@ -474,47 +520,33 @@ ifeq ($(NO_THREEWAY_CRC32C), 1)
474
520
  CXXFLAGS += -DNO_THREEWAY_CRC32C
475
521
  endif
476
522
 
477
- CFLAGS += $(WARNING_FLAGS) -I. -I./include $(PLATFORM_CCFLAGS) $(OPT)
523
+ CFLAGS += $(C_WARNING_FLAGS) $(WARNING_FLAGS) -I. -I./include $(PLATFORM_CCFLAGS) $(OPT)
478
524
  CXXFLAGS += $(WARNING_FLAGS) -I. -I./include $(PLATFORM_CXXFLAGS) $(OPT) -Woverloaded-virtual -Wnon-virtual-dtor -Wno-missing-field-initializers
479
525
 
480
- LDFLAGS += $(PLATFORM_LDFLAGS)
481
-
482
- # If NO_UPDATE_BUILD_VERSION is set we don't update util/build_version.cc, but
483
- # the file needs to already exist or else the build will fail
484
- ifndef NO_UPDATE_BUILD_VERSION
485
- date := $(shell date +%F)
486
- ifdef FORCE_GIT_SHA
487
- git_sha := $(FORCE_GIT_SHA)
488
- else
489
- git_sha := $(shell git rev-parse HEAD 2>/dev/null)
490
- endif
491
- gen_build_version = sed -e s/@@GIT_SHA@@/$(git_sha)/ -e s/@@GIT_DATE_TIME@@/$(date)/ util/build_version.cc.in
526
+ # Allow offsetof to work on non-standard layout types. Some compiler could
527
+ # completely reject our usage of offsetof, but we will solve that when it
528
+ # happens.
529
+ CXXFLAGS += -Wno-invalid-offsetof
492
530
 
493
- # Record the version of the source that we are compiling.
494
- # We keep a record of the git revision in this file. It is then built
495
- # as a regular source file as part of the compilation process.
496
- # One can run "strings executable_filename | grep _build_" to find
497
- # the version of the source that we used to build the executable file.
498
- FORCE:
499
- util/build_version.cc: FORCE
500
- $(AM_V_GEN)rm -f $@-t
501
- $(AM_V_at)$(gen_build_version) > $@-t
502
- $(AM_V_at)if test -f $@; then \
503
- cmp -s $@-t $@ && rm -f $@-t || mv -f $@-t $@; \
504
- else mv -f $@-t $@; fi
505
- endif
531
+ LDFLAGS += $(PLATFORM_LDFLAGS)
506
532
 
507
- OBJ_DIR?=.
508
533
  LIB_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(LIB_SOURCES))
534
+ LIB_OBJECTS += $(patsubst %.cc, $(OBJ_DIR)/%.o, $(ROCKSDB_PLUGIN_SOURCES))
509
535
  ifeq ($(HAVE_POWER8),1)
510
536
  LIB_OBJECTS += $(patsubst %.c, $(OBJ_DIR)/%.o, $(LIB_SOURCES_C))
511
537
  LIB_OBJECTS += $(patsubst %.S, $(OBJ_DIR)/%.o, $(LIB_SOURCES_ASM))
512
538
  endif
513
539
 
514
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
540
+ ifeq ($(USE_FOLLY),1)
515
541
  LIB_OBJECTS += $(patsubst %.cpp, $(OBJ_DIR)/%.o, $(FOLLY_SOURCES))
516
542
  endif
517
543
 
544
+ # range_tree is not compatible with non GNU libc on ppc64
545
+ # see https://jira.percona.com/browse/PS-7559
546
+ ifneq ($(PPC_LIBC_IS_GNU),0)
547
+ LIB_OBJECTS += $(patsubst %.cc, $(OBJ_DIR)/%.o, $(RANGE_TREE_SOURCES))
548
+ endif
549
+
518
550
  GTEST = $(OBJ_DIR)/$(GTEST_DIR)/gtest/gtest-all.o
519
551
  TESTUTIL = $(OBJ_DIR)/test_util/testutil.o
520
552
  TESTHARNESS = $(OBJ_DIR)/test_util/testharness.o $(TESTUTIL) $(GTEST)
@@ -522,257 +554,84 @@ VALGRIND_ERROR = 2
522
554
  VALGRIND_VER := $(join $(VALGRIND_VER),valgrind)
523
555
 
524
556
  VALGRIND_OPTS = --error-exitcode=$(VALGRIND_ERROR) --leak-check=full
557
+ # Not yet supported: --show-leak-kinds=definite,possible,reachable --errors-for-leak-kinds=definite,possible,reachable
525
558
 
526
559
  TEST_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(TEST_LIB_SOURCES) $(MOCK_LIB_SOURCES)) $(GTEST)
527
560
  BENCH_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(BENCH_LIB_SOURCES))
561
+ CACHE_BENCH_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(CACHE_BENCH_LIB_SOURCES))
528
562
  TOOL_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(TOOL_LIB_SOURCES))
529
563
  ANALYZE_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(ANALYZER_LIB_SOURCES))
530
564
  STRESS_OBJECTS = $(patsubst %.cc, $(OBJ_DIR)/%.o, $(STRESS_LIB_SOURCES))
531
565
 
532
- ALL_SOURCES = $(LIB_SOURCES) $(TEST_LIB_SOURCES) $(MOCK_LIB_SOURCES) $(GTEST_DIR)/gtest/gtest-all.cc
533
- ALL_SOURCES += $(TOOL_LIB_SOURCES) $(BENCH_LIB_SOURCES) $(ANALYZER_LIB_SOURCES) $(STRESS_LIB_SOURCES)
566
+ # Exclude build_version.cc -- a generated source file -- from all sources. Not needed for dependencies
567
+ ALL_SOURCES = $(filter-out util/build_version.cc, $(LIB_SOURCES)) $(TEST_LIB_SOURCES) $(MOCK_LIB_SOURCES) $(GTEST_DIR)/gtest/gtest-all.cc
568
+ ALL_SOURCES += $(TOOL_LIB_SOURCES) $(BENCH_LIB_SOURCES) $(CACHE_BENCH_LIB_SOURCES) $(ANALYZER_LIB_SOURCES) $(STRESS_LIB_SOURCES)
534
569
  ALL_SOURCES += $(TEST_MAIN_SOURCES) $(TOOL_MAIN_SOURCES) $(BENCH_MAIN_SOURCES)
570
+ ALL_SOURCES += $(ROCKSDB_PLUGIN_SOURCES)
535
571
 
536
572
  TESTS = $(patsubst %.cc, %, $(notdir $(TEST_MAIN_SOURCES)))
537
573
  TESTS += $(patsubst %.c, %, $(notdir $(TEST_MAIN_SOURCES_C)))
538
574
 
539
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
540
- TESTS += folly_synchronization_distributed_mutex_test
541
- ALL_SOURCES += third-party/folly/folly/synchronization/test/DistributedMutexTest.cc
575
+ # `make check-headers` to very that each header file includes its own
576
+ # dependencies
577
+ ifneq ($(filter check-headers, $(MAKECMDGOALS)),)
578
+ # TODO: add/support JNI headers
579
+ DEV_HEADER_DIRS := $(sort include/ $(dir $(ALL_SOURCES)))
580
+ # Some headers like in port/ are platform-specific
581
+ DEV_HEADERS := $(shell $(FIND) $(DEV_HEADER_DIRS) -type f -name '*.h' | egrep -v 'port/|plugin/|lua/|range_tree/')
582
+ else
583
+ DEV_HEADERS :=
542
584
  endif
585
+ HEADER_OK_FILES = $(patsubst %.h, %.h.ok, $(DEV_HEADERS))
543
586
 
544
- PARALLEL_TEST = \
545
- backupable_db_test \
546
- db_bloom_filter_test \
547
- db_compaction_filter_test \
548
- db_compaction_test \
549
- db_merge_operator_test \
550
- db_sst_test \
551
- db_test \
552
- db_test2 \
553
- db_universal_compaction_test \
554
- db_wal_test \
555
- column_family_test \
556
- external_sst_file_test \
557
- import_column_family_test \
558
- fault_injection_test \
559
- file_reader_writer_test \
560
- inlineskiplist_test \
561
- manual_compaction_test \
562
- persistent_cache_test \
563
- table_test \
564
- transaction_test \
565
- point_lock_manager_test \
566
- range_locking_test \
567
- write_prepared_transaction_test \
568
- write_unprepared_transaction_test \
587
+ AM_V_CCH = $(am__v_CCH_$(V))
588
+ am__v_CCH_ = $(am__v_CCH_$(AM_DEFAULT_VERBOSITY))
589
+ am__v_CCH_0 = @echo " CC.h " $<;
590
+ am__v_CCH_1 =
569
591
 
570
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
571
- TESTS += folly_synchronization_distributed_mutex_test
572
- PARALLEL_TEST += folly_synchronization_distributed_mutex_test
573
- TESTS_PASSING_ASC = folly_synchronization_distributed_mutex_test
574
- endif
592
+ %.h.ok: %.h # .h.ok not actually created, so re-checked on each invocation
593
+ # -DROCKSDB_NAMESPACE=42 ensures the namespace header is included
594
+ $(AM_V_CCH) echo '#include "$<"' | $(CXX) $(CXXFLAGS) -DROCKSDB_NAMESPACE=42 -x c++ -c - -o /dev/null
595
+
596
+ check-headers: $(HEADER_OK_FILES)
575
597
 
576
598
  # options_settable_test doesn't pass with UBSAN as we use hack in the test
577
599
  ifdef COMPILE_WITH_UBSAN
578
- TESTS := $(shell echo $(TESTS) | sed 's/\boptions_settable_test\b//g')
600
+ TESTS := $(shell echo $(TESTS) | sed 's/\boptions_settable_test\b//g')
579
601
  endif
580
602
  ifdef ASSERT_STATUS_CHECKED
581
- # This is a new check for which we will add support incrementally. This
582
- # list can be removed once support is fully added.
583
- TESTS_PASSING_ASC = \
584
- arena_test \
585
- autovector_test \
586
- cache_test \
587
- lru_cache_test \
588
- blob_file_addition_test \
589
- blob_file_builder_test \
590
- blob_file_cache_test \
591
- blob_file_garbage_test \
592
- blob_file_reader_test \
593
- bloom_test \
594
- cassandra_format_test \
595
- cassandra_functional_test \
596
- cassandra_row_merge_test \
597
- cassandra_serialize_test \
598
- cleanable_test \
599
- checkpoint_test \
600
- coding_test \
601
- crc32c_test \
602
- dbformat_test \
603
- db_basic_test \
604
- compact_files_test \
605
- compaction_picker_test \
606
- comparator_db_test \
607
- db_encryption_test \
608
- db_iter_test \
609
- db_iter_stress_test \
610
- db_log_iter_test \
611
- db_bloom_filter_test \
612
- db_blob_basic_test \
613
- db_blob_index_test \
614
- db_block_cache_test \
615
- db_compaction_test \
616
- db_compaction_filter_test \
617
- db_dynamic_level_test \
618
- db_flush_test \
619
- db_inplace_update_test \
620
- db_io_failure_test \
621
- db_iterator_test \
622
- db_logical_block_size_cache_test \
623
- db_memtable_test \
624
- db_merge_operand_test \
625
- db_merge_operator_test \
626
- db_wal_test \
627
- db_with_timestamp_basic_test \
628
- db_with_timestamp_compaction_test \
629
- db_write_test \
630
- db_options_test \
631
- db_properties_test \
632
- db_range_del_test \
633
- db_secondary_test \
634
- deletefile_test \
635
- external_sst_file_test \
636
- options_file_test \
637
- db_sst_test \
638
- db_statistics_test \
639
- db_table_properties_test \
640
- db_tailing_iter_test \
641
- fault_injection_test \
642
- listener_test \
643
- log_test \
644
- manual_compaction_test \
645
- obsolete_files_test \
646
- perf_context_test \
647
- periodic_work_scheduler_test \
648
- perf_context_test \
649
- version_set_test \
650
- wal_manager_test \
651
- defer_test \
652
- filename_test \
653
- dynamic_bloom_test \
654
- env_basic_test \
655
- env_test \
656
- env_logger_test \
657
- event_logger_test \
658
- error_handler_fs_test \
659
- external_sst_file_basic_test \
660
- auto_roll_logger_test \
661
- file_indexer_test \
662
- delete_scheduler_test \
663
- flush_job_test \
664
- hash_table_test \
665
- hash_test \
666
- heap_test \
667
- histogram_test \
668
- inlineskiplist_test \
669
- io_posix_test \
670
- iostats_context_test \
671
- ldb_cmd_test \
672
- memkind_kmem_allocator_test \
673
- merge_test \
674
- merger_test \
675
- mock_env_test \
676
- object_registry_test \
677
- optimistic_transaction_test \
678
- prefix_test \
679
- plain_table_db_test \
680
- repair_test \
681
- configurable_test \
682
- customizable_test \
683
- options_settable_test \
684
- options_test \
685
- point_lock_manager_test \
686
- random_access_file_reader_test \
687
- random_test \
688
- range_del_aggregator_test \
689
- sst_file_reader_test \
690
- range_tombstone_fragmenter_test \
691
- repeatable_thread_test \
692
- ribbon_test \
693
- skiplist_test \
694
- slice_test \
695
- slice_transform_test \
696
- sst_dump_test \
697
- statistics_test \
698
- stats_history_test \
699
- stringappend_test \
700
- thread_local_test \
701
- trace_analyzer_test \
702
- transaction_test \
703
- env_timed_test \
704
- filelock_test \
705
- timer_queue_test \
706
- timer_test \
707
- options_util_test \
708
- persistent_cache_test \
709
- util_merge_operators_test \
710
- block_cache_trace_analyzer_test \
711
- block_cache_tracer_test \
712
- cache_simulator_test \
713
- sim_cache_test \
714
- version_builder_test \
715
- version_edit_test \
716
- work_queue_test \
717
- write_buffer_manager_test \
718
- write_controller_test \
719
- write_prepared_transaction_test \
720
- write_unprepared_transaction_test \
721
- compaction_iterator_test \
722
- compaction_job_test \
723
- compaction_job_stats_test \
724
- io_tracer_test \
725
- io_tracer_parser_test \
726
- prefetch_test \
727
- merge_helper_test \
728
- memtable_list_test \
729
- flush_job_test \
730
- block_based_filter_block_test \
731
- block_fetcher_test \
732
- block_test \
733
- data_block_hash_index_test \
734
- full_filter_block_test \
735
- partitioned_filter_block_test \
736
- column_family_test \
737
- file_reader_writer_test \
738
- rate_limiter_test \
739
- corruption_test \
740
- reduce_levels_test \
741
- thread_list_test \
742
- compact_on_deletion_collector_test \
743
- db_universal_compaction_test \
744
- import_column_family_test \
745
- option_change_migration_test \
746
- cuckoo_table_builder_test \
747
- cuckoo_table_db_test \
748
- cuckoo_table_reader_test \
749
- memory_test \
750
- table_test \
751
- backupable_db_test \
752
- blob_db_test \
753
- ttl_test \
754
- write_batch_test \
755
- write_batch_with_index_test \
756
-
757
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
758
- TESTS_PASSING_ASC += folly_synchronization_distributed_mutex_test
759
- endif
760
-
761
- # Enable building all unit tests, but use check_some to run only tests
762
- # known to pass ASC (ASSERT_STATUS_CHECKED)
763
- ROCKSDBTESTS_SUBSET ?= $(TESTS_PASSING_ASC)
764
- # Alternate: only build unit tests known to pass ASC, and run them
765
- # with make check
766
- #TESTS := $(filter $(TESTS_PASSING_ASC),$(TESTS))
767
- #PARALLEL_TEST := $(filter $(TESTS_PASSING_ASC),$(PARALLEL_TEST))
768
- else
769
- ROCKSDBTESTS_SUBSET ?= $(TESTS)
603
+ # TODO: finish fixing all tests to pass this check
604
+ TESTS_FAILING_ASC = \
605
+ c_test \
606
+ env_test \
607
+ range_locking_test \
608
+ testutil_test \
609
+
610
+ # Since we have very few ASC exclusions left, excluding them from
611
+ # the build is the most convenient way to exclude them from testing
612
+ TESTS := $(filter-out $(TESTS_FAILING_ASC),$(TESTS))
770
613
  endif
614
+
615
+ ROCKSDBTESTS_SUBSET ?= $(TESTS)
616
+
617
+ # c_test - doesn't use gtest
618
+ # env_test - suspicious use of test::TmpDir
619
+ # deletefile_test - serial because it generates giant temporary files in
620
+ # its various tests. Parallel can fill up your /dev/shm
621
+ # db_bloom_filter_test - serial because excessive space usage by instances
622
+ # of DBFilterConstructionReserveMemoryTestWithParam can fill up /dev/shm
623
+ NON_PARALLEL_TEST = \
624
+ c_test \
625
+ env_test \
626
+ deletefile_test \
627
+ db_bloom_filter_test \
628
+
629
+ PARALLEL_TEST = $(filter-out $(NON_PARALLEL_TEST), $(TESTS))
630
+
771
631
  # Not necessarily well thought out or up-to-date, but matches old list
772
632
  TESTS_PLATFORM_DEPENDENT := \
773
633
  db_basic_test \
774
634
  db_blob_basic_test \
775
- db_with_timestamp_basic_test \
776
635
  db_encryption_test \
777
636
  db_test2 \
778
637
  external_sst_file_basic_test \
@@ -825,6 +684,8 @@ TEST_LIBS = \
825
684
  # TODO: add back forward_iterator_bench, after making it build in all environemnts.
826
685
  BENCHMARKS = $(patsubst %.cc, %, $(notdir $(BENCH_MAIN_SOURCES)))
827
686
 
687
+ MICROBENCHS = $(patsubst %.cc, %, $(notdir $(MICROBENCH_SOURCES)))
688
+
828
689
  # if user didn't config LIBNAME, set the default
829
690
  ifeq ($(LIBNAME),)
830
691
  LIBNAME=librocksdb
@@ -856,13 +717,44 @@ else
856
717
  LIBRARY=$(STATIC_LIBRARY)
857
718
  TEST_LIBRARY=$(STATIC_TEST_LIBRARY)
858
719
  TOOLS_LIBRARY=$(STATIC_TOOLS_LIBRARY)
859
- STRESS_LIBRARY=$(STATIC_STRESS_LIBRARY)
860
720
  endif
721
+ STRESS_LIBRARY=$(STATIC_STRESS_LIBRARY)
861
722
 
862
723
  ROCKSDB_MAJOR = $(shell egrep "ROCKSDB_MAJOR.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
863
724
  ROCKSDB_MINOR = $(shell egrep "ROCKSDB_MINOR.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
864
725
  ROCKSDB_PATCH = $(shell egrep "ROCKSDB_PATCH.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
865
726
 
727
+ # If NO_UPDATE_BUILD_VERSION is set we don't update util/build_version.cc, but
728
+ # the file needs to already exist or else the build will fail
729
+ ifndef NO_UPDATE_BUILD_VERSION
730
+
731
+ # By default, use the current date-time as the date. If there are no changes,
732
+ # we will use the last commit date instead.
733
+ build_date := $(shell date "+%Y-%m-%d %T")
734
+
735
+ ifdef FORCE_GIT_SHA
736
+ git_sha := $(FORCE_GIT_SHA)
737
+ git_mod := 1
738
+ git_date := $(build_date)
739
+ else
740
+ git_sha := $(shell git rev-parse HEAD 2>/dev/null)
741
+ git_tag := $(shell git symbolic-ref -q --short HEAD 2> /dev/null || git describe --tags --exact-match 2>/dev/null)
742
+ git_mod := $(shell git diff-index HEAD --quiet 2>/dev/null; echo $$?)
743
+ git_date := $(shell git log -1 --date=format:"%Y-%m-%d %T" --format="%ad" 2>/dev/null)
744
+ endif
745
+ gen_build_version = sed -e s/@GIT_SHA@/$(git_sha)/ -e s:@GIT_TAG@:"$(git_tag)": -e s/@GIT_MOD@/"$(git_mod)"/ -e s/@BUILD_DATE@/"$(build_date)"/ -e s/@GIT_DATE@/"$(git_date)"/ -e s/@ROCKSDB_PLUGIN_BUILTINS@/'$(ROCKSDB_PLUGIN_BUILTINS)'/ -e s/@ROCKSDB_PLUGIN_EXTERNS@/"$(ROCKSDB_PLUGIN_EXTERNS)"/ util/build_version.cc.in
746
+
747
+ # Record the version of the source that we are compiling.
748
+ # We keep a record of the git revision in this file. It is then built
749
+ # as a regular source file as part of the compilation process.
750
+ # One can run "strings executable_filename | grep _build_" to find
751
+ # the version of the source that we used to build the executable file.
752
+ util/build_version.cc: $(filter-out $(OBJ_DIR)/util/build_version.o, $(LIB_OBJECTS)) util/build_version.cc.in
753
+ $(AM_V_GEN)rm -f $@-t
754
+ $(AM_V_at)$(gen_build_version) > $@
755
+ endif
756
+ CLEAN_FILES += util/build_version.cc
757
+
866
758
  default: all
867
759
 
868
760
  #-----------------------------------------------
@@ -907,10 +799,13 @@ endif # PLATFORM_SHARED_EXT
907
799
  .PHONY: blackbox_crash_test check clean coverage crash_test ldb_tests package \
908
800
  release tags tags0 valgrind_check whitebox_crash_test format static_lib shared_lib all \
909
801
  dbg rocksdbjavastatic rocksdbjava gen-pc install install-static install-shared uninstall \
910
- analyze tools tools_lib \
802
+ analyze tools tools_lib check-headers checkout_folly \
911
803
  blackbox_crash_test_with_atomic_flush whitebox_crash_test_with_atomic_flush \
912
804
  blackbox_crash_test_with_txn whitebox_crash_test_with_txn \
913
- blackbox_crash_test_with_best_efforts_recovery
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
914
809
 
915
810
 
916
811
  all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(TESTS)
@@ -931,6 +826,11 @@ test_libs: $(TEST_LIBS)
931
826
 
932
827
  benchmarks: $(BENCHMARKS)
933
828
 
829
+ microbench: $(MICROBENCHS)
830
+
831
+ run_microbench: $(MICROBENCHS)
832
+ for t in $(MICROBENCHS); do echo "===== Running benchmark $$t (`date`)"; ./$$t || exit 1; done;
833
+
934
834
  dbg: $(LIBRARY) $(BENCHMARKS) tools $(TESTS)
935
835
 
936
836
  # creates library and programs
@@ -940,8 +840,8 @@ release: clean
940
840
  coverage: clean
941
841
  COVERAGEFLAGS="-fprofile-arcs -ftest-coverage" LDFLAGS+="-lgcov" $(MAKE) J=1 all check
942
842
  cd coverage && ./coverage_test.sh
943
- # Delete intermediate files
944
- $(FIND) . -type f -regex ".*\.\(\(gcda\)\|\(gcno\)\)" -exec rm -f {} \;
843
+ # Delete intermediate files
844
+ $(FIND) . -type f \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f {} \;
945
845
 
946
846
  ifneq (,$(filter check parallel_check,$(MAKECMDGOALS)),)
947
847
  # Use /dev/shm if it has the sticky bit set (otherwise, /tmp),
@@ -984,17 +884,14 @@ endif
984
884
 
985
885
  parallel_tests = $(patsubst %,parallel_%,$(PARALLEL_TEST))
986
886
  .PHONY: gen_parallel_tests $(parallel_tests)
987
- $(parallel_tests): $(PARALLEL_TEST)
887
+ $(parallel_tests):
988
888
  $(AM_V_at)TEST_BINARY=$(patsubst parallel_%,%,$@); \
989
889
  TEST_NAMES=` \
990
- ./$$TEST_BINARY --gtest_list_tests \
991
- | perl -n \
992
- -e 's/ *\#.*//;' \
993
- -e '/^(\s*)(\S+)/; !$$1 and do {$$p=$$2; break};' \
994
- -e 'print qq! $$p$$2!'`; \
890
+ (./$$TEST_BINARY --gtest_list_tests || echo " $${TEST_BINARY}__list_tests_failure") \
891
+ | awk '/^[^ ]/ { prefix = $$1 } /^[ ]/ { print prefix $$1 }'`; \
892
+ echo " Generating parallel test scripts for $$TEST_BINARY"; \
995
893
  for TEST_NAME in $$TEST_NAMES; do \
996
894
  TEST_SCRIPT=t/run-$$TEST_BINARY-$${TEST_NAME//\//-}; \
997
- echo " GEN " $$TEST_SCRIPT; \
998
895
  printf '%s\n' \
999
896
  '#!/bin/sh' \
1000
897
  "d=\$(TMPD)$$TEST_SCRIPT" \
@@ -1026,7 +923,7 @@ gen_parallel_tests:
1026
923
  # 107.816 PASS t/DBTest.EncodeDecompressedBlockSizeTest
1027
924
  #
1028
925
  slow_test_regexp = \
1029
- ^.*SnapshotConcurrentAccessTest.*$$|^t/run-table_test-HarnessTest.Randomized$$|^t/run-db_test-.*(?:FileCreationRandomFailure|EncodeDecompressedBlockSizeTest)$$|^.*RecoverFromCorruptedWALWithoutFlush$$
926
+ ^.*MySQLStyleTransactionTest.*$$|^.*SnapshotConcurrentAccessTest.*$$|^.*SeqAdvanceConcurrentTest.*$$|^t/run-table_test-HarnessTest.Randomized$$|^t/run-db_test-.*(?:FileCreationRandomFailure|EncodeDecompressedBlockSizeTest)$$|^.*RecoverFromCorruptedWALWithoutFlush$$
1030
927
  prioritize_long_running_tests = \
1031
928
  perl -pe 's,($(slow_test_regexp)),100 $$1,' \
1032
929
  | sort -k1,1gr \
@@ -1041,12 +938,18 @@ J ?= 100%
1041
938
 
1042
939
  # Use this regexp to select the subset of tests whose names match.
1043
940
  tests-regexp = .
1044
- EXCLUDE_TESTS_REGEX ?= "^$"
941
+ EXCLUDE_TESTS_REGEX ?= "^$$"
1045
942
 
1046
943
  ifeq ($(PRINT_PARALLEL_OUTPUTS), 1)
1047
- parallel_com = '{}'
944
+ parallel_redir =
945
+ else ifeq ($(QUIET_PARALLEL_TESTS), 1)
946
+ parallel_redir = >& t/$(test_log_prefix)log-{/}
1048
947
  else
1049
- parallel_com = '{} >& t/log-{/}'
948
+ # Default: print failure output only, as it happens
949
+ # Note: gnu_parallel --eta is now always used, but has been modified to provide
950
+ # only infrequent updates when not connected to a terminal. (CircleCI will
951
+ # kill a job if no output for 10min.)
952
+ parallel_redir = >& t/$(test_log_prefix)log-{/} || bash -c "cat t/$(test_log_prefix)log-{/}; exit $$?"
1050
953
  endif
1051
954
 
1052
955
  .PHONY: check_0
@@ -1055,7 +958,6 @@ check_0:
1055
958
  printf '%s\n' '' \
1056
959
  'To monitor subtest <duration,pass/fail,name>,' \
1057
960
  ' run "make watch-log" in a separate window' ''; \
1058
- test -t 1 && eta=--eta || eta=; \
1059
961
  { \
1060
962
  printf './%s\n' $(filter-out $(PARALLEL_TEST),$(TESTS)); \
1061
963
  find t -name 'run-*' -print; \
@@ -1063,7 +965,7 @@ check_0:
1063
965
  | $(prioritize_long_running_tests) \
1064
966
  | grep -E '$(tests-regexp)' \
1065
967
  | grep -E -v '$(EXCLUDE_TESTS_REGEX)' \
1066
- | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG $$eta --gnu $(parallel_com) ; \
968
+ | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu '{} $(parallel_redir)' ; \
1067
969
  parallel_retcode=$$? ; \
1068
970
  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 ; \
1069
971
  awk_retcode=$$?; \
@@ -1072,12 +974,12 @@ check_0:
1072
974
  valgrind-exclude-regexp = InlineSkipTest.ConcurrentInsert|TransactionStressTest.DeadlockStress|DBCompactionTest.SuggestCompactRangeNoTwoLevel0Compactions|BackupableDBTest.RateLimiting|DBTest.CloseSpeedup|DBTest.ThreadStatusFlush|DBTest.RateLimitingTest|DBTest.EncodeDecompressedBlockSizeTest|FaultInjectionTest.UninstalledCompaction|HarnessTest.Randomized|ExternalSSTFileTest.CompactDuringAddFileRandom|ExternalSSTFileTest.IngestFileWithGlobalSeqnoRandomized|MySQLStyleTransactionTest.TransactionStressTest
1073
975
 
1074
976
  .PHONY: valgrind_check_0
977
+ valgrind_check_0: test_log_prefix := valgrind_
1075
978
  valgrind_check_0:
1076
979
  $(AM_V_GEN)export TEST_TMPDIR=$(TMPD); \
1077
980
  printf '%s\n' '' \
1078
981
  'To monitor subtest <duration,pass/fail,name>,' \
1079
982
  ' run "make watch-log" in a separate window' ''; \
1080
- test -t 1 && eta=--eta || eta=; \
1081
983
  { \
1082
984
  printf './%s\n' $(filter-out $(PARALLEL_TEST) %skiplist_test options_settable_test, $(TESTS)); \
1083
985
  find t -name 'run-*' -print; \
@@ -1085,9 +987,9 @@ valgrind_check_0:
1085
987
  | $(prioritize_long_running_tests) \
1086
988
  | grep -E '$(tests-regexp)' \
1087
989
  | grep -E -v '$(valgrind-exclude-regexp)' \
1088
- | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG $$eta --gnu \
1089
- '(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) ' \
1090
- '>& t/valgrind_log-{/}'
990
+ | build_tools/gnu_parallel -j$(J) --plain --joblog=LOG --eta --gnu \
991
+ '(if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
992
+ $(parallel_redir)' \
1091
993
 
1092
994
  CLEAN_FILES += t LOG $(TMPD)
1093
995
 
@@ -1130,6 +1032,7 @@ endif
1130
1032
  ifndef SKIP_FORMAT_BUCK_CHECKS
1131
1033
  $(MAKE) check-format
1132
1034
  $(MAKE) check-buck-targets
1035
+ $(MAKE) check-sources
1133
1036
  endif
1134
1037
 
1135
1038
  # TODO add ldb_tests
@@ -1140,71 +1043,34 @@ check_some: $(ROCKSDBTESTS_SUBSET)
1140
1043
  ldb_tests: ldb
1141
1044
  $(PYTHON) tools/ldb_test.py
1142
1045
 
1143
- crash_test: whitebox_crash_test blackbox_crash_test
1144
-
1145
- crash_test_with_atomic_flush: whitebox_crash_test_with_atomic_flush blackbox_crash_test_with_atomic_flush
1146
-
1147
- crash_test_with_txn: whitebox_crash_test_with_txn blackbox_crash_test_with_txn
1148
-
1149
- crash_test_with_best_efforts_recovery: blackbox_crash_test_with_best_efforts_recovery
1150
-
1151
- blackbox_crash_test: db_stress
1152
- $(PYTHON) -u tools/db_crashtest.py --simple blackbox $(CRASH_TEST_EXT_ARGS)
1153
- $(PYTHON) -u tools/db_crashtest.py blackbox $(CRASH_TEST_EXT_ARGS)
1154
-
1155
- blackbox_crash_test_with_atomic_flush: db_stress
1156
- $(PYTHON) -u tools/db_crashtest.py --cf_consistency blackbox $(CRASH_TEST_EXT_ARGS)
1157
-
1158
- blackbox_crash_test_with_txn: db_stress
1159
- $(PYTHON) -u tools/db_crashtest.py --txn blackbox $(CRASH_TEST_EXT_ARGS)
1160
-
1161
- blackbox_crash_test_with_best_efforts_recovery: db_stress
1162
- $(PYTHON) -u tools/db_crashtest.py --test_best_efforts_recovery blackbox $(CRASH_TEST_EXT_ARGS)
1163
-
1164
- ifeq ($(CRASH_TEST_KILL_ODD),)
1165
- CRASH_TEST_KILL_ODD=888887
1166
- endif
1167
-
1168
- whitebox_crash_test: db_stress
1169
- $(PYTHON) -u tools/db_crashtest.py --simple whitebox --random_kill_odd \
1170
- $(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
1171
- $(PYTHON) -u tools/db_crashtest.py whitebox --random_kill_odd \
1172
- $(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
1173
-
1174
- whitebox_crash_test_with_atomic_flush: db_stress
1175
- $(PYTHON) -u tools/db_crashtest.py --cf_consistency whitebox --random_kill_odd \
1176
- $(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
1177
-
1178
- whitebox_crash_test_with_txn: db_stress
1179
- $(PYTHON) -u tools/db_crashtest.py --txn whitebox --random_kill_odd \
1180
- $(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
1046
+ include crash_test.mk
1181
1047
 
1182
1048
  asan_check: clean
1183
- COMPILE_WITH_ASAN=1 $(MAKE) check -j32
1049
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) check -j32
1184
1050
  $(MAKE) clean
1185
1051
 
1186
1052
  asan_crash_test: clean
1187
- COMPILE_WITH_ASAN=1 $(MAKE) crash_test
1053
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test
1188
1054
  $(MAKE) clean
1189
1055
 
1190
1056
  whitebox_asan_crash_test: clean
1191
- COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
1057
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) whitebox_crash_test
1192
1058
  $(MAKE) clean
1193
1059
 
1194
1060
  blackbox_asan_crash_test: clean
1195
- COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
1061
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) blackbox_crash_test
1196
1062
  $(MAKE) clean
1197
1063
 
1198
1064
  asan_crash_test_with_atomic_flush: clean
1199
- COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_atomic_flush
1065
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_atomic_flush
1200
1066
  $(MAKE) clean
1201
1067
 
1202
1068
  asan_crash_test_with_txn: clean
1203
- COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
1069
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_txn
1204
1070
  $(MAKE) clean
1205
1071
 
1206
1072
  asan_crash_test_with_best_efforts_recovery: clean
1207
- COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_best_efforts_recovery
1073
+ ASAN_OPTIONS=detect_stack_use_after_return=1 COMPILE_WITH_ASAN=1 $(MAKE) crash_test_with_best_efforts_recovery
1208
1074
  $(MAKE) clean
1209
1075
 
1210
1076
  ubsan_check: clean
@@ -1235,6 +1101,12 @@ ubsan_crash_test_with_best_efforts_recovery: clean
1235
1101
  COMPILE_WITH_UBSAN=1 $(MAKE) crash_test_with_best_efforts_recovery
1236
1102
  $(MAKE) clean
1237
1103
 
1104
+ full_valgrind_test:
1105
+ ROCKSDB_FULL_VALGRIND_RUN=1 DISABLE_JEMALLOC=1 $(MAKE) valgrind_check
1106
+
1107
+ full_valgrind_test_some:
1108
+ ROCKSDB_FULL_VALGRIND_RUN=1 DISABLE_JEMALLOC=1 $(MAKE) valgrind_check_some
1109
+
1238
1110
  valgrind_test:
1239
1111
  ROCKSDB_VALGRIND_RUN=1 DISABLE_JEMALLOC=1 $(MAKE) valgrind_check
1240
1112
 
@@ -1321,11 +1193,12 @@ analyze_incremental:
1321
1193
  $(CLANG_SCAN_BUILD) --use-analyzer=$(CLANG_ANALYZER) \
1322
1194
  --use-c++=$(CXX) --use-cc=$(CC) --status-bugs \
1323
1195
  -o $(CURDIR)/scan_build_report \
1324
- $(MAKE) dbg
1196
+ $(MAKE) SKIP_LINK=1 dbg
1325
1197
 
1326
1198
  CLEAN_FILES += unity.cc
1327
- unity.cc: Makefile
1199
+ unity.cc: Makefile util/build_version.cc.in
1328
1200
  rm -f $@ $@-t
1201
+ $(AM_V_at)$(gen_build_version) > util/build_version.cc
1329
1202
  for source_file in $(LIB_SOURCES); do \
1330
1203
  echo "#include \"$$source_file\"" >> $@-t; \
1331
1204
  done
@@ -1352,12 +1225,12 @@ clean-not-downloaded: clean-ext-libraries-bin clean-rocks clean-not-downloaded-r
1352
1225
  clean-rocks:
1353
1226
  echo shared=$(ALL_SHARED_LIBS)
1354
1227
  echo static=$(ALL_STATIC_LIBS)
1355
- rm -f $(BENCHMARKS) $(TOOLS) $(TESTS) $(PARALLEL_TEST) $(ALL_STATIC_LIBS) $(ALL_SHARED_LIBS)
1228
+ rm -f $(BENCHMARKS) $(TOOLS) $(TESTS) $(PARALLEL_TEST) $(ALL_STATIC_LIBS) $(ALL_SHARED_LIBS) $(MICROBENCHS)
1356
1229
  rm -rf $(CLEAN_FILES) ios-x86 ios-arm scan_build_report
1357
1230
  $(FIND) . -name "*.[oda]" -exec rm -f {} \;
1358
- $(FIND) . -type f -regex ".*\.\(\(gcda\)\|\(gcno\)\)" -exec rm -f {} \;
1231
+ $(FIND) . -type f \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f {} \;
1359
1232
 
1360
- clean-rocksjava:
1233
+ clean-rocksjava: clean-rocks
1361
1234
  rm -rf jl jls
1362
1235
  cd java && $(MAKE) clean
1363
1236
 
@@ -1391,6 +1264,9 @@ check-format:
1391
1264
  check-buck-targets:
1392
1265
  buckifier/check_buck_targets.sh
1393
1266
 
1267
+ check-sources:
1268
+ build_tools/check-sources.sh
1269
+
1394
1270
  package:
1395
1271
  bash build_tools/make_package.sh $(SHARED_MAJOR).$(SHARED_MINOR)
1396
1272
 
@@ -1405,11 +1281,11 @@ $(STATIC_TEST_LIBRARY): $(TEST_OBJECTS)
1405
1281
  $(AM_V_AR)rm -f $@ $(SHARED_TEST_LIBRARY)
1406
1282
  $(AM_V_at)$(AR) $(ARFLAGS) $@ $^
1407
1283
 
1408
- $(STATIC_TOOLS_LIBRARY): $(BENCH_OBJECTS) $(TOOL_OBJECTS)
1284
+ $(STATIC_TOOLS_LIBRARY): $(TOOL_OBJECTS)
1409
1285
  $(AM_V_AR)rm -f $@ $(SHARED_TOOLS_LIBRARY)
1410
1286
  $(AM_V_at)$(AR) $(ARFLAGS) $@ $^
1411
1287
 
1412
- $(STATIC_STRESS_LIBRARY): $(ANALYZE_OBJECTS) $(STRESS_OBJECTS)
1288
+ $(STATIC_STRESS_LIBRARY): $(ANALYZE_OBJECTS) $(STRESS_OBJECTS) $(TESTUTIL)
1413
1289
  $(AM_V_AR)rm -f $@ $(SHARED_STRESS_LIBRARY)
1414
1290
  $(AM_V_at)$(AR) $(ARFLAGS) $@ $^
1415
1291
 
@@ -1421,7 +1297,7 @@ $(SHARED_TOOLS_LIBRARY): $(TOOL_OBJECTS) $(SHARED1)
1421
1297
  $(AM_V_AR)rm -f $@ $(STATIC_TOOLS_LIBRARY)
1422
1298
  $(AM_SHARE)
1423
1299
 
1424
- $(SHARED_STRESS_LIBRARY): $(ANALYZE_OBJECTS) $(STRESS_OBJECTS) $(SHARED_TOOLS_LIBRARY) $(SHARED1)
1300
+ $(SHARED_STRESS_LIBRARY): $(ANALYZE_OBJECTS) $(STRESS_OBJECTS) $(TESTUTIL) $(SHARED_TOOLS_LIBRARY) $(SHARED1)
1425
1301
  $(AM_V_AR)rm -f $@ $(STATIC_STRESS_LIBRARY)
1426
1302
  $(AM_SHARE)
1427
1303
 
@@ -1438,12 +1314,7 @@ trace_analyzer: $(OBJ_DIR)/tools/trace_analyzer.o $(ANALYZE_OBJECTS) $(TOOLS_LIB
1438
1314
  block_cache_trace_analyzer: $(OBJ_DIR)/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.o $(ANALYZE_OBJECTS) $(TOOLS_LIBRARY) $(LIBRARY)
1439
1315
  $(AM_LINK)
1440
1316
 
1441
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
1442
- folly_synchronization_distributed_mutex_test: $(OBJ_DIR)/third-party/folly/folly/synchronization/test/DistributedMutexTest.o $(TEST_LIBRARY) $(LIBRARY)
1443
- $(AM_LINK)
1444
- endif
1445
-
1446
- cache_bench: $(OBJ_DIR)/cache/cache_bench.o $(LIBRARY)
1317
+ cache_bench: $(OBJ_DIR)/cache/cache_bench.o $(CACHE_BENCH_OBJECTS) $(LIBRARY)
1447
1318
  $(AM_LINK)
1448
1319
 
1449
1320
  persistent_cache_bench: $(OBJ_DIR)/utilities/persistent_cache/persistent_cache_bench.o $(LIBRARY)
@@ -1470,7 +1341,7 @@ db_repl_stress: $(OBJ_DIR)/tools/db_repl_stress.o $(LIBRARY)
1470
1341
  arena_test: $(OBJ_DIR)/memory/arena_test.o $(TEST_LIBRARY) $(LIBRARY)
1471
1342
  $(AM_LINK)
1472
1343
 
1473
- memkind_kmem_allocator_test: memory/memkind_kmem_allocator_test.o $(TEST_LIBRARY) $(LIBRARY)
1344
+ memory_allocator_test: memory/memory_allocator_test.o $(TEST_LIBRARY) $(LIBRARY)
1474
1345
  $(AM_LINK)
1475
1346
 
1476
1347
  autovector_test: $(OBJ_DIR)/util/autovector_test.o $(TEST_LIBRARY) $(LIBRARY)
@@ -1509,6 +1380,9 @@ ribbon_test: $(OBJ_DIR)/util/ribbon_test.o $(TEST_LIBRARY) $(LIBRARY)
1509
1380
  option_change_migration_test: $(OBJ_DIR)/utilities/option_change_migration/option_change_migration_test.o $(TEST_LIBRARY) $(LIBRARY)
1510
1381
  $(AM_LINK)
1511
1382
 
1383
+ agg_merge_test: $(OBJ_DIR)/utilities/agg_merge/agg_merge_test.o $(TEST_LIBRARY) $(LIBRARY)
1384
+ $(AM_LINK)
1385
+
1512
1386
  stringappend_test: $(OBJ_DIR)/utilities/merge_operators/string_append/stringappend_test.o $(TEST_LIBRARY) $(LIBRARY)
1513
1387
  $(AM_LINK)
1514
1388
 
@@ -1554,6 +1428,9 @@ db_basic_test: $(OBJ_DIR)/db/db_basic_test.o $(TEST_LIBRARY) $(LIBRARY)
1554
1428
  db_blob_basic_test: $(OBJ_DIR)/db/blob/db_blob_basic_test.o $(TEST_LIBRARY) $(LIBRARY)
1555
1429
  $(AM_LINK)
1556
1430
 
1431
+ db_blob_compaction_test: $(OBJ_DIR)/db/blob/db_blob_compaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1432
+ $(AM_LINK)
1433
+
1557
1434
  db_with_timestamp_basic_test: $(OBJ_DIR)/db/db_with_timestamp_basic_test.o $(TEST_LIBRARY) $(LIBRARY)
1558
1435
  $(AM_LINK)
1559
1436
 
@@ -1602,6 +1479,9 @@ db_inplace_update_test: $(OBJ_DIR)/db/db_inplace_update_test.o $(TEST_LIBRARY) $
1602
1479
  db_iterator_test: $(OBJ_DIR)/db/db_iterator_test.o $(TEST_LIBRARY) $(LIBRARY)
1603
1480
  $(AM_LINK)
1604
1481
 
1482
+ db_kv_checksum_test: $(OBJ_DIR)/db/db_kv_checksum_test.o $(TEST_LIBRARY) $(LIBRARY)
1483
+ $(AM_LINK)
1484
+
1605
1485
  db_memtable_test: $(OBJ_DIR)/db/db_memtable_test.o $(TEST_LIBRARY) $(LIBRARY)
1606
1486
  $(AM_LINK)
1607
1487
 
@@ -1617,6 +1497,9 @@ db_options_test: $(OBJ_DIR)/db/db_options_test.o $(TEST_LIBRARY) $(LIBRARY)
1617
1497
  db_range_del_test: $(OBJ_DIR)/db/db_range_del_test.o $(TEST_LIBRARY) $(LIBRARY)
1618
1498
  $(AM_LINK)
1619
1499
 
1500
+ db_rate_limiter_test: $(OBJ_DIR)/db/db_rate_limiter_test.o $(TEST_LIBRARY) $(LIBRARY)
1501
+ $(AM_LINK)
1502
+
1620
1503
  db_sst_test: $(OBJ_DIR)/db/db_sst_test.o $(TEST_LIBRARY) $(LIBRARY)
1621
1504
  $(AM_LINK)
1622
1505
 
@@ -1680,7 +1563,7 @@ perf_context_test: $(OBJ_DIR)/db/perf_context_test.o $(TEST_LIBRARY) $(LIBRARY)
1680
1563
  prefix_test: $(OBJ_DIR)/db/prefix_test.o $(TEST_LIBRARY) $(LIBRARY)
1681
1564
  $(AM_LINK)
1682
1565
 
1683
- backupable_db_test: $(OBJ_DIR)/utilities/backupable/backupable_db_test.o $(TEST_LIBRARY) $(LIBRARY)
1566
+ backup_engine_test: $(OBJ_DIR)/utilities/backup/backup_engine_test.o $(TEST_LIBRARY) $(LIBRARY)
1684
1567
  $(AM_LINK)
1685
1568
 
1686
1569
  checkpoint_test: $(OBJ_DIR)/utilities/checkpoint/checkpoint_test.o $(TEST_LIBRARY) $(LIBRARY)
@@ -1698,11 +1581,6 @@ env_mirror_test: $(OBJ_DIR)/utilities/env_mirror_test.o $(TEST_LIBRARY) $(LIBRAR
1698
1581
  env_timed_test: $(OBJ_DIR)/utilities/env_timed_test.o $(TEST_LIBRARY) $(LIBRARY)
1699
1582
  $(AM_LINK)
1700
1583
 
1701
- ifdef ROCKSDB_USE_LIBRADOS
1702
- env_librados_test: $(OBJ_DIR)/utilities/env_librados_test.o $(TEST_LIBRARY) $(LIBRARY)
1703
- $(AM_LINK)
1704
- endif
1705
-
1706
1584
  object_registry_test: $(OBJ_DIR)/utilities/object_registry_test.o $(TEST_LIBRARY) $(LIBRARY)
1707
1585
  $(AM_LINK)
1708
1586
 
@@ -1724,6 +1602,9 @@ compaction_job_test: $(OBJ_DIR)/db/compaction/compaction_job_test.o $(TEST_LIBRA
1724
1602
  compaction_job_stats_test: $(OBJ_DIR)/db/compaction/compaction_job_stats_test.o $(TEST_LIBRARY) $(LIBRARY)
1725
1603
  $(AM_LINK)
1726
1604
 
1605
+ compaction_service_test: $(OBJ_DIR)/db/compaction/compaction_service_test.o $(TEST_LIBRARY) $(LIBRARY)
1606
+ $(AM_LINK)
1607
+
1727
1608
  compact_on_deletion_collector_test: $(OBJ_DIR)/utilities/table_properties_collectors/compact_on_deletion_collector_test.o $(TEST_LIBRARY) $(LIBRARY)
1728
1609
  $(AM_LINK)
1729
1610
 
@@ -1937,6 +1818,9 @@ point_lock_manager_test: utilities/transactions/lock/point/point_lock_manager_te
1937
1818
  transaction_test: $(OBJ_DIR)/utilities/transactions/transaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1938
1819
  $(AM_LINK)
1939
1820
 
1821
+ write_committed_transaction_ts_test: $(OBJ_DIR)/utilities/transactions/write_committed_transaction_ts_test.o $(TEST_LIBRARY) $(LIBRARY)
1822
+ $(AM_LINK)
1823
+
1940
1824
  write_prepared_transaction_test: $(OBJ_DIR)/utilities/transactions/write_prepared_transaction_test.o $(TEST_LIBRARY) $(LIBRARY)
1941
1825
  $(AM_LINK)
1942
1826
 
@@ -1970,6 +1854,9 @@ statistics_test: $(OBJ_DIR)/monitoring/statistics_test.o $(TEST_LIBRARY) $(LIBRA
1970
1854
  stats_history_test: $(OBJ_DIR)/monitoring/stats_history_test.o $(TEST_LIBRARY) $(LIBRARY)
1971
1855
  $(AM_LINK)
1972
1856
 
1857
+ compressed_secondary_cache_test: $(OBJ_DIR)/cache/compressed_secondary_cache_test.o $(TEST_LIBRARY) $(LIBRARY)
1858
+ $(AM_LINK)
1859
+
1973
1860
  lru_cache_test: $(OBJ_DIR)/cache/lru_cache_test.o $(TEST_LIBRARY) $(LIBRARY)
1974
1861
  $(AM_LINK)
1975
1862
 
@@ -1994,7 +1881,7 @@ range_tombstone_fragmenter_test: $(OBJ_DIR)/db/range_tombstone_fragmenter_test.o
1994
1881
  sst_file_reader_test: $(OBJ_DIR)/table/sst_file_reader_test.o $(TEST_LIBRARY) $(LIBRARY)
1995
1882
  $(AM_LINK)
1996
1883
 
1997
- db_secondary_test: $(OBJ_DIR)/db/db_impl/db_secondary_test.o $(TEST_LIBRARY) $(LIBRARY)
1884
+ db_secondary_test: $(OBJ_DIR)/db/db_secondary_test.o $(TEST_LIBRARY) $(LIBRARY)
1998
1885
  $(AM_LINK)
1999
1886
 
2000
1887
  block_cache_tracer_test: $(OBJ_DIR)/trace_replay/block_cache_tracer_test.o $(TEST_LIBRARY) $(LIBRARY)
@@ -2006,6 +1893,9 @@ block_cache_trace_analyzer_test: $(OBJ_DIR)/tools/block_cache_analyzer/block_cac
2006
1893
  defer_test: $(OBJ_DIR)/util/defer_test.o $(TEST_LIBRARY) $(LIBRARY)
2007
1894
  $(AM_LINK)
2008
1895
 
1896
+ blob_counting_iterator_test: $(OBJ_DIR)/db/blob/blob_counting_iterator_test.o $(TEST_LIBRARY) $(LIBRARY)
1897
+ $(AM_LINK)
1898
+
2009
1899
  blob_file_addition_test: $(OBJ_DIR)/db/blob/blob_file_addition_test.o $(TEST_LIBRARY) $(LIBRARY)
2010
1900
  $(AM_LINK)
2011
1901
 
@@ -2021,6 +1911,9 @@ blob_file_garbage_test: $(OBJ_DIR)/db/blob/blob_file_garbage_test.o $(TEST_LIBRA
2021
1911
  blob_file_reader_test: $(OBJ_DIR)/db/blob/blob_file_reader_test.o $(TEST_LIBRARY) $(LIBRARY)
2022
1912
  $(AM_LINK)
2023
1913
 
1914
+ blob_garbage_meter_test: $(OBJ_DIR)/db/blob/blob_garbage_meter_test.o $(TEST_LIBRARY) $(LIBRARY)
1915
+ $(AM_LINK)
1916
+
2024
1917
  timer_test: $(OBJ_DIR)/util/timer_test.o $(TEST_LIBRARY) $(LIBRARY)
2025
1918
  $(AM_LINK)
2026
1919
 
@@ -2042,6 +1935,23 @@ io_tracer_parser_test: $(OBJ_DIR)/tools/io_tracer_parser_test.o $(OBJ_DIR)/tools
2042
1935
  io_tracer_parser: $(OBJ_DIR)/tools/io_tracer_parser.o $(TOOLS_LIBRARY) $(LIBRARY)
2043
1936
  $(AM_LINK)
2044
1937
 
1938
+ db_blob_corruption_test: $(OBJ_DIR)/db/blob/db_blob_corruption_test.o $(TEST_LIBRARY) $(LIBRARY)
1939
+ $(AM_LINK)
1940
+
1941
+ db_write_buffer_manager_test: $(OBJ_DIR)/db/db_write_buffer_manager_test.o $(TEST_LIBRARY) $(LIBRARY)
1942
+ $(AM_LINK)
1943
+
1944
+ clipping_iterator_test: $(OBJ_DIR)/db/compaction/clipping_iterator_test.o $(TEST_LIBRARY) $(LIBRARY)
1945
+ $(AM_LINK)
1946
+
1947
+ ribbon_bench: $(OBJ_DIR)/microbench/ribbon_bench.o $(LIBRARY)
1948
+ $(AM_LINK)
1949
+
1950
+ db_basic_bench: $(OBJ_DIR)/microbench/db_basic_bench.o $(LIBRARY)
1951
+ $(AM_LINK)
1952
+
1953
+ cache_reservation_manager_test: $(OBJ_DIR)/cache/cache_reservation_manager_test.o $(TEST_LIBRARY) $(LIBRARY)
1954
+ $(AM_LINK)
2045
1955
  #-------------------------------------------------
2046
1956
  # make install related stuff
2047
1957
  PREFIX ?= /usr/local
@@ -2066,6 +1976,10 @@ install-headers: gen-pc
2066
1976
  for header in `$(FIND) "include/rocksdb" -type f -name *.h`; do \
2067
1977
  install -C -m 644 $$header $(DESTDIR)/$(PREFIX)/$$header; \
2068
1978
  done
1979
+ for header in $(ROCKSDB_PLUGIN_HEADERS); do \
1980
+ install -d $(DESTDIR)/$(PREFIX)/include/rocksdb/`dirname $$header`; \
1981
+ install -C -m 644 $$header $(DESTDIR)/$(PREFIX)/include/rocksdb/$$header; \
1982
+ done
2069
1983
  install -C -m 644 rocksdb.pc $(INSTALL_LIBDIR)/pkgconfig/rocksdb.pc
2070
1984
 
2071
1985
  install-static: install-headers $(LIBRARY)
@@ -2096,6 +2010,7 @@ gen-pc:
2096
2010
  -echo 'Libs: -L$${libdir} $(EXEC_LDFLAGS) -lrocksdb' >> rocksdb.pc
2097
2011
  -echo 'Libs.private: $(PLATFORM_LDFLAGS)' >> rocksdb.pc
2098
2012
  -echo 'Cflags: -I$${includedir} $(PLATFORM_CXXFLAGS)' >> rocksdb.pc
2013
+ -echo 'Requires: $(subst ",,$(ROCKSDB_PLUGIN_PKGCONFIG_REQUIRES))' >> rocksdb.pc
2099
2014
 
2100
2015
  #-------------------------------------------------
2101
2016
 
@@ -2103,12 +2018,11 @@ gen-pc:
2103
2018
  # ---------------------------------------------------------------------------
2104
2019
  # Jni stuff
2105
2020
  # ---------------------------------------------------------------------------
2106
-
2107
2021
  JAVA_INCLUDE = -I$(JAVA_HOME)/include/ -I$(JAVA_HOME)/include/linux
2108
2022
  ifeq ($(PLATFORM), OS_SOLARIS)
2109
2023
  ARCH := $(shell isainfo -b)
2110
2024
  else ifeq ($(PLATFORM), OS_OPENBSD)
2111
- ifneq (,$(filter amd64 ppc64 ppc64le arm64 aarch64 sparc64, $(MACHINE)))
2025
+ ifneq (,$(filter amd64 ppc64 ppc64le s390x arm64 aarch64 sparc64, $(MACHINE)))
2112
2026
  ARCH := 64
2113
2027
  else
2114
2028
  ARCH := 32
@@ -2128,11 +2042,13 @@ ifneq ($(origin JNI_LIBC), undefined)
2128
2042
  JNI_LIBC_POSTFIX = -$(JNI_LIBC)
2129
2043
  endif
2130
2044
 
2131
- ifneq (,$(filter ppc% arm64 aarch64 sparc64, $(MACHINE)))
2045
+ ifeq (,$(ROCKSDBJNILIB))
2046
+ ifneq (,$(filter ppc% s390x arm64 aarch64 sparc64, $(MACHINE)))
2132
2047
  ROCKSDBJNILIB = librocksdbjni-linux-$(MACHINE)$(JNI_LIBC_POSTFIX).so
2133
2048
  else
2134
2049
  ROCKSDBJNILIB = librocksdbjni-linux$(ARCH)$(JNI_LIBC_POSTFIX).so
2135
2050
  endif
2051
+ endif
2136
2052
  ROCKSDB_JAVA_VERSION ?= $(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)
2137
2053
  ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_JAVA_VERSION)-linux$(ARCH)$(JNI_LIBC_POSTFIX).jar
2138
2054
  ROCKSDB_JAR_ALL = rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar
@@ -2140,25 +2056,33 @@ ROCKSDB_JAVADOCS_JAR = rocksdbjni-$(ROCKSDB_JAVA_VERSION)-javadoc.jar
2140
2056
  ROCKSDB_SOURCES_JAR = rocksdbjni-$(ROCKSDB_JAVA_VERSION)-sources.jar
2141
2057
  SHA256_CMD = sha256sum
2142
2058
 
2143
- ZLIB_VER ?= 1.2.11
2144
- ZLIB_SHA256 ?= c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
2059
+ ZLIB_VER ?= 1.2.12
2060
+ ZLIB_SHA256 ?= 91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9
2145
2061
  ZLIB_DOWNLOAD_BASE ?= http://zlib.net
2146
2062
  BZIP2_VER ?= 1.0.8
2147
2063
  BZIP2_SHA256 ?= ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269
2148
- BZIP2_DOWNLOAD_BASE ?= https://sourceware.org/pub/bzip2
2064
+ BZIP2_DOWNLOAD_BASE ?= http://sourceware.org/pub/bzip2
2149
2065
  SNAPPY_VER ?= 1.1.8
2150
2066
  SNAPPY_SHA256 ?= 16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f
2151
2067
  SNAPPY_DOWNLOAD_BASE ?= https://github.com/google/snappy/archive
2152
2068
  LZ4_VER ?= 1.9.3
2153
2069
  LZ4_SHA256 ?= 030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1
2154
2070
  LZ4_DOWNLOAD_BASE ?= https://github.com/lz4/lz4/archive
2155
- ZSTD_VER ?= 1.4.7
2156
- ZSTD_SHA256 ?= 085500c8d0b9c83afbc1dc0d8b4889336ad019eba930c5d6a9c6c86c20c769c8
2071
+ ZSTD_VER ?= 1.4.9
2072
+ ZSTD_SHA256 ?= acf714d98e3db7b876e5b540cbf6dee298f60eb3c0723104f6d3f065cd60d6a8
2157
2073
  ZSTD_DOWNLOAD_BASE ?= https://github.com/facebook/zstd/archive
2158
2074
  CURL_SSL_OPTS ?= --tlsv1
2159
2075
 
2160
2076
  ifeq ($(PLATFORM), OS_MACOSX)
2077
+ ifeq (,$(findstring librocksdbjni-osx,$(ROCKSDBJNILIB)))
2078
+ ifeq ($(MACHINE),arm64)
2079
+ ROCKSDBJNILIB = librocksdbjni-osx-arm64.jnilib
2080
+ else ifeq ($(MACHINE),x86_64)
2081
+ ROCKSDBJNILIB = librocksdbjni-osx-x86_64.jnilib
2082
+ else
2161
2083
  ROCKSDBJNILIB = librocksdbjni-osx.jnilib
2084
+ endif
2085
+ endif
2162
2086
  ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_JAVA_VERSION)-osx.jar
2163
2087
  SHA256_CMD = openssl sha256 -r
2164
2088
  ifneq ("$(wildcard $(JAVA_HOME)/include/darwin)","")
@@ -2167,6 +2091,7 @@ else
2167
2091
  JAVA_INCLUDE = -I/System/Library/Frameworks/JavaVM.framework/Headers/
2168
2092
  endif
2169
2093
  endif
2094
+
2170
2095
  ifeq ($(PLATFORM), OS_FREEBSD)
2171
2096
  JAVA_INCLUDE = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/freebsd
2172
2097
  ROCKSDBJNILIB = librocksdbjni-freebsd$(ARCH).so
@@ -2201,7 +2126,11 @@ zlib-$(ZLIB_VER).tar.gz:
2201
2126
  libz.a: zlib-$(ZLIB_VER).tar.gz
2202
2127
  -rm -rf zlib-$(ZLIB_VER)
2203
2128
  tar xvzf zlib-$(ZLIB_VER).tar.gz
2204
- cd zlib-$(ZLIB_VER) && CFLAGS='-fPIC ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' ./configure --static && $(MAKE)
2129
+ if [ -n"$(ARCHFLAG)" ]; then \
2130
+ cd zlib-$(ZLIB_VER) && CFLAGS='-fPIC ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' ./configure --static --archs="$(ARCHFLAG)" && $(MAKE); \
2131
+ else \
2132
+ cd zlib-$(ZLIB_VER) && CFLAGS='-fPIC ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' ./configure --static && $(MAKE); \
2133
+ fi
2205
2134
  cp zlib-$(ZLIB_VER)/libz.a .
2206
2135
 
2207
2136
  bzip2-$(BZIP2_VER).tar.gz:
@@ -2215,7 +2144,7 @@ bzip2-$(BZIP2_VER).tar.gz:
2215
2144
  libbz2.a: bzip2-$(BZIP2_VER).tar.gz
2216
2145
  -rm -rf bzip2-$(BZIP2_VER)
2217
2146
  tar xvzf bzip2-$(BZIP2_VER).tar.gz
2218
- cd bzip2-$(BZIP2_VER) && $(MAKE) CFLAGS='-fPIC -O2 -g -D_FILE_OFFSET_BITS=64 ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' AR='ar ${EXTRA_ARFLAGS}'
2147
+ cd bzip2-$(BZIP2_VER) && $(MAKE) CFLAGS='-fPIC -O2 -g -D_FILE_OFFSET_BITS=64 $(ARCHFLAG) ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' AR='ar ${EXTRA_ARFLAGS}' libbz2.a
2219
2148
  cp bzip2-$(BZIP2_VER)/libbz2.a .
2220
2149
 
2221
2150
  snappy-$(SNAPPY_VER).tar.gz:
@@ -2230,7 +2159,7 @@ libsnappy.a: snappy-$(SNAPPY_VER).tar.gz
2230
2159
  -rm -rf snappy-$(SNAPPY_VER)
2231
2160
  tar xvzf snappy-$(SNAPPY_VER).tar.gz
2232
2161
  mkdir snappy-$(SNAPPY_VER)/build
2233
- cd snappy-$(SNAPPY_VER)/build && CFLAGS='${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' CXXFLAGS='${JAVA_STATIC_DEPS_CXXFLAGS} ${EXTRA_CXXFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ${PLATFORM_CMAKE_FLAGS} .. && $(MAKE) ${SNAPPY_MAKE_TARGET}
2162
+ cd snappy-$(SNAPPY_VER)/build && CFLAGS='$(ARCHFLAG) ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' CXXFLAGS='$(ARCHFLAG) ${JAVA_STATIC_DEPS_CXXFLAGS} ${EXTRA_CXXFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ${PLATFORM_CMAKE_FLAGS} .. && $(MAKE) ${SNAPPY_MAKE_TARGET}
2234
2163
  cp snappy-$(SNAPPY_VER)/build/libsnappy.a .
2235
2164
 
2236
2165
  lz4-$(LZ4_VER).tar.gz:
@@ -2244,7 +2173,7 @@ lz4-$(LZ4_VER).tar.gz:
2244
2173
  liblz4.a: lz4-$(LZ4_VER).tar.gz
2245
2174
  -rm -rf lz4-$(LZ4_VER)
2246
2175
  tar xvzf lz4-$(LZ4_VER).tar.gz
2247
- cd lz4-$(LZ4_VER)/lib && $(MAKE) CFLAGS='-fPIC -O2 ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' all
2176
+ cd lz4-$(LZ4_VER)/lib && $(MAKE) CFLAGS='-fPIC -O2 $(ARCHFLAG) ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' all
2248
2177
  cp lz4-$(LZ4_VER)/lib/liblz4.a .
2249
2178
 
2250
2179
  zstd-$(ZSTD_VER).tar.gz:
@@ -2258,7 +2187,7 @@ zstd-$(ZSTD_VER).tar.gz:
2258
2187
  libzstd.a: zstd-$(ZSTD_VER).tar.gz
2259
2188
  -rm -rf zstd-$(ZSTD_VER)
2260
2189
  tar xvzf zstd-$(ZSTD_VER).tar.gz
2261
- cd zstd-$(ZSTD_VER)/lib && DESTDIR=. PREFIX= $(MAKE) CFLAGS='-fPIC -O2 ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' libzstd.a
2190
+ cd zstd-$(ZSTD_VER)/lib && DESTDIR=. PREFIX= $(MAKE) CFLAGS='-fPIC -O2 $(ARCHFLAG) ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' libzstd.a
2262
2191
  cp zstd-$(ZSTD_VER)/lib/libzstd.a .
2263
2192
 
2264
2193
  # A version of each $(LIB_OBJECTS) compiled with -fPIC and a fixed set of static compression libraries
@@ -2280,41 +2209,82 @@ endif
2280
2209
  $(MAKE) rocksdbjavastatic_deps
2281
2210
  $(MAKE) rocksdbjavastatic_libobjects
2282
2211
  $(MAKE) rocksdbjavastatic_javalib
2212
+ $(MAKE) rocksdbjava_jar
2213
+
2214
+ rocksdbjavastaticosx: rocksdbjavastaticosx_archs
2215
+ cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR) HISTORY*.md
2216
+ cd java/target; $(JAR_CMD) -uf $(ROCKSDB_JAR) librocksdbjni-osx-x86_64.jnilib librocksdbjni-osx-arm64.jnilib
2217
+ cd java/target/classes; $(JAR_CMD) -uf ../$(ROCKSDB_JAR) org/rocksdb/*.class org/rocksdb/util/*.class
2218
+ openssl sha1 java/target/$(ROCKSDB_JAR) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAR).sha1
2283
2219
 
2220
+ rocksdbjavastaticosx_ub: rocksdbjavastaticosx_archs
2221
+ cd java/target; lipo -create -output librocksdbjni-osx.jnilib librocksdbjni-osx-x86_64.jnilib librocksdbjni-osx-arm64.jnilib
2222
+ cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR) HISTORY*.md
2223
+ cd java/target; $(JAR_CMD) -uf $(ROCKSDB_JAR) librocksdbjni-osx.jnilib
2224
+ cd java/target/classes; $(JAR_CMD) -uf ../$(ROCKSDB_JAR) org/rocksdb/*.class org/rocksdb/util/*.class
2225
+ openssl sha1 java/target/$(ROCKSDB_JAR) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAR).sha1
2226
+
2227
+ rocksdbjavastaticosx_archs:
2228
+ $(MAKE) rocksdbjavastaticosx_arch_x86_64
2229
+ $(MAKE) rocksdbjavastaticosx_arch_arm64
2230
+
2231
+ rocksdbjavastaticosx_arch_%:
2232
+ ifeq ($(JAVA_HOME),)
2233
+ $(error JAVA_HOME is not set)
2234
+ endif
2235
+ $(MAKE) clean-ext-libraries-bin
2236
+ $(MAKE) clean-rocks
2237
+ ARCHFLAG="-arch $*" $(MAKE) rocksdbjavastatic_deps
2238
+ ARCHFLAG="-arch $*" $(MAKE) rocksdbjavastatic_libobjects
2239
+ ARCHFLAG="-arch $*" ROCKSDBJNILIB="librocksdbjni-osx-$*.jnilib" $(MAKE) rocksdbjavastatic_javalib
2240
+
2241
+ ifeq ($(JAR_CMD),)
2242
+ ifneq ($(JAVA_HOME),)
2243
+ JAR_CMD := $(JAVA_HOME)/bin/jar
2244
+ else
2245
+ JAR_CMD := jar
2246
+ endif
2247
+ endif
2284
2248
  rocksdbjavastatic_javalib:
2285
2249
  cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) javalib
2286
2250
  rm -f java/target/$(ROCKSDBJNILIB)
2287
2251
  $(CXX) $(CXXFLAGS) -I./java/. $(JAVA_INCLUDE) -shared -fPIC \
2288
- -o ./java/target/$(ROCKSDBJNILIB) $(JNI_NATIVE_SOURCES) \
2252
+ -o ./java/target/$(ROCKSDBJNILIB) $(ALL_JNI_NATIVE_SOURCES) \
2289
2253
  $(LIB_OBJECTS) $(COVERAGEFLAGS) \
2290
2254
  $(JAVA_COMPRESSIONS) $(JAVA_STATIC_LDFLAGS)
2291
2255
  cd java/target;if [ "$(DEBUG_LEVEL)" == "0" ]; then \
2292
2256
  strip $(STRIPFLAGS) $(ROCKSDBJNILIB); \
2293
2257
  fi
2294
- cd java;jar -cf target/$(ROCKSDB_JAR) HISTORY*.md
2295
- cd java/target;jar -uf $(ROCKSDB_JAR) $(ROCKSDBJNILIB)
2296
- cd java/target/classes;jar -uf ../$(ROCKSDB_JAR) org/rocksdb/*.class org/rocksdb/util/*.class
2297
- cd java/target/apidocs;jar -cf ../$(ROCKSDB_JAVADOCS_JAR) *
2298
- cd java/src/main/java;jar -cf ../../../target/$(ROCKSDB_SOURCES_JAR) org
2258
+
2259
+ rocksdbjava_jar:
2260
+ cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR) HISTORY*.md
2261
+ cd java/target; $(JAR_CMD) -uf $(ROCKSDB_JAR) $(ROCKSDBJNILIB)
2262
+ cd java/target/classes; $(JAR_CMD) -uf ../$(ROCKSDB_JAR) org/rocksdb/*.class org/rocksdb/util/*.class
2299
2263
  openssl sha1 java/target/$(ROCKSDB_JAR) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAR).sha1
2264
+
2265
+ rocksdbjava_javadocs_jar:
2266
+ cd java/target/apidocs; $(JAR_CMD) -cf ../$(ROCKSDB_JAVADOCS_JAR) *
2300
2267
  openssl sha1 java/target/$(ROCKSDB_JAVADOCS_JAR) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAVADOCS_JAR).sha1
2268
+
2269
+ rocksdbjava_sources_jar:
2270
+ cd java/src/main/java; $(JAR_CMD) -cf ../../../target/$(ROCKSDB_SOURCES_JAR) org
2301
2271
  openssl sha1 java/target/$(ROCKSDB_SOURCES_JAR) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_SOURCES_JAR).sha1
2302
2272
 
2303
2273
  rocksdbjavastatic_deps: $(JAVA_COMPRESSIONS)
2304
2274
 
2305
2275
  rocksdbjavastatic_libobjects: $(LIB_OBJECTS)
2306
2276
 
2307
- rocksdbjavastaticrelease: rocksdbjavastatic
2277
+ rocksdbjavastaticrelease: rocksdbjavastaticosx rocksdbjava_javadocs_jar rocksdbjava_sources_jar
2308
2278
  cd java/crossbuild && (vagrant destroy -f || true) && vagrant up linux32 && vagrant halt linux32 && vagrant up linux64 && vagrant halt linux64 && vagrant up linux64-musl && vagrant halt linux64-musl
2309
- cd java;jar -cf target/$(ROCKSDB_JAR_ALL) HISTORY*.md
2310
- cd java/target;jar -uf $(ROCKSDB_JAR_ALL) librocksdbjni-*.so librocksdbjni-*.jnilib
2311
- cd java/target/classes;jar -uf ../$(ROCKSDB_JAR_ALL) org/rocksdb/*.class org/rocksdb/util/*.class
2279
+ cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR_ALL) HISTORY*.md
2280
+ cd java/target; $(JAR_CMD) -uf $(ROCKSDB_JAR_ALL) librocksdbjni-*.so librocksdbjni-*.jnilib
2281
+ cd java/target/classes; $(JAR_CMD) -uf ../$(ROCKSDB_JAR_ALL) org/rocksdb/*.class org/rocksdb/util/*.class
2312
2282
  openssl sha1 java/target/$(ROCKSDB_JAR_ALL) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAR_ALL).sha1
2313
2283
 
2314
- rocksdbjavastaticreleasedocker: rocksdbjavastatic rocksdbjavastaticdockerx86 rocksdbjavastaticdockerx86_64 rocksdbjavastaticdockerx86musl rocksdbjavastaticdockerx86_64musl
2315
- cd java;jar -cf target/$(ROCKSDB_JAR_ALL) HISTORY*.md
2316
- cd java/target;jar -uf $(ROCKSDB_JAR_ALL) librocksdbjni-*.so librocksdbjni-*.jnilib
2317
- cd java/target/classes;jar -uf ../$(ROCKSDB_JAR_ALL) org/rocksdb/*.class org/rocksdb/util/*.class
2284
+ rocksdbjavastaticreleasedocker: rocksdbjavastaticosx rocksdbjavastaticdockerx86 rocksdbjavastaticdockerx86_64 rocksdbjavastaticdockerx86musl rocksdbjavastaticdockerx86_64musl rocksdbjava_javadocs_jar rocksdbjava_sources_jar
2285
+ cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR_ALL) HISTORY*.md
2286
+ cd java/target; $(JAR_CMD) -uf $(ROCKSDB_JAR_ALL) librocksdbjni-*.so librocksdbjni-*.jnilib
2287
+ cd java/target/classes; $(JAR_CMD) -uf ../$(ROCKSDB_JAR_ALL) org/rocksdb/*.class org/rocksdb/util/*.class
2318
2288
  openssl sha1 java/target/$(ROCKSDB_JAR_ALL) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAR_ALL).sha1
2319
2289
 
2320
2290
  rocksdbjavastaticdockerx86:
@@ -2333,40 +2303,54 @@ rocksdbjavastaticdockerarm64v8:
2333
2303
  mkdir -p java/target
2334
2304
  docker run --rm --name rocksdb_linux_arm64v8-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:centos7_arm64v8-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
2335
2305
 
2306
+ rocksdbjavastaticdockers390x:
2307
+ mkdir -p java/target
2308
+ docker run --rm --name rocksdb_linux_s390x-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:ubuntu18_s390x-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
2309
+
2336
2310
  rocksdbjavastaticdockerx86musl:
2337
2311
  mkdir -p java/target
2338
- docker run --rm --name rocksdb_linux_x86-musl-be --platform linux/386 --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_x86-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
2312
+ docker run --rm --name rocksdb_linux_x86-musl-be --platform linux/386 --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_x86-be /rocksdb-host/java/crossbuild/docker-build-linux-alpine.sh
2339
2313
 
2340
2314
  rocksdbjavastaticdockerx86_64musl:
2341
2315
  mkdir -p java/target
2342
- docker run --rm --name rocksdb_linux_x64-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_x64-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
2316
+ docker run --rm --name rocksdb_linux_x64-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_x64-be /rocksdb-host/java/crossbuild/docker-build-linux-alpine.sh
2343
2317
 
2344
2318
  rocksdbjavastaticdockerppc64lemusl:
2345
2319
  mkdir -p java/target
2346
- docker run --rm --name rocksdb_linux_ppc64le-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_ppc64le-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
2320
+ docker run --rm --name rocksdb_linux_ppc64le-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_ppc64le-be /rocksdb-host/java/crossbuild/docker-build-linux-alpine.sh
2347
2321
 
2348
2322
  rocksdbjavastaticdockerarm64v8musl:
2349
2323
  mkdir -p java/target
2350
- docker run --rm --name rocksdb_linux_arm64v8-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_arm64v8-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
2324
+ docker run --rm --name rocksdb_linux_arm64v8-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_arm64v8-be /rocksdb-host/java/crossbuild/docker-build-linux-alpine.sh
2325
+
2326
+ rocksdbjavastaticdockers390xmusl:
2327
+ mkdir -p java/target
2328
+ docker run --rm --name rocksdb_linux_s390x-musl-be --attach stdin --attach stdout --attach stderr --volume $(HOME)/.m2:/root/.m2:ro --volume `pwd`:/rocksdb-host:ro --volume /rocksdb-local-build --volume `pwd`/java/target:/rocksdb-java-target --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:alpine3_s390x-be /rocksdb-host/java/crossbuild/docker-build-linux-alpine.sh
2351
2329
 
2352
2330
  rocksdbjavastaticpublish: rocksdbjavastaticrelease rocksdbjavastaticpublishcentral
2353
2331
 
2354
2332
  rocksdbjavastaticpublishdocker: rocksdbjavastaticreleasedocker rocksdbjavastaticpublishcentral
2355
2333
 
2334
+ ROCKSDB_JAVA_RELEASE_CLASSIFIERS = javadoc sources linux64 linux32 linux64-musl linux32-musl osx win64
2335
+
2356
2336
  rocksdbjavastaticpublishcentral: rocksdbjavageneratepom
2357
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-javadoc.jar -Dclassifier=javadoc
2358
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-sources.jar -Dclassifier=sources
2359
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-linux64.jar -Dclassifier=linux64
2360
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-linux32.jar -Dclassifier=linux32
2361
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-linux64-musl.jar -Dclassifier=linux64-musl
2362
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-linux32-musl.jar -Dclassifier=linux32-musl
2363
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-osx.jar -Dclassifier=osx
2364
- mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-win64.jar -Dclassifier=win64
2365
2337
  mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar
2338
+ $(foreach classifier, $(ROCKSDB_JAVA_RELEASE_CLASSIFIERS), mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile=java/pom.xml -Dfile=java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar -Dclassifier=$(classifier);)
2366
2339
 
2367
2340
  rocksdbjavageneratepom:
2368
2341
  cd java;cat pom.xml.template | sed 's/\$${ROCKSDB_JAVA_VERSION}/$(ROCKSDB_JAVA_VERSION)/' > pom.xml
2369
2342
 
2343
+ rocksdbjavastaticnexusbundlejar: rocksdbjavageneratepom
2344
+ openssl sha1 -r java/pom.xml | awk '{ print $$1 }' > java/target/pom.xml.sha1
2345
+ openssl sha1 -r java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar | awk '{ print $$1 }' > java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar.sha1
2346
+ $(foreach classifier, $(ROCKSDB_JAVA_RELEASE_CLASSIFIERS), openssl sha1 -r java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar | awk '{ print $$1 }' > java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar.sha1;)
2347
+ gpg --yes --output java/target/pom.xml.asc -ab java/pom.xml
2348
+ gpg --yes -ab java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar
2349
+ $(foreach classifier, $(ROCKSDB_JAVA_RELEASE_CLASSIFIERS), gpg --yes -ab java/target/rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar;)
2350
+ $(JAR_CMD) cvf java/target/nexus-bundle-rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar -C java pom.xml -C java/target pom.xml.sha1 -C java/target pom.xml.asc -C java/target rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar -C java/target rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar.sha1 -C java/target rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar.asc
2351
+ $(foreach classifier, $(ROCKSDB_JAVA_RELEASE_CLASSIFIERS), $(JAR_CMD) uf java/target/nexus-bundle-rocksdbjni-$(ROCKSDB_JAVA_VERSION).jar -C java/target rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar -C java/target rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar.sha1 -C java/target rocksdbjni-$(ROCKSDB_JAVA_VERSION)-$(classifier).jar.asc;)
2352
+
2353
+
2370
2354
  # A version of each $(LIBOBJECTS) compiled with -fPIC
2371
2355
 
2372
2356
  jl/%.o: %.cc
@@ -2378,10 +2362,10 @@ ifeq ($(JAVA_HOME),)
2378
2362
  endif
2379
2363
  $(AM_V_GEN)cd java; SHA256_CMD='$(SHA256_CMD)' $(MAKE) javalib;
2380
2364
  $(AM_V_at)rm -f ./java/target/$(ROCKSDBJNILIB)
2381
- $(AM_V_at)$(CXX) $(CXXFLAGS) -I./java/. $(JAVA_INCLUDE) -shared -fPIC -o ./java/target/$(ROCKSDBJNILIB) $(JNI_NATIVE_SOURCES) $(LIB_OBJECTS) $(JAVA_LDFLAGS) $(COVERAGEFLAGS)
2382
- $(AM_V_at)cd java;jar -cf target/$(ROCKSDB_JAR) HISTORY*.md
2383
- $(AM_V_at)cd java/target;jar -uf $(ROCKSDB_JAR) $(ROCKSDBJNILIB)
2384
- $(AM_V_at)cd java/target/classes;jar -uf ../$(ROCKSDB_JAR) org/rocksdb/*.class org/rocksdb/util/*.class
2365
+ $(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
+ $(AM_V_at)cd java; $(JAR_CMD) -cf target/$(ROCKSDB_JAR) HISTORY*.md
2367
+ $(AM_V_at)cd java/target; $(JAR_CMD) -uf $(ROCKSDB_JAR) $(ROCKSDBJNILIB)
2368
+ $(AM_V_at)cd java/target/classes; $(JAR_CMD) -uf ../$(ROCKSDB_JAR) org/rocksdb/*.class org/rocksdb/util/*.class
2385
2369
  $(AM_V_at)openssl sha1 java/target/$(ROCKSDB_JAR) | sed 's/.*= \([0-9a-f]*\)/\1/' > java/target/$(ROCKSDB_JAR).sha1
2386
2370
 
2387
2371
  jclean:
@@ -2400,10 +2384,26 @@ jtest: rocksdbjava
2400
2384
  jdb_bench:
2401
2385
  cd java;$(MAKE) db_bench;
2402
2386
 
2403
- commit_prereq: build_tools/rocksdb-lego-determinator \
2404
- build_tools/precommit_checker.py
2405
- J=$(J) build_tools/precommit_checker.py unit unit_481 clang_unit release release_481 clang_release tsan asan ubsan lite unit_non_shm
2406
- $(MAKE) clean && $(MAKE) jclean && $(MAKE) rocksdbjava;
2387
+ commit_prereq:
2388
+ echo "TODO: bring this back using parts of old precommit_checker.py and rocksdb-lego-determinator"
2389
+ false # J=$(J) build_tools/precommit_checker.py unit clang_unit release clang_release tsan asan ubsan lite unit_non_shm
2390
+ # $(MAKE) clean && $(MAKE) jclean && $(MAKE) rocksdbjava;
2391
+
2392
+ # For public CI runs, checkout folly in a way that can build with RocksDB.
2393
+ # This is mostly intended as a test-only simulation of Meta-internal folly
2394
+ # integration.
2395
+ checkout_folly:
2396
+ if [ -e third-party/folly ]; then \
2397
+ cd third-party/folly && git fetch origin; \
2398
+ else \
2399
+ cd third-party && git clone https://github.com/facebook/folly.git; \
2400
+ fi
2401
+ @# Pin to a particular version for public CI, so that PR authors don't
2402
+ @# need to worry about folly breaking our integration. Update periodically
2403
+ cd third-party/folly && git reset --hard 98b9b2c1124e99f50f9085ddee74ce32afffc665
2404
+ @# A hack to remove boost dependency.
2405
+ @# NOTE: this hack is not needed if using FBCODE compiler config
2406
+ perl -pi -e 's/^(#include <boost)/\/\/$$1/' third-party/folly/folly/functional/Invoke.h
2407
2407
 
2408
2408
  # ---------------------------------------------------------------------------
2409
2409
  # Platform-specific compilation
@@ -2453,12 +2453,14 @@ endif
2453
2453
  # ---------------------------------------------------------------------------
2454
2454
  # Source files dependencies detection
2455
2455
  # ---------------------------------------------------------------------------
2456
-
2456
+ # If skip dependencies is ON, skip including the dep files
2457
+ ifneq ($(SKIP_DEPENDS), 1)
2457
2458
  DEPFILES = $(patsubst %.cc, $(OBJ_DIR)/%.cc.d, $(ALL_SOURCES))
2458
2459
  DEPFILES+ = $(patsubst %.c, $(OBJ_DIR)/%.c.d, $(LIB_SOURCES_C) $(TEST_MAIN_SOURCES_C))
2459
- ifeq ($(USE_FOLLY_DISTRIBUTED_MUTEX),1)
2460
+ ifeq ($(USE_FOLLY),1)
2460
2461
  DEPFILES +=$(patsubst %.cpp, $(OBJ_DIR)/%.cpp.d, $(FOLLY_SOURCES))
2461
2462
  endif
2463
+ endif
2462
2464
 
2463
2465
  # Add proper dependency support so changing a .h file forces a .cc file to
2464
2466
  # rebuild.
@@ -2498,24 +2500,12 @@ endif
2498
2500
  build_subset_tests: $(ROCKSDBTESTS_SUBSET)
2499
2501
  $(AM_V_GEN)if [ -n "$${ROCKSDBTESTS_SUBSET_TESTS_TO_FILE}" ]; then echo "$(ROCKSDBTESTS_SUBSET)" > "$${ROCKSDBTESTS_SUBSET_TESTS_TO_FILE}"; else echo "$(ROCKSDBTESTS_SUBSET)"; fi
2500
2502
 
2501
- # if the make goal is either "clean" or "format", we shouldn't
2502
- # try to import the *.d files.
2503
- # TODO(kailiu) The unfamiliarity of Make's conditions leads to the ugly
2504
- # working solution.
2505
- ifneq ($(MAKECMDGOALS),clean)
2506
- ifneq ($(MAKECMDGOALS),format)
2507
- ifneq ($(MAKECMDGOALS),jclean)
2508
- ifneq ($(MAKECMDGOALS),jtest)
2509
- ifneq ($(MAKECMDGOALS),rocksdbjavastatic)
2510
- ifneq ($(MAKECMDGOALS),rocksdbjavastatic_deps)
2511
- ifneq ($(MAKECMDGOALS),package)
2512
- ifneq ($(MAKECMDGOALS),analyze)
2503
+ list_all_tests:
2504
+ echo "$(ROCKSDBTESTS_SUBSET)"
2505
+
2506
+ # Remove the rules for which dependencies should not be generated and see if any are left.
2507
+ #If so, include the dependencies; if not, do not include the dependency files
2508
+ ROCKS_DEP_RULES=$(filter-out clean format check-format check-buck-targets check-headers check-sources jclean jtest package analyze tags rocksdbjavastatic% unity.% unity_test checkout_folly, $(MAKECMDGOALS))
2509
+ ifneq ("$(ROCKS_DEP_RULES)", "")
2513
2510
  -include $(DEPFILES)
2514
2511
  endif
2515
- endif
2516
- endif
2517
- endif
2518
- endif
2519
- endif
2520
- endif
2521
- endif