Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kvdb
rocksdb
提交
663627ab
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,发现更多精彩内容 >>
提交
663627ab
编写于
5月 27, 2014
作者:
Y
Yueh-Hsuan Chiang
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #153 from bpot/fix_jni_segfault
Segfault when using BackupableDB with Java bindings
上级
8e41e54e
05dd0183
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
9 deletion
+21
-9
java/org/rocksdb/BackupableDB.java
java/org/rocksdb/BackupableDB.java
+9
-9
java/org/rocksdb/RocksDB.java
java/org/rocksdb/RocksDB.java
+12
-0
未找到文件。
java/org/rocksdb/BackupableDB.java
浏览文件 @
663627ab
...
...
@@ -25,11 +25,14 @@ public class BackupableDB extends RocksDB {
public
static
BackupableDB
open
(
Options
opt
,
BackupableDBOptions
bopt
,
String
db_path
)
throws
RocksDBException
{
// since BackupableDB c++ will handle the life cycle of
// the returned RocksDB of RocksDB.open(), here we store
// it as a BackupableDB member variable to avoid GC.
BackupableDB
bdb
=
new
BackupableDB
(
RocksDB
.
open
(
opt
,
db_path
));
bdb
.
open
(
bdb
.
db_
.
nativeHandle_
,
bopt
.
nativeHandle_
);
RocksDB
db
=
RocksDB
.
open
(
opt
,
db_path
);
BackupableDB
bdb
=
new
BackupableDB
();
bdb
.
open
(
db
.
nativeHandle_
,
bopt
.
nativeHandle_
);
// Prevent the RocksDB object from attempting to delete
// the underly C++ DB object.
db
.
disOwnNativeObject
();
return
bdb
;
}
...
...
@@ -64,9 +67,8 @@ public class BackupableDB extends RocksDB {
* A protected construction that will be used in the static factory
* method BackupableDB.open().
*/
protected
BackupableDB
(
RocksDB
db
)
{
protected
BackupableDB
()
{
super
();
db_
=
db
;
}
@Override
protected
void
finalize
()
{
...
...
@@ -75,6 +77,4 @@ public class BackupableDB extends RocksDB {
protected
native
void
open
(
long
rocksDBHandle
,
long
backupDBOptionsHandle
);
protected
native
void
createNewBackup
(
long
handle
,
boolean
flag
);
private
final
RocksDB
db_
;
}
java/org/rocksdb/RocksDB.java
浏览文件 @
663627ab
...
...
@@ -337,6 +337,18 @@ public class RocksDB extends RocksObject {
opt
.
filter_
=
null
;
}
/**
* Revoke ownership of the native object.
*
* This will prevent the object from attempting to delete the underlying
* native object in its finalizer. This must be used when another object
* (e.g. BackupableDB) takes over ownership of the native object or both
* will attempt to delete the underlying object when garbage collected.
*/
protected
void
disOwnNativeObject
()
{
nativeHandle_
=
0
;
}
// native methods
protected
native
void
open
(
long
optionsHandle
,
long
cacheSize
,
String
path
)
throws
RocksDBException
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录