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 package org.rocksdb; 7 8 public enum HistogramType { 9 10 DB_GET((byte) 0x0), 11 12 DB_WRITE((byte) 0x1), 13 14 COMPACTION_TIME((byte) 0x2), 15 16 SUBCOMPACTION_SETUP_TIME((byte) 0x3), 17 18 TABLE_SYNC_MICROS((byte) 0x4), 19 20 COMPACTION_OUTFILE_SYNC_MICROS((byte) 0x5), 21 22 WAL_FILE_SYNC_MICROS((byte) 0x6), 23 24 MANIFEST_FILE_SYNC_MICROS((byte) 0x7), 25 26 /** 27 * TIME SPENT IN IO DURING TABLE OPEN. 28 */ 29 TABLE_OPEN_IO_MICROS((byte) 0x8), 30 31 DB_MULTIGET((byte) 0x9), 32 33 READ_BLOCK_COMPACTION_MICROS((byte) 0xA), 34 35 READ_BLOCK_GET_MICROS((byte) 0xB), 36 37 WRITE_RAW_BLOCK_MICROS((byte) 0xC), 38 39 STALL_L0_SLOWDOWN_COUNT((byte) 0xD), 40 41 STALL_MEMTABLE_COMPACTION_COUNT((byte) 0xE), 42 43 STALL_L0_NUM_FILES_COUNT((byte) 0xF), 44 45 HARD_RATE_LIMIT_DELAY_COUNT((byte) 0x10), 46 47 SOFT_RATE_LIMIT_DELAY_COUNT((byte) 0x11), 48 49 NUM_FILES_IN_SINGLE_COMPACTION((byte) 0x12), 50 51 DB_SEEK((byte) 0x13), 52 53 WRITE_STALL((byte) 0x14), 54 55 SST_READ_MICROS((byte) 0x15), 56 57 /** 58 * The number of subcompactions actually scheduled during a compaction. 59 */ 60 NUM_SUBCOMPACTIONS_SCHEDULED((byte) 0x16), 61 62 /** 63 * Value size distribution in each operation. 64 */ 65 BYTES_PER_READ((byte) 0x17), 66 BYTES_PER_WRITE((byte) 0x18), 67 BYTES_PER_MULTIGET((byte) 0x19), 68 69 /** 70 * number of bytes compressed. 71 */ 72 BYTES_COMPRESSED((byte) 0x1A), 73 74 /** 75 * number of bytes decompressed. 76 * 77 * number of bytes is when uncompressed; i.e. before/after respectively 78 */ 79 BYTES_DECOMPRESSED((byte) 0x1B), 80 81 COMPRESSION_TIMES_NANOS((byte) 0x1C), 82 83 DECOMPRESSION_TIMES_NANOS((byte) 0x1D), 84 85 READ_NUM_MERGE_OPERANDS((byte) 0x1E), 86 87 /** 88 * Time spent flushing memtable to disk. 89 */ 90 FLUSH_TIME((byte) 0x20), 91 92 /** 93 * Size of keys written to BlobDB. 94 */ 95 BLOB_DB_KEY_SIZE((byte) 0x21), 96 97 /** 98 * Size of values written to BlobDB. 99 */ 100 BLOB_DB_VALUE_SIZE((byte) 0x22), 101 102 /** 103 * BlobDB Put/PutWithTTL/PutUntil/Write latency. 104 */ 105 BLOB_DB_WRITE_MICROS((byte) 0x23), 106 107 /** 108 * BlobDB Get lagency. 109 */ 110 BLOB_DB_GET_MICROS((byte) 0x24), 111 112 /** 113 * BlobDB MultiGet latency. 114 */ 115 BLOB_DB_MULTIGET_MICROS((byte) 0x25), 116 117 /** 118 * BlobDB Seek/SeekToFirst/SeekToLast/SeekForPrev latency. 119 */ 120 BLOB_DB_SEEK_MICROS((byte) 0x26), 121 122 /** 123 * BlobDB Next latency. 124 */ 125 BLOB_DB_NEXT_MICROS((byte) 0x27), 126 127 /** 128 * BlobDB Prev latency. 129 */ 130 BLOB_DB_PREV_MICROS((byte) 0x28), 131 132 /** 133 * Blob file write latency. 134 */ 135 BLOB_DB_BLOB_FILE_WRITE_MICROS((byte) 0x29), 136 137 /** 138 * Blob file read latency. 139 */ 140 BLOB_DB_BLOB_FILE_READ_MICROS((byte) 0x2A), 141 142 /** 143 * Blob file sync latency. 144 */ 145 BLOB_DB_BLOB_FILE_SYNC_MICROS((byte) 0x2B), 146 147 /** 148 * BlobDB garbage collection time. 149 */ 150 BLOB_DB_GC_MICROS((byte) 0x2C), 151 152 /** 153 * BlobDB compression time. 154 */ 155 BLOB_DB_COMPRESSION_MICROS((byte) 0x2D), 156 157 /** 158 * BlobDB decompression time. 159 */ 160 BLOB_DB_DECOMPRESSION_MICROS((byte) 0x2E), 161 162 // 0x1F for backwards compatibility on current minor version. 163 HISTOGRAM_ENUM_MAX((byte) 0x1F); 164 165 private final byte value; 166 HistogramType(final byte value)167 HistogramType(final byte value) { 168 this.value = value; 169 } 170 171 /** 172 * Returns the byte value of the enumerations value 173 * 174 * @return byte representation 175 */ getValue()176 public byte getValue() { 177 return value; 178 } 179 180 /** 181 * Get Histogram type by byte value. 182 * 183 * @param value byte representation of HistogramType. 184 * 185 * @return {@link org.rocksdb.HistogramType} instance. 186 * @throws java.lang.IllegalArgumentException if an invalid 187 * value is provided. 188 */ getHistogramType(final byte value)189 public static HistogramType getHistogramType(final byte value) { 190 for (final HistogramType histogramType : HistogramType.values()) { 191 if (histogramType.getValue() == value) { 192 return histogramType; 193 } 194 } 195 throw new IllegalArgumentException( 196 "Illegal value provided for HistogramType."); 197 } 198 } 199