Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kvdb
rocksdb
提交
fa1b62ca
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,发现更多精彩内容 >>
提交
fa1b62ca
编写于
5月 29, 2014
作者:
A
Ankit Gupta
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/master'
上级
84cbafa5
9899b127
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
145 addition
and
135 deletion
+145
-135
java/org/rocksdb/BackupableDB.java
java/org/rocksdb/BackupableDB.java
+9
-9
java/org/rocksdb/BackupableDBOptions.java
java/org/rocksdb/BackupableDBOptions.java
+4
-5
java/org/rocksdb/Filter.java
java/org/rocksdb/Filter.java
+4
-5
java/org/rocksdb/Options.java
java/org/rocksdb/Options.java
+4
-5
java/org/rocksdb/ReadOptions.java
java/org/rocksdb/ReadOptions.java
+8
-13
java/org/rocksdb/RocksDB.java
java/org/rocksdb/RocksDB.java
+4
-10
java/org/rocksdb/RocksIterator.java
java/org/rocksdb/RocksIterator.java
+4
-6
java/org/rocksdb/RocksObject.java
java/org/rocksdb/RocksObject.java
+38
-1
java/org/rocksdb/WriteBatch.java
java/org/rocksdb/WriteBatch.java
+4
-5
java/org/rocksdb/WriteOptions.java
java/org/rocksdb/WriteOptions.java
+4
-5
java/org/rocksdb/benchmark/DbBenchmark.java
java/org/rocksdb/benchmark/DbBenchmark.java
+30
-23
java/rocksjni/backupablejni.cc
java/rocksjni/backupablejni.cc
+2
-2
java/rocksjni/filter.cc
java/rocksjni/filter.cc
+3
-6
java/rocksjni/iterator.cc
java/rocksjni/iterator.cc
+2
-2
java/rocksjni/options.cc
java/rocksjni/options.cc
+9
-11
java/rocksjni/rocksjni.cc
java/rocksjni/rocksjni.cc
+3
-5
java/rocksjni/write_batch.cc
java/rocksjni/write_batch.cc
+5
-8
util/env_posix.cc
util/env_posix.cc
+8
-14
未找到文件。
java/org/rocksdb/BackupableDB.java
浏览文件 @
fa1b62ca
...
...
@@ -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
.
disOwnNativeHandle
();
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/BackupableDBOptions.java
浏览文件 @
fa1b62ca
...
...
@@ -59,15 +59,14 @@ public class BackupableDBOptions extends RocksObject {
* Release the memory allocated for the current instance
* in the c++ side.
*/
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose
(
nativeHandle_
);
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
private
native
void
newBackupableDBOptions
(
String
path
,
boolean
shareTableFiles
,
boolean
sync
,
boolean
destroyOldData
,
boolean
backupLogFiles
,
long
backupRateLimit
,
long
restoreRateLimit
);
private
native
String
backupDir
(
long
handle
);
private
native
void
dispose
(
long
handle
);
private
native
void
dispose
Internal
(
long
handle
);
}
java/org/rocksdb/Filter.java
浏览文件 @
fa1b62ca
...
...
@@ -22,11 +22,10 @@ public abstract class Filter extends RocksObject {
* RocksDB instances referencing the filter are closed.
* Otherwise an undefined behavior will occur.
*/
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose0
(
nativeHandle_
);
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
private
native
void
dispose
0
(
long
handle
);
private
native
void
dispose
Internal
(
long
handle
);
}
java/org/rocksdb/Options.java
浏览文件 @
fa1b62ca
...
...
@@ -2311,10 +2311,9 @@ public class Options extends RocksObject {
* Release the memory allocated for the current instance
* in the c++ side.
*/
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose0
();
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
static
final
int
DEFAULT_PLAIN_TABLE_BLOOM_BITS_PER_KEY
=
10
;
...
...
@@ -2322,7 +2321,7 @@ public class Options extends RocksObject {
static
final
int
DEFAULT_PLAIN_TABLE_INDEX_SPARSENESS
=
16
;
private
native
void
newOptions
();
private
native
void
dispose
0
(
);
private
native
void
dispose
Internal
(
long
handle
);
private
native
void
setCreateIfMissing
(
long
handle
,
boolean
flag
);
private
native
boolean
createIfMissing
(
long
handle
);
private
native
void
setWriteBufferSize
(
long
handle
,
long
writeBufferSize
);
...
...
java/org/rocksdb/ReadOptions.java
浏览文件 @
fa1b62ca
...
...
@@ -18,19 +18,6 @@ public class ReadOptions extends RocksObject {
}
private
native
void
newReadOptions
();
/**
* Release the memory allocated for the current instance
* in the c++ side.
*
* Calling other methods after dispose() leads to undefined behavior.
*/
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose
(
nativeHandle_
);
}
}
private
native
void
dispose
(
long
handle
);
/**
* If true, all data read from underlying storage will be
* verified against corresponding checksums.
...
...
@@ -127,4 +114,12 @@ public class ReadOptions extends RocksObject {
}
private
native
void
setTailing
(
long
handle
,
boolean
tailing
);
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
private
native
void
disposeInternal
(
long
handle
);
}
java/org/rocksdb/RocksDB.java
浏览文件 @
fa1b62ca
...
...
@@ -114,11 +114,9 @@ public class RocksDB extends RocksObject {
return
db
;
}
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose
(
nativeHandle_
);
nativeHandle_
=
0
;
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
/**
...
...
@@ -315,10 +313,6 @@ public class RocksDB extends RocksObject {
return
new
RocksIterator
(
iterator0
(
nativeHandle_
));
}
@Override
protected
void
finalize
()
{
close
();
}
/**
* Private constructor.
*/
...
...
@@ -370,7 +364,7 @@ public class RocksDB extends RocksObject {
long
handle
,
long
writeOptHandle
,
byte
[]
key
,
int
keyLen
)
throws
RocksDBException
;
protected
native
long
iterator0
(
long
optHandle
);
pr
otected
native
void
dispose
(
long
handle
);
pr
ivate
native
void
disposeInternal
(
long
handle
);
protected
Filter
filter_
;
}
java/org/rocksdb/RocksIterator.java
浏览文件 @
fa1b62ca
...
...
@@ -118,15 +118,13 @@ public class RocksIterator extends RocksObject {
/**
* Deletes underlying C++ iterator pointer.
*/
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose
(
nativeHandle_
);
nativeHandle_
=
0
;
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
private
native
boolean
isValid0
(
long
handle
);
private
native
void
dispose
(
long
handle
);
private
native
void
dispose
Internal
(
long
handle
);
private
native
void
seekToFirst0
(
long
handle
);
private
native
void
seekToLast0
(
long
handle
);
private
native
void
next0
(
long
handle
);
...
...
java/org/rocksdb/RocksObject.java
浏览文件 @
fa1b62ca
...
...
@@ -16,12 +16,48 @@ package org.rocksdb;
public
abstract
class
RocksObject
{
protected
RocksObject
()
{
nativeHandle_
=
0
;
owningHandle_
=
true
;
}
/**
* Release the c++ object pointed by the native handle.
*
* Note that once an instance of RocksObject has been disposed,
* calling its function will lead undefined behavior.
*/
public
abstract
void
dispose
();
public
final
synchronized
void
dispose
()
{
if
(
isOwningNativeHandle
()
&&
isInitialized
())
{
disposeInternal
();
}
nativeHandle_
=
0
;
disOwnNativeHandle
();
}
/**
* The helper function of dispose() which all subclasses of RocksObject
* must implement to release their associated C++ resource.
*/
protected
abstract
void
disposeInternal
();
/**
* 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
* takes over ownership of the native object or both will attempt to delete
* the underlying object when garbage collected.
*
* When disOwnNativeHandle is called, dispose() will simply set nativeHandle_
* to 0 without releasing its associated C++ resource. As a result,
* incorrectly use this function may cause memory leak.
*/
protected
void
disOwnNativeHandle
()
{
owningHandle_
=
false
;
}
protected
boolean
isOwningNativeHandle
()
{
return
owningHandle_
;
}
protected
boolean
isInitialized
()
{
return
(
nativeHandle_
!=
0
);
...
...
@@ -32,4 +68,5 @@ public abstract class RocksObject {
}
protected
long
nativeHandle_
;
private
boolean
owningHandle_
;
}
java/org/rocksdb/WriteBatch.java
浏览文件 @
fa1b62ca
...
...
@@ -86,10 +86,9 @@ public class WriteBatch extends RocksObject {
/**
* Delete the c++ side pointer.
*/
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose0
();
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
private
native
void
newWriteBatch
(
int
reserved_bytes
);
...
...
@@ -99,7 +98,7 @@ public class WriteBatch extends RocksObject {
byte
[]
value
,
int
valueLen
);
private
native
void
remove
(
byte
[]
key
,
int
keyLen
);
private
native
void
putLogData
(
byte
[]
blob
,
int
blobLen
);
private
native
void
dispose
0
(
);
private
native
void
dispose
Internal
(
long
handle
);
}
/**
...
...
java/org/rocksdb/WriteOptions.java
浏览文件 @
fa1b62ca
...
...
@@ -17,10 +17,9 @@ public class WriteOptions extends RocksObject {
newWriteOptions
();
}
@Override
public
synchronized
void
dispose
()
{
if
(
isInitialized
())
{
dispose0
(
nativeHandle_
);
}
@Override
protected
void
disposeInternal
()
{
assert
(
isInitialized
());
disposeInternal
(
nativeHandle_
);
}
/**
...
...
@@ -96,5 +95,5 @@ public class WriteOptions extends RocksObject {
private
native
boolean
sync
(
long
handle
);
private
native
void
setDisableWAL
(
long
handle
,
boolean
flag
);
private
native
boolean
disableWAL
(
long
handle
);
private
native
void
dispose
0
(
long
handle
);
private
native
void
dispose
Internal
(
long
handle
);
}
java/org/rocksdb/benchmark/DbBenchmark.java
浏览文件 @
fa1b62ca
...
...
@@ -534,8 +534,6 @@ public class DbBenchmark {
(
Long
)
flags_
.
get
(
Flag
.
block_size
));
options
.
setMaxOpenFiles
(
(
Integer
)
flags_
.
get
(
Flag
.
open_files
));
options
.
setCreateIfMissing
(
!(
Boolean
)
flags_
.
get
(
Flag
.
use_existing_db
));
options
.
setTableCacheRemoveScanCountLimit
(
(
Integer
)
flags_
.
get
(
Flag
.
cache_remove_scan_count_limit
));
options
.
setDisableDataSync
(
...
...
@@ -939,7 +937,7 @@ public class DbBenchmark {
"\tflag and also specify a benchmark that wants a fresh database,\n"
+
"\tthat benchmark will fail."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
num
(
1000000
,
...
...
@@ -1028,7 +1026,7 @@ public class DbBenchmark {
use_plain_table
(
false
,
"Use plain-table sst format."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
cache_size
(-
1L
,
...
...
@@ -1085,7 +1083,7 @@ public class DbBenchmark {
},
histogram
(
false
,
"Print histogram of operation timings."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
min_write_buffer_number_to_merge
(
...
...
@@ -1203,12 +1201,12 @@ public class DbBenchmark {
verify_checksum
(
false
,
"Verify checksum for every block read\n"
+
"\tfrom storage."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
statistics
(
false
,
"Database statistics."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
writes
(-
1
,
"Number of write operations to do. If negative, do\n"
+
...
...
@@ -1219,23 +1217,23 @@ public class DbBenchmark {
},
sync
(
false
,
"Sync all writes to disk."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
disable_data_sync
(
false
,
"If true, do not wait until data is\n"
+
"\tsynced to disk."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
use_fsync
(
false
,
"If true, issue fsync instead of fdatasync."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
disable_wal
(
false
,
"If true, do not write WAL for write."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
wal_dir
(
""
,
"If not empty, use the given dir for WAL."
)
{
...
...
@@ -1312,7 +1310,7 @@ public class DbBenchmark {
disable_seek_compaction
(
false
,
"Option to disable compaction\n"
+
"\ttriggered by read."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
delete_obsolete_files_period_micros
(
0
,
"Option to delete\n"
+
...
...
@@ -1393,12 +1391,12 @@ public class DbBenchmark {
},
readonly
(
false
,
"Run read only benchmarks."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
disable_auto_compactions
(
false
,
"Do not auto trigger compactions."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
source_compaction_factor
(
1
,
"Cap the size of data in level-K for\n"
+
...
...
@@ -1423,26 +1421,26 @@ public class DbBenchmark {
bufferedio(rocksdb::EnvOptions().use_os_buffer,
"Allow buffered io using OS buffers.") {
@Override public Object parseValue(String value) {
return
Boolean.
parseBoolean(value);
return parseBoolean(value);
}
},
*/
mmap_read
(
false
,
"Allow reads to occur via mmap-ing files."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
mmap_write
(
false
,
"Allow writes to occur via mmap-ing files."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
advise_random_on_open
(
defaultOptions_
.
adviseRandomOnOpen
(),
"Advise random access on table file open."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
compaction_fadvice
(
"NORMAL"
,
...
...
@@ -1454,13 +1452,13 @@ public class DbBenchmark {
use_tailing_iterator
(
false
,
"Use tailing iterator to access a series of keys instead of get."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
use_adaptive_mutex
(
defaultOptions_
.
useAdaptiveMutex
(),
"Use adaptive mutex."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
bytes_per_sync
(
defaultOptions_
.
bytesPerSync
(),
...
...
@@ -1474,7 +1472,7 @@ public class DbBenchmark {
filter_deletes
(
false
,
" On true, deletes use bloom-filter and drop\n"
+
"\tthe delete if key not present."
)
{
@Override
public
Object
parseValue
(
String
value
)
{
return
Boolean
.
parseBoolean
(
value
);
return
parseBoolean
(
value
);
}
},
max_successive_merges
(
0
,
"Maximum number of successive merge\n"
+
...
...
@@ -1495,8 +1493,6 @@ public class DbBenchmark {
desc_
=
desc
;
}
protected
abstract
Object
parseValue
(
String
value
);
public
Object
getDefaultValue
()
{
return
defaultValue_
;
}
...
...
@@ -1505,6 +1501,17 @@ public class DbBenchmark {
return
desc_
;
}
public
boolean
parseBoolean
(
String
value
)
{
if
(
value
.
equals
(
"1"
))
{
return
true
;
}
else
if
(
value
.
equals
(
"0"
))
{
return
false
;
}
return
Boolean
.
parseBoolean
(
value
);
}
protected
abstract
Object
parseValue
(
String
value
);
private
final
Object
defaultValue_
;
private
final
String
desc_
;
}
...
...
java/rocksjni/backupablejni.cc
浏览文件 @
fa1b62ca
...
...
@@ -82,10 +82,10 @@ jstring Java_org_rocksdb_BackupableDBOptions_backupDir(
/*
* Class: org_rocksdb_BackupableDBOptions
* Method: dispose
* Method: dispose
Internal
* Signature: (J)V
*/
void
Java_org_rocksdb_BackupableDBOptions_dispose
(
void
Java_org_rocksdb_BackupableDBOptions_dispose
Internal
(
JNIEnv
*
env
,
jobject
jopt
,
jlong
jhandle
)
{
auto
bopt
=
reinterpret_cast
<
rocksdb
::
BackupableDBOptions
*>
(
jhandle
);
assert
(
bopt
);
...
...
java/rocksjni/filter.cc
浏览文件 @
fa1b62ca
...
...
@@ -29,13 +29,10 @@ void Java_org_rocksdb_BloomFilter_createNewFilter0(
/*
* Class: org_rocksdb_Filter
* Method: dispose
0
* Method: dispose
Internal
* Signature: (J)V
*/
void
Java_org_rocksdb_Filter_dispose
0
(
void
Java_org_rocksdb_Filter_dispose
Internal
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
handle
)
{
auto
fp
=
reinterpret_cast
<
rocksdb
::
FilterPolicy
*>
(
handle
);
delete
fp
;
rocksdb
::
FilterJni
::
setHandle
(
env
,
jobj
,
nullptr
);
delete
reinterpret_cast
<
rocksdb
::
FilterPolicy
*>
(
handle
);
}
java/rocksjni/iterator.cc
浏览文件 @
fa1b62ca
...
...
@@ -135,10 +135,10 @@ void Java_org_rocksdb_RocksIterator_status0(
/*
* Class: org_rocksdb_RocksIterator
* Method: dispose
* Method: dispose
Internal
* Signature: (J)V
*/
void
Java_org_rocksdb_RocksIterator_dispose
(
void
Java_org_rocksdb_RocksIterator_dispose
Internal
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
handle
)
{
auto
it
=
reinterpret_cast
<
rocksdb
::
Iterator
*>
(
handle
);
delete
it
;
...
...
java/rocksjni/options.cc
浏览文件 @
fa1b62ca
...
...
@@ -35,14 +35,12 @@ void Java_org_rocksdb_Options_newOptions(JNIEnv* env, jobject jobj) {
/*
* Class: org_rocksdb_Options
* Method: dispose
0
* Signature: ()V
* Method: dispose
Internal
* Signature: (
J
)V
*/
void
Java_org_rocksdb_Options_dispose0
(
JNIEnv
*
env
,
jobject
jobj
)
{
rocksdb
::
Options
*
op
=
rocksdb
::
OptionsJni
::
getHandle
(
env
,
jobj
);
delete
op
;
rocksdb
::
OptionsJni
::
setHandle
(
env
,
jobj
,
nullptr
);
void
Java_org_rocksdb_Options_disposeInternal
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
handle
)
{
delete
reinterpret_cast
<
rocksdb
::
Options
*>
(
handle
);
}
/*
...
...
@@ -1665,10 +1663,10 @@ void Java_org_rocksdb_WriteOptions_newWriteOptions(
/*
* Class: org_rocksdb_WriteOptions
* Method: dispose
0
* Method: dispose
Internal
* Signature: ()V
*/
void
Java_org_rocksdb_WriteOptions_dispose
0
(
void
Java_org_rocksdb_WriteOptions_dispose
Internal
(
JNIEnv
*
env
,
jobject
jwrite_options
,
jlong
jhandle
)
{
auto
write_options
=
reinterpret_cast
<
rocksdb
::
WriteOptions
*>
(
jhandle
);
delete
write_options
;
...
...
@@ -1732,10 +1730,10 @@ void Java_org_rocksdb_ReadOptions_newReadOptions(
/*
* Class: org_rocksdb_ReadOptions
* Method: dispose
* Method: dispose
Internal
* Signature: (J)V
*/
void
Java_org_rocksdb_ReadOptions_dispose
(
void
Java_org_rocksdb_ReadOptions_dispose
Internal
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jhandle
)
{
delete
reinterpret_cast
<
rocksdb
::
ReadOptions
*>
(
jhandle
);
rocksdb
::
ReadOptionsJni
::
setHandle
(
env
,
jobj
,
nullptr
);
...
...
java/rocksjni/rocksjni.cc
浏览文件 @
fa1b62ca
...
...
@@ -419,14 +419,12 @@ void Java_org_rocksdb_RocksDB_remove__JJ_3BI(
/*
* Class: org_rocksdb_RocksDB
* Method: dispose
* Method: dispose
Internal
* Signature: (J)V
*/
void
Java_org_rocksdb_RocksDB_dispose
(
void
Java_org_rocksdb_RocksDB_dispose
Internal
(
JNIEnv
*
env
,
jobject
java_db
,
jlong
jhandle
)
{
auto
db
=
reinterpret_cast
<
rocksdb
::
DB
*>
(
jhandle
);
assert
(
db
!=
nullptr
);
delete
db
;
delete
reinterpret_cast
<
rocksdb
::
DB
*>
(
jhandle
);
}
/*
...
...
java/rocksjni/write_batch.cc
浏览文件 @
fa1b62ca
...
...
@@ -134,15 +134,12 @@ void Java_org_rocksdb_WriteBatch_putLogData(
/*
* Class: org_rocksdb_WriteBatch
* Method: dispose
0
* Signature: ()V
* Method: dispose
Internal
* Signature: (
J
)V
*/
void
Java_org_rocksdb_WriteBatch_dispose0
(
JNIEnv
*
env
,
jobject
jobj
)
{
rocksdb
::
WriteBatch
*
wb
=
rocksdb
::
WriteBatchJni
::
getHandle
(
env
,
jobj
);
assert
(
wb
!=
nullptr
);
delete
wb
;
rocksdb
::
WriteBatchJni
::
setHandle
(
env
,
jobj
,
nullptr
);
void
Java_org_rocksdb_WriteBatch_disposeInternal
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
handle
)
{
delete
reinterpret_cast
<
rocksdb
::
WriteBatch
*>
(
handle
);
}
/*
...
...
util/env_posix.cc
浏览文件 @
fa1b62ca
...
...
@@ -94,17 +94,6 @@ static Status IOError(const std::string& context, int err_number) {
return
Status
::
IOError
(
context
,
strerror
(
err_number
));
}
// TODO(sdong): temp logging. Need to help debugging. Remove it when
// the feature is proved to be stable.
inline
void
PrintThreadInfo
(
size_t
thread_id
,
pthread_t
id
)
{
unsigned
char
*
ptc
=
(
unsigned
char
*
)(
void
*
)(
&
id
);
fprintf
(
stdout
,
"Bg thread %zu terminates 0x"
,
thread_id
);
for
(
size_t
i
=
0
;
i
<
sizeof
(
id
);
i
++
)
{
fprintf
(
stdout
,
"%02x"
,
(
unsigned
)(
ptc
[
i
]));
}
fprintf
(
stdout
,
"
\n
"
);
}
#ifdef NDEBUG
// empty in release build
#define TEST_KILL_RANDOM(rocksdb_kill_odds)
...
...
@@ -1293,13 +1282,17 @@ class PosixEnv : public Env {
return
Status
::
OK
();
}
static
uint64_t
gettid
()
{
pthread_t
tid
=
pthread_self
();
static
uint64_t
gettid
(
pthread_t
tid
)
{
uint64_t
thread_id
=
0
;
memcpy
(
&
thread_id
,
&
tid
,
std
::
min
(
sizeof
(
thread_id
),
sizeof
(
tid
)));
return
thread_id
;
}
static
uint64_t
gettid
()
{
pthread_t
tid
=
pthread_self
();
return
gettid
(
tid
);
}
virtual
Status
NewLogger
(
const
std
::
string
&
fname
,
shared_ptr
<
Logger
>*
result
)
{
FILE
*
f
=
fopen
(
fname
.
c_str
(),
"w"
);
...
...
@@ -1525,7 +1518,8 @@ class PosixEnv : public Env {
PthreadCall
(
"unlock"
,
pthread_mutex_unlock
(
&
mu_
));
// TODO(sdong): temp logging. Need to help debugging. Remove it when
// the feature is proved to be stable.
PrintThreadInfo
(
thread_id
,
terminating_thread
);
fprintf
(
stdout
,
"Bg thread %zu terminates %llx
\n
"
,
thread_id
,
static_cast
<
long
long
unsigned
int
>
(
gettid
()));
break
;
}
void
(
*
function
)(
void
*
)
=
queue_
.
front
().
function
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录