Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kvdb
rocksdb
提交
320ae72e
R
rocksdb
项目概览
kvdb
/
rocksdb
12 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rocksdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
320ae72e
编写于
4月 16, 2014
作者:
A
Ankit Gupta
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add histogramType for statistics
上级
144066a8
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
60 addition
and
14 deletion
+60
-14
Makefile
Makefile
+1
-1
java/Makefile
java/Makefile
+1
-1
java/RocksDBSample.java
java/RocksDBSample.java
+13
-5
java/org/rocksdb/Options.java
java/org/rocksdb/Options.java
+6
-3
java/org/rocksdb/Statistics.java
java/org/rocksdb/Statistics.java
+9
-2
java/rocksjni/portal.h
java/rocksjni/portal.h
+10
-0
java/rocksjni/statistics.cc
java/rocksjni/statistics.cc
+20
-2
未找到文件。
Makefile
浏览文件 @
320ae72e
...
...
@@ -420,7 +420,7 @@ ldb: tools/ldb.o $(LIBOBJECTS)
# ---------------------------------------------------------------------------
# Jni stuff
# ---------------------------------------------------------------------------
JNI_NATIVE_SOURCES
=
./java/rocksjni/rocksjni.cc ./java/rocksjni/options.cc ./java/rocksjni/write_batch.cc
JNI_NATIVE_SOURCES
=
./java/rocksjni/rocksjni.cc ./java/rocksjni/options.cc ./java/rocksjni/write_batch.cc
./java/rocksjni/statistics.cc
JAVA_INCLUDE
=
-I
/usr/lib/jvm/java-openjdk/include/
-I
/usr/lib/jvm/java-openjdk/include/linux
ROCKSDBJNILIB
=
./java/librocksdbjni.so
...
...
java/Makefile
浏览文件 @
320ae72e
...
...
@@ -16,7 +16,7 @@ sample: java
javac
-cp
$(ROCKSDB_JAR)
RocksDBSample.java
@
rm
-rf
/tmp/rocksdbjni
@
rm
-rf
/tmp/rocksdbjni_not_found
java
-ea
-Djava
.library.path
=
.:../
-cp
".:./*"
RocksDBSample /tmp/rocksdbjni
java
-ea
-Djava
.library.path
=
.:../
-cp
".:./*"
-Xcheck
:jni
RocksDBSample /tmp/rocksdbjni
@
rm
-rf
/tmp/rocksdbjni
@
rm
-rf
/tmp/rocksdbjni_not_found
...
...
java/RocksDBSample.java
浏览文件 @
320ae72e
...
...
@@ -40,7 +40,7 @@ public class RocksDBSample {
.
setDisableSeekCompaction
(
true
)
.
setBlockSize
(
64
*
SizeUnit
.
KB
)
.
setMaxBackgroundCompactions
(
10
);
Statistics
stats
=
new
Statistics
(
options
.
statisticsPtr
()
);
Statistics
stats
=
options
.
statisticsPtr
(
);
assert
(
options
.
createIfMissing
()
==
true
);
assert
(
options
.
writeBufferSize
()
==
8
*
SizeUnit
.
KB
);
...
...
@@ -124,16 +124,24 @@ public class RocksDBSample {
writeOpts
.
dispose
();
try
{
for
(
TickerType
statsType
:
TickerType
.
values
())
{
for
(
TickerType
statsType
:
TickerType
.
values
())
{
stats
.
getTickerCount
(
statsType
);
}
System
.
out
.
println
(
"getTickerCount() passed."
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Failed in call to getTickerCount()"
);
assert
(
false
);
//Should never reach here.
}
try
{
for
(
HistogramType
histogramType
:
HistogramType
.
values
())
{
HistogramData
data
=
stats
.
geHistogramData
(
histogramType
);
}
System
.
out
.
println
(
"geHistogramData() passed."
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Failed in call to geHistogramData()"
);
assert
(
false
);
//Should never reach here.
}
}
catch
(
RocksDBException
e
)
{
System
.
err
.
println
(
e
);
}
...
...
java/org/rocksdb/Options.java
浏览文件 @
320ae72e
...
...
@@ -220,13 +220,16 @@ public class Options {
*
* @see createStatistics()
*/
public
long
statisticsPtr
()
{
public
Statistics
statisticsPtr
()
{
assert
(
isInitialized
());
long
statsPtr
=
statisticsPtr
(
nativeHandle_
);
assert
(
statsPtr
!=
0
);
if
(
statsPtr
==
0
)
{
createStatistics
();
statsPtr
=
statisticsPtr
(
nativeHandle_
);
}
return
statsPtr
;
return
new
Statistics
(
statsPtr
)
;
}
/**
...
...
java/org/rocksdb/Statistics.java
浏览文件 @
320ae72e
...
...
@@ -11,7 +11,7 @@ package org.rocksdb;
*/
public
class
Statistics
{
private
long
statsHandle_
;
private
final
long
statsHandle_
;
public
Statistics
(
long
statsHandle
)
{
statsHandle_
=
statsHandle
;
...
...
@@ -22,9 +22,16 @@ public class Statistics {
return
getTickerCount0
(
tickerType
.
getValue
(),
statsHandle_
);
}
public
HistogramData
geHistogramData
(
HistogramType
histogramType
)
{
assert
(
isInitialized
());
HistogramData
hist
=
geHistogramData0
(
histogramType
.
getValue
(),
statsHandle_
);
return
hist
;
}
private
boolean
isInitialized
()
{
return
(
statsHandle_
!=
0
);
}
private
native
long
getTickerCount0
(
int
ticker
,
long
handle
);
private
native
long
getTickerCount0
(
int
tickerType
,
long
handle
);
private
native
HistogramData
geHistogramData0
(
int
histogramType
,
long
handle
);
}
java/rocksjni/portal.h
浏览文件 @
320ae72e
...
...
@@ -170,5 +170,15 @@ class WriteBatchJni {
reinterpret_cast
<
jlong
>
(
wb
));
}
};
class
HistogramDataJni
{
public:
static
jmethodID
getConstructorMethodId
(
JNIEnv
*
env
,
jclass
jclazz
)
{
static
jmethodID
mid
=
env
->
GetMethodID
(
jclazz
,
"<init>"
,
"(DDDDD)V"
);
assert
(
mid
!=
nullptr
);
return
mid
;
}
};
}
// namespace rocksdb
#endif // JAVA_ROCKSJNI_PORTAL_H_
java/rocksjni/statistics.cc
浏览文件 @
320ae72e
...
...
@@ -13,6 +13,7 @@
#include "include/org_rocksdb_Statistics.h"
#include "rocksjni/portal.h"
#include "rocksdb/statistics.h"
#include <iostream>
/*
* Class: org_rocksdb_Statistics
...
...
@@ -20,9 +21,26 @@
* Signature: (IJ)J
*/
jlong
Java_org_rocksdb_Statistics_getTickerCount0
(
JNIEnv
*
env
,
jobject
jobj
,
int
ticker
,
jlong
handle
)
{
JNIEnv
*
env
,
jobject
jobj
,
int
ticker
Type
,
jlong
handle
)
{
auto
st
=
reinterpret_cast
<
rocksdb
::
Statistics
*>
(
handle
);
assert
(
st
!=
nullptr
);
return
st
->
getTickerCount
(
static_cast
<
rocksdb
::
Tickers
>
(
ticker
));
return
st
->
getTickerCount
(
static_cast
<
rocksdb
::
Tickers
>
(
tickerType
));
}
jobject
Java_org_rocksdb_Statistics_geHistogramData0
(
JNIEnv
*
env
,
jobject
jobj
,
int
histogramType
,
jlong
handle
)
{
auto
st
=
reinterpret_cast
<
rocksdb
::
Statistics
*>
(
handle
);
assert
(
st
!=
nullptr
);
rocksdb
::
HistogramData
data
;
st
->
histogramData
(
static_cast
<
rocksdb
::
Histograms
>
(
histogramType
),
&
data
);
// Don't reuse class pointer
jclass
jclazz
=
env
->
FindClass
(
"org/rocksdb/HistogramData"
);
jmethodID
mid
=
rocksdb
::
HistogramDataJni
::
getConstructorMethodId
(
env
,
jclazz
);
return
env
->
NewObject
(
jclazz
,
mid
,
data
.
median
,
data
.
percentile95
,
data
.
percentile99
,
data
.
average
,
data
.
standard_deviation
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录