]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/java/src/test/java/org/rocksdb/StatisticsTest.java
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / rocksdb / java / src / test / java / org / rocksdb / StatisticsTest.java
CommitLineData
11fdf7f2
TL
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
6package org.rocksdb;
7
8import org.junit.ClassRule;
9import org.junit.Rule;
10import org.junit.Test;
11import org.junit.rules.TemporaryFolder;
12
13import java.nio.charset.StandardCharsets;
14
15import static org.assertj.core.api.Assertions.assertThat;
16
17public class StatisticsTest {
18
19 @ClassRule
f67539c2
TL
20 public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE =
21 new RocksNativeLibraryResource();
11fdf7f2
TL
22
23 @Rule
24 public TemporaryFolder dbFolder = new TemporaryFolder();
25
26 @Test
27 public void statsLevel() throws RocksDBException {
28 final Statistics statistics = new Statistics();
29 statistics.setStatsLevel(StatsLevel.ALL);
30 assertThat(statistics.statsLevel()).isEqualTo(StatsLevel.ALL);
31 }
32
33 @Test
34 public void getTickerCount() throws RocksDBException {
35 try (final Statistics statistics = new Statistics();
36 final Options opt = new Options()
37 .setStatistics(statistics)
38 .setCreateIfMissing(true);
39 final RocksDB db = RocksDB.open(opt,
40 dbFolder.getRoot().getAbsolutePath())) {
41
42 final byte[] key = "some-key".getBytes(StandardCharsets.UTF_8);
43 final byte[] value = "some-value".getBytes(StandardCharsets.UTF_8);
44
45 db.put(key, value);
46 for(int i = 0; i < 10; i++) {
47 db.get(key);
48 }
49
50 assertThat(statistics.getTickerCount(TickerType.BYTES_READ)).isGreaterThan(0);
51 }
52 }
53
54 @Test
55 public void getAndResetTickerCount() throws RocksDBException {
56 try (final Statistics statistics = new Statistics();
57 final Options opt = new Options()
58 .setStatistics(statistics)
59 .setCreateIfMissing(true);
60 final RocksDB db = RocksDB.open(opt,
61 dbFolder.getRoot().getAbsolutePath())) {
62
63 final byte[] key = "some-key".getBytes(StandardCharsets.UTF_8);
64 final byte[] value = "some-value".getBytes(StandardCharsets.UTF_8);
65
66 db.put(key, value);
67 for(int i = 0; i < 10; i++) {
68 db.get(key);
69 }
70
71 final long read = statistics.getAndResetTickerCount(TickerType.BYTES_READ);
72 assertThat(read).isGreaterThan(0);
73
74 final long readAfterReset = statistics.getTickerCount(TickerType.BYTES_READ);
75 assertThat(readAfterReset).isLessThan(read);
76 }
77 }
78
79 @Test
80 public void getHistogramData() throws RocksDBException {
81 try (final Statistics statistics = new Statistics();
82 final Options opt = new Options()
83 .setStatistics(statistics)
84 .setCreateIfMissing(true);
85 final RocksDB db = RocksDB.open(opt,
86 dbFolder.getRoot().getAbsolutePath())) {
87
88 final byte[] key = "some-key".getBytes(StandardCharsets.UTF_8);
89 final byte[] value = "some-value".getBytes(StandardCharsets.UTF_8);
90
91 db.put(key, value);
92 for(int i = 0; i < 10; i++) {
93 db.get(key);
94 }
95
96 final HistogramData histogramData = statistics.getHistogramData(HistogramType.BYTES_PER_READ);
97 assertThat(histogramData).isNotNull();
98 assertThat(histogramData.getAverage()).isGreaterThan(0);
494da23a
TL
99 assertThat(histogramData.getMedian()).isGreaterThan(0);
100 assertThat(histogramData.getPercentile95()).isGreaterThan(0);
101 assertThat(histogramData.getPercentile99()).isGreaterThan(0);
102 assertThat(histogramData.getStandardDeviation()).isEqualTo(0.00);
103 assertThat(histogramData.getMax()).isGreaterThan(0);
104 assertThat(histogramData.getCount()).isGreaterThan(0);
105 assertThat(histogramData.getSum()).isGreaterThan(0);
106 assertThat(histogramData.getMin()).isGreaterThan(0);
11fdf7f2
TL
107 }
108 }
109
110 @Test
111 public void getHistogramString() throws RocksDBException {
112 try (final Statistics statistics = new Statistics();
113 final Options opt = new Options()
114 .setStatistics(statistics)
115 .setCreateIfMissing(true);
116 final RocksDB db = RocksDB.open(opt,
117 dbFolder.getRoot().getAbsolutePath())) {
118
119 final byte[] key = "some-key".getBytes(StandardCharsets.UTF_8);
120 final byte[] value = "some-value".getBytes(StandardCharsets.UTF_8);
121
122 for(int i = 0; i < 10; i++) {
123 db.put(key, value);
124 }
125
126 assertThat(statistics.getHistogramString(HistogramType.BYTES_PER_WRITE)).isNotNull();
127 }
128 }
129
130 @Test
131 public void reset() throws RocksDBException {
132 try (final Statistics statistics = new Statistics();
133 final Options opt = new Options()
134 .setStatistics(statistics)
135 .setCreateIfMissing(true);
136 final RocksDB db = RocksDB.open(opt,
137 dbFolder.getRoot().getAbsolutePath())) {
138
139 final byte[] key = "some-key".getBytes(StandardCharsets.UTF_8);
140 final byte[] value = "some-value".getBytes(StandardCharsets.UTF_8);
141
142 db.put(key, value);
143 for(int i = 0; i < 10; i++) {
144 db.get(key);
145 }
146
147 final long read = statistics.getTickerCount(TickerType.BYTES_READ);
148 assertThat(read).isGreaterThan(0);
149
150 statistics.reset();
151
152 final long readAfterReset = statistics.getTickerCount(TickerType.BYTES_READ);
153 assertThat(readAfterReset).isLessThan(read);
154 }
155 }
156
157 @Test
158 public void ToString() throws RocksDBException {
159 try (final Statistics statistics = new Statistics();
160 final Options opt = new Options()
161 .setStatistics(statistics)
162 .setCreateIfMissing(true);
163 final RocksDB db = RocksDB.open(opt,
164 dbFolder.getRoot().getAbsolutePath())) {
165 assertThat(statistics.toString()).isNotNull();
166 }
167 }
168}