Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kvdb
rocksdb
提交
faa8d32b
R
rocksdb
项目概览
kvdb
/
rocksdb
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
faa8d32b
编写于
11月 20, 2014
作者:
F
fyrz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[RocksJava] Integrated changes from D29019.
上级
3d78c7a8
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
40 addition
and
47 deletion
+40
-47
java/org/rocksdb/BackupableDB.java
java/org/rocksdb/BackupableDB.java
+3
-3
java/org/rocksdb/BackupableDBOptions.java
java/org/rocksdb/BackupableDBOptions.java
+8
-1
java/org/rocksdb/RestoreBackupableDB.java
java/org/rocksdb/RestoreBackupableDB.java
+3
-3
java/org/rocksdb/test/BackupableDBOptionsTest.java
java/org/rocksdb/test/BackupableDBOptionsTest.java
+2
-2
java/org/rocksdb/test/BackupableDBTest.java
java/org/rocksdb/test/BackupableDBTest.java
+2
-2
java/rocksjni/backupablejni.cc
java/rocksjni/backupablejni.cc
+11
-18
java/rocksjni/restorejni.cc
java/rocksjni/restorejni.cc
+11
-18
未找到文件。
java/org/rocksdb/BackupableDB.java
浏览文件 @
faa8d32b
...
...
@@ -103,9 +103,9 @@ public class BackupableDB extends RocksDB {
* is no corrupted backup the method will return an
* empty list.</p>
*
* @return
list of backup ids as Integer
.
* @return
array of backup ids as int ids
.
*/
public
List
<
Integer
>
getCorruptedBackups
()
{
public
int
[]
getCorruptedBackups
()
{
assert
(
isInitialized
());
return
getCorruptedBackups
(
nativeHandle_
);
}
...
...
@@ -160,7 +160,7 @@ public class BackupableDB extends RocksDB {
private
native
void
deleteBackup0
(
long
nativeHandle
,
int
backupId
)
throws
RocksDBException
;
protected
native
List
<
BackupInfo
>
getBackupInfo
(
long
handle
);
private
native
List
<
Integer
>
getCorruptedBackups
(
long
handle
);
private
native
int
[]
getCorruptedBackups
(
long
handle
);
private
native
void
garbageCollect
(
long
handle
)
throws
RocksDBException
;
}
java/org/rocksdb/BackupableDBOptions.java
浏览文件 @
faa8d32b
...
...
@@ -5,6 +5,9 @@
package
org.rocksdb
;
import
java.io.File
;
import
java.nio.file.Path
;
/**
* <p>BackupableDBOptions to control the behavior of a backupable database.
* It will be used during the creation of a {@link org.rocksdb.BackupableDB}.
...
...
@@ -21,10 +24,14 @@ public class BackupableDBOptions extends RocksObject {
*
* @param path Where to keep the backup files. Has to be different than db name.
* Best to set this to {@code db name_ + "/backups"}
* @throws java.lang.IllegalArgumentException if illegal path is used.
*/
public
BackupableDBOptions
(
String
path
)
{
super
();
assert
(
path
!=
null
);
File
backupPath
=
path
==
null
?
null
:
new
File
(
path
);
if
(
backupPath
==
null
||
!
backupPath
.
isDirectory
()
||
!
backupPath
.
canWrite
())
{
throw
new
IllegalArgumentException
(
"Illegal path provided."
);
}
newBackupableDBOptions
(
path
);
}
...
...
java/org/rocksdb/RestoreBackupableDB.java
浏览文件 @
faa8d32b
...
...
@@ -115,9 +115,9 @@ public class RestoreBackupableDB extends RocksObject {
* is no corrupted backup the method will return an
* empty list.</p>
*
* @return
list of backup ids as Integer
.
* @return
array of backup ids as int ids
.
*/
public
List
<
Integer
>
getCorruptedBackups
()
{
public
int
[]
getCorruptedBackups
()
{
assert
(
isInitialized
());
return
getCorruptedBackups
(
nativeHandle_
);
}
...
...
@@ -155,7 +155,7 @@ public class RestoreBackupableDB extends RocksObject {
private
native
void
deleteBackup0
(
long
nativeHandle
,
int
backupId
)
throws
RocksDBException
;
private
native
List
<
BackupInfo
>
getBackupInfo
(
long
handle
);
private
native
List
<
Integer
>
getCorruptedBackups
(
long
handle
);
private
native
int
[]
getCorruptedBackups
(
long
handle
);
private
native
void
garbageCollect
(
long
handle
)
throws
RocksDBException
;
private
native
void
dispose
(
long
nativeHandle
);
...
...
java/org/rocksdb/test/BackupableDBOptionsTest.java
浏览文件 @
faa8d32b
...
...
@@ -17,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public
class
BackupableDBOptionsTest
{
private
final
static
String
ARBITRARY_PATH
=
"/
path
"
;
private
final
static
String
ARBITRARY_PATH
=
"/
tmp
"
;
@ClassRule
public
static
final
RocksMemoryResource
rocksMemoryResource
=
...
...
@@ -164,7 +164,7 @@ public class BackupableDBOptionsTest {
@Test
public
void
failBackupDirIsNull
()
{
exception
.
expect
(
AssertionError
.
class
);
exception
.
expect
(
IllegalArgumentException
.
class
);
new
BackupableDBOptions
(
null
);
}
...
...
java/org/rocksdb/test/BackupableDBTest.java
浏览文件 @
faa8d32b
...
...
@@ -369,7 +369,7 @@ public class BackupableDBTest {
private
List
<
BackupInfo
>
verifyNumberOfValidBackups
(
BackupableDB
bdb
,
int
expectedNumberOfBackups
)
throws
RocksDBException
{
// Verify that backups exist
assertThat
(
bdb
.
getCorruptedBackups
().
size
()
).
assertThat
(
bdb
.
getCorruptedBackups
().
length
).
isEqualTo
(
0
);
bdb
.
garbageCollect
();
List
<
BackupInfo
>
backupInfo
=
bdb
.
getBackupInfos
();
...
...
@@ -390,7 +390,7 @@ public class BackupableDBTest {
RestoreBackupableDB
rdb
,
int
expectedNumberOfBackups
)
throws
RocksDBException
{
// Verify that backups exist
assertThat
(
rdb
.
getCorruptedBackups
().
size
()
).
assertThat
(
rdb
.
getCorruptedBackups
().
length
).
isEqualTo
(
0
);
rdb
.
garbageCollect
();
List
<
BackupInfo
>
backupInfo
=
rdb
.
getBackupInfos
();
...
...
java/rocksjni/backupablejni.cc
浏览文件 @
faa8d32b
...
...
@@ -95,32 +95,25 @@ jobject Java_org_rocksdb_BackupableDB_getBackupInfo(
/*
* Class: org_rocksdb_BackupableDB
* Method: getCorruptedBackups
* Signature: (J)
Ljava/util/List
;
* Signature: (J)
[I
;
*/
j
object
Java_org_rocksdb_BackupableDB_getCorruptedBackups
(
j
intArray
Java_org_rocksdb_BackupableDB_getCorruptedBackups
(
JNIEnv
*
env
,
jobject
jbdb
,
jlong
jhandle
)
{
std
::
vector
<
rocksdb
::
BackupID
>
backup_ids
;
reinterpret_cast
<
rocksdb
::
BackupableDB
*>
(
jhandle
)
->
GetCorruptedBackups
(
&
backup_ids
);
jclass
jclazz
=
env
->
FindClass
(
"java/util/ArrayList"
);
jmethodID
mid
=
rocksdb
::
ListJni
::
getArrayListConstructorMethodId
(
env
,
jclazz
);
jobject
jbackup_id_handle_list
=
env
->
NewObject
(
jclazz
,
mid
,
backup_ids
.
size
());
// insert in java list
// store backupids in int array
const
int
kIdSize
=
backup_ids
.
size
();
int
int_backup_ids
[
kIdSize
];
for
(
std
::
vector
<
rocksdb
::
BackupID
>::
size_type
i
=
0
;
i
!=
backup_ids
.
size
();
i
++
)
{
// convert BackupID to Integer
jclass
jIntClazz
=
env
->
FindClass
(
"java/lang/Integer"
);
jmethodID
midLong
=
env
->
GetMethodID
(
jIntClazz
,
"<init>"
,
"(I)V"
);
jobject
obj
=
env
->
NewObject
(
jIntClazz
,
midLong
,
(
backup_ids
[
i
]));
// add Integer to List
env
->
CallBooleanMethod
(
jbackup_id_handle_list
,
rocksdb
::
ListJni
::
getListAddMethodId
(
env
),
obj
);
int_backup_ids
[
i
]
=
backup_ids
[
i
];
}
return
jbackup_id_handle_list
;
// Store ints in java array
jintArray
ret_backup_ids
;
ret_backup_ids
=
env
->
NewIntArray
(
kIdSize
);
env
->
SetIntArrayRegion
(
ret_backup_ids
,
0
,
kIdSize
,
int_backup_ids
);
return
ret_backup_ids
;
}
/*
...
...
java/rocksjni/restorejni.cc
浏览文件 @
faa8d32b
...
...
@@ -148,32 +148,25 @@ jobject Java_org_rocksdb_RestoreBackupableDB_getBackupInfo(
/*
* Class: org_rocksdb_RestoreBackupableDB
* Method: getCorruptedBackups
* Signature: (J)
Ljava/util/List
;
* Signature: (J)
[I
;
*/
j
object
Java_org_rocksdb_RestoreBackupableDB_getCorruptedBackups
(
j
intArray
Java_org_rocksdb_RestoreBackupableDB_getCorruptedBackups
(
JNIEnv
*
env
,
jobject
jbdb
,
jlong
jhandle
)
{
std
::
vector
<
rocksdb
::
BackupID
>
backup_ids
;
reinterpret_cast
<
rocksdb
::
RestoreBackupableDB
*>
(
jhandle
)
->
GetCorruptedBackups
(
&
backup_ids
);
jclass
jclazz
=
env
->
FindClass
(
"java/util/ArrayList"
);
jmethodID
mid
=
rocksdb
::
ListJni
::
getArrayListConstructorMethodId
(
env
,
jclazz
);
jobject
jbackup_id_handle_list
=
env
->
NewObject
(
jclazz
,
mid
,
backup_ids
.
size
());
// insert in java list
// store backupids in int array
const
int
kIdSize
=
backup_ids
.
size
();
int
int_backup_ids
[
kIdSize
];
for
(
std
::
vector
<
rocksdb
::
BackupID
>::
size_type
i
=
0
;
i
!=
backup_ids
.
size
();
i
++
)
{
// convert BackupID to Integer
jclass
jIntClazz
=
env
->
FindClass
(
"java/lang/Integer"
);
jmethodID
midLong
=
env
->
GetMethodID
(
jIntClazz
,
"<init>"
,
"(I)V"
);
jobject
obj
=
env
->
NewObject
(
jIntClazz
,
midLong
,
(
backup_ids
[
i
]));
// add Integer to List
env
->
CallBooleanMethod
(
jbackup_id_handle_list
,
rocksdb
::
ListJni
::
getListAddMethodId
(
env
),
obj
);
int_backup_ids
[
i
]
=
backup_ids
[
i
];
}
return
jbackup_id_handle_list
;
// Store ints in java array
jintArray
ret_backup_ids
;
ret_backup_ids
=
env
->
NewIntArray
(
kIdSize
);
env
->
SetIntArrayRegion
(
ret_backup_ids
,
0
,
kIdSize
,
int_backup_ids
);
return
ret_backup_ids
;
}
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录