compaction_job_stats.cc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  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 "rocksdb/compaction_job_stats.h"
  9. #include <jni.h>
  10. #include "include/org_rocksdb_CompactionJobStats.h"
  11. #include "rocksjni/cplusplus_to_java_convert.h"
  12. #include "rocksjni/portal.h"
  13. /*
  14. * Class: org_rocksdb_CompactionJobStats
  15. * Method: newCompactionJobStats
  16. * Signature: ()J
  17. */
  18. jlong Java_org_rocksdb_CompactionJobStats_newCompactionJobStats(JNIEnv*,
  19. jclass) {
  20. auto* compact_job_stats = new ROCKSDB_NAMESPACE::CompactionJobStats();
  21. return GET_CPLUSPLUS_POINTER(compact_job_stats);
  22. }
  23. /*
  24. * Class: org_rocksdb_CompactionJobStats
  25. * Method: disposeInternal
  26. * Signature: (J)V
  27. */
  28. void Java_org_rocksdb_CompactionJobStats_disposeInternalJni(JNIEnv*, jclass,
  29. jlong jhandle) {
  30. auto* compact_job_stats =
  31. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  32. delete compact_job_stats;
  33. }
  34. /*
  35. * Class: org_rocksdb_CompactionJobStats
  36. * Method: reset
  37. * Signature: (J)V
  38. */
  39. void Java_org_rocksdb_CompactionJobStats_reset(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(JNIEnv*, jclass, jlong jhandle,
  50. 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(JNIEnv*, jclass,
  63. 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(JNIEnv*, jclass,
  74. 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(JNIEnv*, jclass,
  85. 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>(compact_job_stats->num_input_files_at_output_level);
  100. }
  101. /*
  102. * Class: org_rocksdb_CompactionJobStats
  103. * Method: numOutputRecords
  104. * Signature: (J)J
  105. */
  106. jlong Java_org_rocksdb_CompactionJobStats_numOutputRecords(JNIEnv*, jclass,
  107. jlong jhandle) {
  108. auto* compact_job_stats =
  109. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  110. return static_cast<jlong>(compact_job_stats->num_output_records);
  111. }
  112. /*
  113. * Class: org_rocksdb_CompactionJobStats
  114. * Method: numOutputFiles
  115. * Signature: (J)J
  116. */
  117. jlong Java_org_rocksdb_CompactionJobStats_numOutputFiles(JNIEnv*, jclass,
  118. jlong jhandle) {
  119. auto* compact_job_stats =
  120. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  121. return static_cast<jlong>(compact_job_stats->num_output_files);
  122. }
  123. /*
  124. * Class: org_rocksdb_CompactionJobStats
  125. * Method: isManualCompaction
  126. * Signature: (J)Z
  127. */
  128. jboolean Java_org_rocksdb_CompactionJobStats_isManualCompaction(JNIEnv*, jclass,
  129. jlong jhandle) {
  130. auto* compact_job_stats =
  131. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  132. if (compact_job_stats->is_manual_compaction) {
  133. return JNI_TRUE;
  134. } else {
  135. return JNI_FALSE;
  136. }
  137. }
  138. /*
  139. * Class: org_rocksdb_CompactionJobStats
  140. * Method: totalInputBytes
  141. * Signature: (J)J
  142. */
  143. jlong Java_org_rocksdb_CompactionJobStats_totalInputBytes(JNIEnv*, jclass,
  144. jlong jhandle) {
  145. auto* compact_job_stats =
  146. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  147. return static_cast<jlong>(compact_job_stats->total_input_bytes);
  148. }
  149. /*
  150. * Class: org_rocksdb_CompactionJobStats
  151. * Method: totalOutputBytes
  152. * Signature: (J)J
  153. */
  154. jlong Java_org_rocksdb_CompactionJobStats_totalOutputBytes(JNIEnv*, jclass,
  155. jlong jhandle) {
  156. auto* compact_job_stats =
  157. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  158. return static_cast<jlong>(compact_job_stats->total_output_bytes);
  159. }
  160. /*
  161. * Class: org_rocksdb_CompactionJobStats
  162. * Method: numRecordsReplaced
  163. * Signature: (J)J
  164. */
  165. jlong Java_org_rocksdb_CompactionJobStats_numRecordsReplaced(JNIEnv*, jclass,
  166. jlong jhandle) {
  167. auto* compact_job_stats =
  168. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  169. return static_cast<jlong>(compact_job_stats->num_records_replaced);
  170. }
  171. /*
  172. * Class: org_rocksdb_CompactionJobStats
  173. * Method: totalInputRawKeyBytes
  174. * Signature: (J)J
  175. */
  176. jlong Java_org_rocksdb_CompactionJobStats_totalInputRawKeyBytes(JNIEnv*, jclass,
  177. jlong jhandle) {
  178. auto* compact_job_stats =
  179. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  180. return static_cast<jlong>(compact_job_stats->total_input_raw_key_bytes);
  181. }
  182. /*
  183. * Class: org_rocksdb_CompactionJobStats
  184. * Method: totalInputRawValueBytes
  185. * Signature: (J)J
  186. */
  187. jlong Java_org_rocksdb_CompactionJobStats_totalInputRawValueBytes(
  188. JNIEnv*, jclass, jlong jhandle) {
  189. auto* compact_job_stats =
  190. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  191. return static_cast<jlong>(compact_job_stats->total_input_raw_value_bytes);
  192. }
  193. /*
  194. * Class: org_rocksdb_CompactionJobStats
  195. * Method: numInputDeletionRecords
  196. * Signature: (J)J
  197. */
  198. jlong Java_org_rocksdb_CompactionJobStats_numInputDeletionRecords(
  199. JNIEnv*, jclass, jlong jhandle) {
  200. auto* compact_job_stats =
  201. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  202. return static_cast<jlong>(compact_job_stats->num_input_deletion_records);
  203. }
  204. /*
  205. * Class: org_rocksdb_CompactionJobStats
  206. * Method: numExpiredDeletionRecords
  207. * Signature: (J)J
  208. */
  209. jlong Java_org_rocksdb_CompactionJobStats_numExpiredDeletionRecords(
  210. JNIEnv*, jclass, jlong jhandle) {
  211. auto* compact_job_stats =
  212. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  213. return static_cast<jlong>(compact_job_stats->num_expired_deletion_records);
  214. }
  215. /*
  216. * Class: org_rocksdb_CompactionJobStats
  217. * Method: numCorruptKeys
  218. * Signature: (J)J
  219. */
  220. jlong Java_org_rocksdb_CompactionJobStats_numCorruptKeys(JNIEnv*, jclass,
  221. jlong jhandle) {
  222. auto* compact_job_stats =
  223. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  224. return static_cast<jlong>(compact_job_stats->num_corrupt_keys);
  225. }
  226. /*
  227. * Class: org_rocksdb_CompactionJobStats
  228. * Method: fileWriteNanos
  229. * Signature: (J)J
  230. */
  231. jlong Java_org_rocksdb_CompactionJobStats_fileWriteNanos(JNIEnv*, jclass,
  232. jlong jhandle) {
  233. auto* compact_job_stats =
  234. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  235. return static_cast<jlong>(compact_job_stats->file_write_nanos);
  236. }
  237. /*
  238. * Class: org_rocksdb_CompactionJobStats
  239. * Method: fileRangeSyncNanos
  240. * Signature: (J)J
  241. */
  242. jlong Java_org_rocksdb_CompactionJobStats_fileRangeSyncNanos(JNIEnv*, jclass,
  243. jlong jhandle) {
  244. auto* compact_job_stats =
  245. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  246. return static_cast<jlong>(compact_job_stats->file_range_sync_nanos);
  247. }
  248. /*
  249. * Class: org_rocksdb_CompactionJobStats
  250. * Method: fileFsyncNanos
  251. * Signature: (J)J
  252. */
  253. jlong Java_org_rocksdb_CompactionJobStats_fileFsyncNanos(JNIEnv*, jclass,
  254. jlong jhandle) {
  255. auto* compact_job_stats =
  256. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  257. return static_cast<jlong>(compact_job_stats->file_fsync_nanos);
  258. }
  259. /*
  260. * Class: org_rocksdb_CompactionJobStats
  261. * Method: filePrepareWriteNanos
  262. * Signature: (J)J
  263. */
  264. jlong Java_org_rocksdb_CompactionJobStats_filePrepareWriteNanos(JNIEnv*, jclass,
  265. jlong jhandle) {
  266. auto* compact_job_stats =
  267. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  268. return static_cast<jlong>(compact_job_stats->file_prepare_write_nanos);
  269. }
  270. /*
  271. * Class: org_rocksdb_CompactionJobStats
  272. * Method: smallestOutputKeyPrefix
  273. * Signature: (J)[B
  274. */
  275. jbyteArray Java_org_rocksdb_CompactionJobStats_smallestOutputKeyPrefix(
  276. JNIEnv* env, jclass, jlong jhandle) {
  277. auto* compact_job_stats =
  278. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  279. return ROCKSDB_NAMESPACE::JniUtil::copyBytes(
  280. env, compact_job_stats->smallest_output_key_prefix);
  281. }
  282. /*
  283. * Class: org_rocksdb_CompactionJobStats
  284. * Method: largestOutputKeyPrefix
  285. * Signature: (J)[B
  286. */
  287. jbyteArray Java_org_rocksdb_CompactionJobStats_largestOutputKeyPrefix(
  288. JNIEnv* env, jclass, jlong jhandle) {
  289. auto* compact_job_stats =
  290. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  291. return ROCKSDB_NAMESPACE::JniUtil::copyBytes(
  292. env, compact_job_stats->largest_output_key_prefix);
  293. }
  294. /*
  295. * Class: org_rocksdb_CompactionJobStats
  296. * Method: numSingleDelFallthru
  297. * Signature: (J)J
  298. */
  299. jlong Java_org_rocksdb_CompactionJobStats_numSingleDelFallthru(JNIEnv*, jclass,
  300. jlong jhandle) {
  301. auto* compact_job_stats =
  302. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  303. return static_cast<jlong>(compact_job_stats->num_single_del_fallthru);
  304. }
  305. /*
  306. * Class: org_rocksdb_CompactionJobStats
  307. * Method: numSingleDelMismatch
  308. * Signature: (J)J
  309. */
  310. jlong Java_org_rocksdb_CompactionJobStats_numSingleDelMismatch(JNIEnv*, jclass,
  311. jlong jhandle) {
  312. auto* compact_job_stats =
  313. reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
  314. return static_cast<jlong>(compact_job_stats->num_single_del_mismatch);
  315. }