compaction_job_stats.cc 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
  2. // This source code is licensed under both the GPLv2 (found in the
  3. // COPYING file in the root directory) and Apache 2.0 License
  4. // (found in the LICENSE.Apache file in the root directory).
  5. //
  6. // This file implements the "bridge" between Java and C++ for
  7. // ROCKSDB_NAMESPACE::CompactionJobStats.
  8. #include <jni.h>
  9. #include "include/org_rocksdb_CompactionJobStats.h"
  10. #include "rocksdb/compaction_job_stats.h"
  11. #include "rocksjni/portal.h"
  12. /*
  13. * Class: org_rocksdb_CompactionJobStats
  14. * Method: newCompactionJobStats
  15. * Signature: ()J
  16. */
  17. jlong Java_org_rocksdb_CompactionJobStats_newCompactionJobStats(
  18. JNIEnv*, jclass) {
  19. auto* compact_job_stats = new ROCKSDB_NAMESPACE::CompactionJobStats();
  20. return reinterpret_cast<jlong>(compact_job_stats);
  21. }
  22. /*
  23. * Class: org_rocksdb_CompactionJobStats
  24. * Method: disposeInternal
  25. * Signature: (J)V
  26. */
  27. void Java_org_rocksdb_CompactionJobStats_disposeInternal(
  28. JNIEnv *, jobject, jlong jhandle) {
  29. auto* compact_job_stats =
  30. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  31. delete compact_job_stats;
  32. }
  33. /*
  34. * Class: org_rocksdb_CompactionJobStats
  35. * Method: reset
  36. * Signature: (J)V
  37. */
  38. void Java_org_rocksdb_CompactionJobStats_reset(
  39. JNIEnv*, jclass, jlong jhandle) {
  40. auto* compact_job_stats =
  41. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  42. compact_job_stats->Reset();
  43. }
  44. /*
  45. * Class: org_rocksdb_CompactionJobStats
  46. * Method: add
  47. * Signature: (JJ)V
  48. */
  49. void Java_org_rocksdb_CompactionJobStats_add(
  50. JNIEnv*, jclass, jlong jhandle, jlong jother_handle) {
  51. auto* compact_job_stats =
  52. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  53. auto* other_compact_job_stats =
  54. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jother_handle);
  55. compact_job_stats->Add(*other_compact_job_stats);
  56. }
  57. /*
  58. * Class: org_rocksdb_CompactionJobStats
  59. * Method: elapsedMicros
  60. * Signature: (J)J
  61. */
  62. jlong Java_org_rocksdb_CompactionJobStats_elapsedMicros(
  63. JNIEnv*, jclass, jlong jhandle) {
  64. auto* compact_job_stats =
  65. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  66. return static_cast<jlong>(compact_job_stats->elapsed_micros);
  67. }
  68. /*
  69. * Class: org_rocksdb_CompactionJobStats
  70. * Method: numInputRecords
  71. * Signature: (J)J
  72. */
  73. jlong Java_org_rocksdb_CompactionJobStats_numInputRecords(
  74. JNIEnv*, jclass, jlong jhandle) {
  75. auto* compact_job_stats =
  76. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  77. return static_cast<jlong>(compact_job_stats->num_input_records);
  78. }
  79. /*
  80. * Class: org_rocksdb_CompactionJobStats
  81. * Method: numInputFiles
  82. * Signature: (J)J
  83. */
  84. jlong Java_org_rocksdb_CompactionJobStats_numInputFiles(
  85. JNIEnv*, jclass, jlong jhandle) {
  86. auto* compact_job_stats =
  87. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  88. return static_cast<jlong>(compact_job_stats->num_input_files);
  89. }
  90. /*
  91. * Class: org_rocksdb_CompactionJobStats
  92. * Method: numInputFilesAtOutputLevel
  93. * Signature: (J)J
  94. */
  95. jlong Java_org_rocksdb_CompactionJobStats_numInputFilesAtOutputLevel(
  96. JNIEnv*, jclass, jlong jhandle) {
  97. auto* compact_job_stats =
  98. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  99. return static_cast<jlong>(
  100. compact_job_stats->num_input_files_at_output_level);
  101. }
  102. /*
  103. * Class: org_rocksdb_CompactionJobStats
  104. * Method: numOutputRecords
  105. * Signature: (J)J
  106. */
  107. jlong Java_org_rocksdb_CompactionJobStats_numOutputRecords(
  108. JNIEnv*, jclass, jlong jhandle) {
  109. auto* compact_job_stats =
  110. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  111. return static_cast<jlong>(
  112. compact_job_stats->num_output_records);
  113. }
  114. /*
  115. * Class: org_rocksdb_CompactionJobStats
  116. * Method: numOutputFiles
  117. * Signature: (J)J
  118. */
  119. jlong Java_org_rocksdb_CompactionJobStats_numOutputFiles(
  120. JNIEnv*, jclass, jlong jhandle) {
  121. auto* compact_job_stats =
  122. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  123. return static_cast<jlong>(
  124. compact_job_stats->num_output_files);
  125. }
  126. /*
  127. * Class: org_rocksdb_CompactionJobStats
  128. * Method: isManualCompaction
  129. * Signature: (J)Z
  130. */
  131. jboolean Java_org_rocksdb_CompactionJobStats_isManualCompaction(
  132. JNIEnv*, jclass, jlong jhandle) {
  133. auto* compact_job_stats =
  134. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  135. if (compact_job_stats->is_manual_compaction) {
  136. return JNI_TRUE;
  137. } else {
  138. return JNI_FALSE;
  139. }
  140. }
  141. /*
  142. * Class: org_rocksdb_CompactionJobStats
  143. * Method: totalInputBytes
  144. * Signature: (J)J
  145. */
  146. jlong Java_org_rocksdb_CompactionJobStats_totalInputBytes(
  147. JNIEnv*, jclass, jlong jhandle) {
  148. auto* compact_job_stats =
  149. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  150. return static_cast<jlong>(
  151. compact_job_stats->total_input_bytes);
  152. }
  153. /*
  154. * Class: org_rocksdb_CompactionJobStats
  155. * Method: totalOutputBytes
  156. * Signature: (J)J
  157. */
  158. jlong Java_org_rocksdb_CompactionJobStats_totalOutputBytes(
  159. JNIEnv*, jclass, jlong jhandle) {
  160. auto* compact_job_stats =
  161. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  162. return static_cast<jlong>(
  163. compact_job_stats->total_output_bytes);
  164. }
  165. /*
  166. * Class: org_rocksdb_CompactionJobStats
  167. * Method: numRecordsReplaced
  168. * Signature: (J)J
  169. */
  170. jlong Java_org_rocksdb_CompactionJobStats_numRecordsReplaced(
  171. JNIEnv*, jclass, jlong jhandle) {
  172. auto* compact_job_stats =
  173. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  174. return static_cast<jlong>(
  175. compact_job_stats->num_records_replaced);
  176. }
  177. /*
  178. * Class: org_rocksdb_CompactionJobStats
  179. * Method: totalInputRawKeyBytes
  180. * Signature: (J)J
  181. */
  182. jlong Java_org_rocksdb_CompactionJobStats_totalInputRawKeyBytes(
  183. JNIEnv*, jclass, jlong jhandle) {
  184. auto* compact_job_stats =
  185. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  186. return static_cast<jlong>(
  187. compact_job_stats->total_input_raw_key_bytes);
  188. }
  189. /*
  190. * Class: org_rocksdb_CompactionJobStats
  191. * Method: totalInputRawValueBytes
  192. * Signature: (J)J
  193. */
  194. jlong Java_org_rocksdb_CompactionJobStats_totalInputRawValueBytes(
  195. JNIEnv*, jclass, jlong jhandle) {
  196. auto* compact_job_stats =
  197. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  198. return static_cast<jlong>(
  199. compact_job_stats->total_input_raw_value_bytes);
  200. }
  201. /*
  202. * Class: org_rocksdb_CompactionJobStats
  203. * Method: numInputDeletionRecords
  204. * Signature: (J)J
  205. */
  206. jlong Java_org_rocksdb_CompactionJobStats_numInputDeletionRecords(
  207. JNIEnv*, jclass, jlong jhandle) {
  208. auto* compact_job_stats =
  209. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  210. return static_cast<jlong>(
  211. compact_job_stats->num_input_deletion_records);
  212. }
  213. /*
  214. * Class: org_rocksdb_CompactionJobStats
  215. * Method: numExpiredDeletionRecords
  216. * Signature: (J)J
  217. */
  218. jlong Java_org_rocksdb_CompactionJobStats_numExpiredDeletionRecords(
  219. JNIEnv*, jclass, jlong jhandle) {
  220. auto* compact_job_stats =
  221. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  222. return static_cast<jlong>(
  223. compact_job_stats->num_expired_deletion_records);
  224. }
  225. /*
  226. * Class: org_rocksdb_CompactionJobStats
  227. * Method: numCorruptKeys
  228. * Signature: (J)J
  229. */
  230. jlong Java_org_rocksdb_CompactionJobStats_numCorruptKeys(
  231. JNIEnv*, jclass, jlong jhandle) {
  232. auto* compact_job_stats =
  233. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  234. return static_cast<jlong>(
  235. compact_job_stats->num_corrupt_keys);
  236. }
  237. /*
  238. * Class: org_rocksdb_CompactionJobStats
  239. * Method: fileWriteNanos
  240. * Signature: (J)J
  241. */
  242. jlong Java_org_rocksdb_CompactionJobStats_fileWriteNanos(
  243. JNIEnv*, jclass, jlong jhandle) {
  244. auto* compact_job_stats =
  245. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  246. return static_cast<jlong>(
  247. compact_job_stats->file_write_nanos);
  248. }
  249. /*
  250. * Class: org_rocksdb_CompactionJobStats
  251. * Method: fileRangeSyncNanos
  252. * Signature: (J)J
  253. */
  254. jlong Java_org_rocksdb_CompactionJobStats_fileRangeSyncNanos(
  255. JNIEnv*, jclass, jlong jhandle) {
  256. auto* compact_job_stats =
  257. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  258. return static_cast<jlong>(
  259. compact_job_stats->file_range_sync_nanos);
  260. }
  261. /*
  262. * Class: org_rocksdb_CompactionJobStats
  263. * Method: fileFsyncNanos
  264. * Signature: (J)J
  265. */
  266. jlong Java_org_rocksdb_CompactionJobStats_fileFsyncNanos(
  267. JNIEnv*, jclass, jlong jhandle) {
  268. auto* compact_job_stats =
  269. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  270. return static_cast<jlong>(
  271. compact_job_stats->file_fsync_nanos);
  272. }
  273. /*
  274. * Class: org_rocksdb_CompactionJobStats
  275. * Method: filePrepareWriteNanos
  276. * Signature: (J)J
  277. */
  278. jlong Java_org_rocksdb_CompactionJobStats_filePrepareWriteNanos(
  279. JNIEnv*, jclass, jlong jhandle) {
  280. auto* compact_job_stats =
  281. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  282. return static_cast<jlong>(
  283. compact_job_stats->file_prepare_write_nanos);
  284. }
  285. /*
  286. * Class: org_rocksdb_CompactionJobStats
  287. * Method: smallestOutputKeyPrefix
  288. * Signature: (J)[B
  289. */
  290. jbyteArray Java_org_rocksdb_CompactionJobStats_smallestOutputKeyPrefix(
  291. JNIEnv* env, jclass, jlong jhandle) {
  292. auto* compact_job_stats =
  293. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  294. return ROCKSDB_NAMESPACE::JniUtil::copyBytes(
  295. env, compact_job_stats->smallest_output_key_prefix);
  296. }
  297. /*
  298. * Class: org_rocksdb_CompactionJobStats
  299. * Method: largestOutputKeyPrefix
  300. * Signature: (J)[B
  301. */
  302. jbyteArray Java_org_rocksdb_CompactionJobStats_largestOutputKeyPrefix(
  303. JNIEnv* env, jclass, jlong jhandle) {
  304. auto* compact_job_stats =
  305. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  306. return ROCKSDB_NAMESPACE::JniUtil::copyBytes(
  307. env, compact_job_stats->largest_output_key_prefix);
  308. }
  309. /*
  310. * Class: org_rocksdb_CompactionJobStats
  311. * Method: numSingleDelFallthru
  312. * Signature: (J)J
  313. */
  314. jlong Java_org_rocksdb_CompactionJobStats_numSingleDelFallthru(
  315. JNIEnv*, jclass, jlong jhandle) {
  316. auto* compact_job_stats =
  317. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  318. return static_cast<jlong>(
  319. compact_job_stats->num_single_del_fallthru);
  320. }
  321. /*
  322. * Class: org_rocksdb_CompactionJobStats
  323. * Method: numSingleDelMismatch
  324. * Signature: (J)J
  325. */
  326. jlong Java_org_rocksdb_CompactionJobStats_numSingleDelMismatch(
  327. JNIEnv*, jclass, jlong jhandle) {
  328. auto* compact_job_stats =
  329. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  330. return static_cast<jlong>(
  331. compact_job_stats->num_single_del_mismatch);
  332. }