Skip to content

Commit

Permalink
revert io_type from interface
Browse files Browse the repository at this point in the history
Signed-off-by: tabokie <xy.tao@outlook.com>
  • Loading branch information
tabokie committed Dec 9, 2020
1 parent 87d46f5 commit 3a9915a
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 86 deletions.
12 changes: 4 additions & 8 deletions librocksdb_sys/bindings/x86_64-unknown-linux-gnu-bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3233,12 +3233,10 @@ extern "C" {
extern "C" {
pub fn crocksdb_sequential_file_destroy(arg1: *mut crocksdb_sequential_file_t);
}
pub type crocksdb_file_system_inspector_read_cb = ::std::option::Option<
unsafe extern "C" fn(state: *mut libc::c_void, io_type: libc::c_int, len: usize) -> usize,
>;
pub type crocksdb_file_system_inspector_write_cb = ::std::option::Option<
unsafe extern "C" fn(state: *mut libc::c_void, io_type: libc::c_int, len: usize) -> usize,
>;
pub type crocksdb_file_system_inspector_read_cb =
::std::option::Option<unsafe extern "C" fn(state: *mut libc::c_void, len: usize) -> usize>;
pub type crocksdb_file_system_inspector_write_cb =
::std::option::Option<unsafe extern "C" fn(state: *mut libc::c_void, len: usize) -> usize>;
extern "C" {
pub fn crocksdb_file_system_inspector_create(
state: *mut libc::c_void,
Expand All @@ -3253,14 +3251,12 @@ extern "C" {
extern "C" {
pub fn crocksdb_file_system_inspector_read(
inspector: *mut crocksdb_file_system_inspector_t,
io_type: libc::c_int,
len: usize,
) -> usize;
}
extern "C" {
pub fn crocksdb_file_system_inspector_write(
inspector: *mut crocksdb_file_system_inspector_t,
io_type: libc::c_int,
len: usize,
) -> usize;
}
Expand Down
89 changes: 49 additions & 40 deletions librocksdb_sys/crocksdb/c.cc
Original file line number Diff line number Diff line change
Expand Up @@ -954,9 +954,10 @@ crocksdb_column_family_handle_t* crocksdb_create_column_family(
crocksdb_t* db, const crocksdb_options_t* column_family_options,
const char* column_family_name, char** errptr) {
crocksdb_column_family_handle_t* handle = new crocksdb_column_family_handle_t;
SaveError(errptr, db->rep->CreateColumnFamily(
ColumnFamilyOptions(column_family_options->rep),
std::string(column_family_name), &(handle->rep)));
SaveError(errptr,
db->rep->CreateColumnFamily(
ColumnFamilyOptions(column_family_options->rep),
std::string(column_family_name), &(handle->rep)));
return handle;
}

Expand Down Expand Up @@ -988,8 +989,9 @@ void crocksdb_put_cf(crocksdb_t* db, const crocksdb_writeoptions_t* options,
crocksdb_column_family_handle_t* column_family,
const char* key, size_t keylen, const char* val,
size_t vallen, char** errptr) {
SaveError(errptr, db->rep->Put(options->rep, column_family->rep,
Slice(key, keylen), Slice(val, vallen)));
SaveError(errptr,
db->rep->Put(options->rep, column_family->rep, Slice(key, keylen),
Slice(val, vallen)));
}

void crocksdb_delete(crocksdb_t* db, const crocksdb_writeoptions_t* options,
Expand All @@ -1000,8 +1002,9 @@ void crocksdb_delete(crocksdb_t* db, const crocksdb_writeoptions_t* options,
void crocksdb_delete_cf(crocksdb_t* db, const crocksdb_writeoptions_t* options,
crocksdb_column_family_handle_t* column_family,
const char* key, size_t keylen, char** errptr) {
SaveError(errptr, db->rep->Delete(options->rep, column_family->rep,
Slice(key, keylen)));
SaveError(
errptr,
db->rep->Delete(options->rep, column_family->rep, Slice(key, keylen)));
}

void crocksdb_single_delete(crocksdb_t* db,
Expand All @@ -1014,8 +1017,9 @@ void crocksdb_single_delete_cf(crocksdb_t* db,
const crocksdb_writeoptions_t* options,
crocksdb_column_family_handle_t* column_family,
const char* key, size_t keylen, char** errptr) {
SaveError(errptr, db->rep->SingleDelete(options->rep, column_family->rep,
Slice(key, keylen)));
SaveError(errptr,
db->rep->SingleDelete(options->rep, column_family->rep,
Slice(key, keylen)));
}

void crocksdb_delete_range_cf(crocksdb_t* db,
Expand All @@ -1024,24 +1028,27 @@ void crocksdb_delete_range_cf(crocksdb_t* db,
const char* begin_key, size_t begin_keylen,
const char* end_key, size_t end_keylen,
char** errptr) {
SaveError(errptr, db->rep->DeleteRange(options->rep, column_family->rep,
Slice(begin_key, begin_keylen),
Slice(end_key, end_keylen)));
SaveError(errptr,
db->rep->DeleteRange(options->rep, column_family->rep,
Slice(begin_key, begin_keylen),
Slice(end_key, end_keylen)));
}

void crocksdb_merge(crocksdb_t* db, const crocksdb_writeoptions_t* options,
const char* key, size_t keylen, const char* val,
size_t vallen, char** errptr) {
SaveError(errptr, db->rep->Merge(options->rep, Slice(key, keylen),
Slice(val, vallen)));
SaveError(
errptr,
db->rep->Merge(options->rep, Slice(key, keylen), Slice(val, vallen)));
}

void crocksdb_merge_cf(crocksdb_t* db, const crocksdb_writeoptions_t* options,
crocksdb_column_family_handle_t* column_family,
const char* key, size_t keylen, const char* val,
size_t vallen, char** errptr) {
SaveError(errptr, db->rep->Merge(options->rep, column_family->rep,
Slice(key, keylen), Slice(val, vallen)));
SaveError(errptr,
db->rep->Merge(options->rep, column_family->rep, Slice(key, keylen),
Slice(val, vallen)));
}

void crocksdb_write(crocksdb_t* db, const crocksdb_writeoptions_t* options,
Expand Down Expand Up @@ -4119,13 +4126,9 @@ struct crocksdb_file_system_inspector_impl_t : public FileSystemInspector {

virtual ~crocksdb_file_system_inspector_impl_t() { destructor(state); }

size_t Read(Env::IOType io_type, size_t len) {
return read(state, static_cast<int>(io_type), len);
}
size_t Read(Esize_t len) { return read(state, len); }

size_t Write(Env::IOType io_type, size_t len) {
return write(state, static_cast<int>(io_type), len);
}
size_t Write(Esize_t len) { return write(state, len); }
};

crocksdb_file_system_inspector_t* crocksdb_file_system_inspector_create(
Expand All @@ -4150,15 +4153,15 @@ void crocksdb_file_system_inspector_destroy(
}

size_t crocksdb_file_system_inspector_read(
crocksdb_file_system_inspector_t* inspector, int io_type, size_t len) {
crocksdb_file_system_inspector_t* inspector, size_t len) {
assert(inspector != nullptr && inspector->rep != nullptr);
return inspector->rep->Read(static_cast<Env::IOType>(io_type), len);
return inspector->rep->Read(len);
}

size_t crocksdb_file_system_inspector_write(
crocksdb_file_system_inspector_t* inspector, int io_type, size_t len) {
crocksdb_file_system_inspector_t* inspector, size_t len) {
assert(inspector != nullptr && inspector->rep != nullptr);
return inspector->rep->Write(static_cast<Env::IOType>(io_type), len);
return inspector->rep->Write(len);
}

crocksdb_env_t* crocksdb_file_system_inspected_create(
Expand Down Expand Up @@ -4251,8 +4254,9 @@ void crocksdb_sstfilewriter_delete_range(crocksdb_sstfilewriter_t* writer,
size_t begin_keylen,
const char* end_key, size_t end_keylen,
char** errptr) {
SaveError(errptr, writer->rep->DeleteRange(Slice(begin_key, begin_keylen),
Slice(end_key, end_keylen)));
SaveError(errptr,
writer->rep->DeleteRange(Slice(begin_key, begin_keylen),
Slice(end_key, end_keylen)));
}

void crocksdb_sstfilewriter_finish(crocksdb_sstfilewriter_t* writer,
Expand Down Expand Up @@ -6108,10 +6112,11 @@ crocksdb_column_family_handle_t* ctitandb_create_column_family(
// Blindly cast db into TitanDB.
TitanDB* titan_db = reinterpret_cast<TitanDB*>(db->rep);
crocksdb_column_family_handle_t* handle = new crocksdb_column_family_handle_t;
SaveError(errptr, titan_db->CreateColumnFamily(
TitanCFDescriptor(std::string(column_family_name),
titan_column_family_options->rep),
&(handle->rep)));
SaveError(errptr,
titan_db->CreateColumnFamily(
TitanCFDescriptor(std::string(column_family_name),
titan_column_family_options->rep),
&(handle->rep)));
return handle;
}

Expand Down Expand Up @@ -6410,8 +6415,9 @@ void ctitandb_delete_files_in_range_cf(
start_key ? (a = Slice(start_key, start_key_len), &a) : nullptr,
limit_key ? (b = Slice(limit_key, limit_key_len), &b) : nullptr);

SaveError(errptr, static_cast<TitanDB*>(db->rep)->DeleteFilesInRanges(
column_family->rep, &range, 1, include_end));
SaveError(errptr,
static_cast<TitanDB*>(db->rep)->DeleteFilesInRanges(
column_family->rep, &range, 1, include_end));
}

void ctitandb_delete_files_in_ranges_cf(
Expand All @@ -6435,8 +6441,9 @@ void ctitandb_delete_files_in_ranges_cf(
}
ranges[i] = RangePtr(start, limit);
}
SaveError(errptr, static_cast<TitanDB*>(db->rep)->DeleteFilesInRanges(
cf->rep, &ranges[0], num_ranges, include_end));
SaveError(errptr,
static_cast<TitanDB*>(db->rep)->DeleteFilesInRanges(
cf->rep, &ranges[0], num_ranges, include_end));
}

void ctitandb_delete_blob_files_in_range(crocksdb_t* db, const char* start_key,
Expand Down Expand Up @@ -6464,8 +6471,9 @@ void ctitandb_delete_blob_files_in_range_cf(
start_key ? (a = Slice(start_key, start_key_len), &a) : nullptr,
limit_key ? (b = Slice(limit_key, limit_key_len), &b) : nullptr);

SaveError(errptr, static_cast<TitanDB*>(db->rep)->DeleteBlobFilesInRanges(
column_family->rep, &range, 1, include_end));
SaveError(errptr,
static_cast<TitanDB*>(db->rep)->DeleteBlobFilesInRanges(
column_family->rep, &range, 1, include_end));
}

void ctitandb_delete_blob_files_in_ranges_cf(
Expand All @@ -6489,8 +6497,9 @@ void ctitandb_delete_blob_files_in_ranges_cf(
}
ranges[i] = RangePtr(start, limit);
}
SaveError(errptr, static_cast<TitanDB*>(db->rep)->DeleteBlobFilesInRanges(
cf->rep, &ranges[0], num_ranges, include_end));
SaveError(errptr,
static_cast<TitanDB*>(db->rep)->DeleteBlobFilesInRanges(
cf->rep, &ranges[0], num_ranges, include_end));
}

/* RocksDB Cloud */
Expand Down
6 changes: 2 additions & 4 deletions librocksdb_sys/crocksdb/crocksdb/c.h
Original file line number Diff line number Diff line change
Expand Up @@ -1647,10 +1647,8 @@ crocksdb_key_managed_encrypted_env_create(crocksdb_env_t*,
/* FileSystemManagedEnv */

typedef size_t (*crocksdb_file_system_inspector_read_cb)(void* state,
int io_type,
size_t len);
typedef size_t (*crocksdb_file_system_inspector_write_cb)(void* state,
int io_type,
size_t len);

extern C_ROCKSDB_LIBRARY_API crocksdb_file_system_inspector_t*
Expand All @@ -1661,9 +1659,9 @@ crocksdb_file_system_inspector_create(
extern C_ROCKSDB_LIBRARY_API void crocksdb_file_system_inspector_destroy(
crocksdb_file_system_inspector_t*);
extern C_ROCKSDB_LIBRARY_API size_t crocksdb_file_system_inspector_read(
crocksdb_file_system_inspector_t* inspector, int io_type, size_t len);
crocksdb_file_system_inspector_t* inspector, size_t len);
extern C_ROCKSDB_LIBRARY_API size_t crocksdb_file_system_inspector_write(
crocksdb_file_system_inspector_t* inspector, int io_type, size_t len);
crocksdb_file_system_inspector_t* inspector, size_t len);

extern C_ROCKSDB_LIBRARY_API crocksdb_env_t*
crocksdb_file_system_inspected_create(crocksdb_env_t*,
Expand Down
6 changes: 2 additions & 4 deletions librocksdb_sys/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1733,18 +1733,16 @@ extern "C" {
pub fn crocksdb_file_system_inspector_create(
state: *mut c_void,
destructor: extern "C" fn(*mut c_void),
read: extern "C" fn(*mut c_void, c_int, size_t) -> size_t,
write: extern "C" fn(*mut c_void, c_int, size_t) -> size_t,
read: extern "C" fn(*mut c_void, size_t) -> size_t,
write: extern "C" fn(*mut c_void, size_t) -> size_t,
) -> *mut DBFileSystemInspectorInstance;
pub fn crocksdb_file_system_inspector_destroy(inspector: *mut DBFileSystemInspectorInstance);
pub fn crocksdb_file_system_inspector_read(
inspector: *mut DBFileSystemInspectorInstance,
io_type: DBIOType,
len: size_t,
) -> size_t;
pub fn crocksdb_file_system_inspector_write(
inspector: *mut DBFileSystemInspectorInstance,
io_type: DBIOType,
len: size_t,
) -> size_t;

Expand Down
40 changes: 11 additions & 29 deletions src/file_system.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

pub use crocksdb_ffi::{self, DBFileSystemInspectorInstance, DBIOType};

use libc::{c_int, c_void, size_t};
use libc::{c_void, size_t};
use std::sync::Arc;

// Inspect global IO flow. No per-file inspection for now.
pub trait FileSystemInspector: Sync + Send {
fn read(&self, io_type: DBIOType, len: usize) -> usize;
fn write(&self, io_type: DBIOType, len: usize) -> usize;
fn read(&self, len: usize) -> usize;
fn write(&self, len: usize) -> usize;
}

extern "C" fn file_system_inspector_destructor(ctx: *mut c_void) {
Expand All @@ -18,32 +18,14 @@ extern "C" fn file_system_inspector_destructor(ctx: *mut c_void) {
}
}

extern "C" fn file_system_inspector_read(
ctx: *mut c_void,
raw_io_type: c_int,
len: size_t,
) -> size_t {
extern "C" fn file_system_inspector_read(ctx: *mut c_void, len: size_t) -> size_t {
let file_system_inspector = unsafe { &*(ctx as *mut Arc<dyn FileSystemInspector>) };
let io_type = match raw_io_type {
1 => DBIOType::Flush,
2 => DBIOType::Compaction,
_ => DBIOType::Uncategorized,
};
return file_system_inspector.read(io_type, len);
return file_system_inspector.read(len);
}

extern "C" fn file_system_inspector_write(
ctx: *mut c_void,
raw_io_type: c_int,
len: size_t,
) -> size_t {
extern "C" fn file_system_inspector_write(ctx: *mut c_void, len: size_t) -> size_t {
let file_system_inspector = unsafe { &*(ctx as *mut Arc<dyn FileSystemInspector>) };
let io_type = match raw_io_type {
1 => DBIOType::Flush,
2 => DBIOType::Compaction,
_ => DBIOType::Uncategorized,
};
return file_system_inspector.write(io_type, len);
return file_system_inspector.write(len);
}

pub struct DBFileSystemInspector {
Expand Down Expand Up @@ -80,17 +62,17 @@ impl Drop for DBFileSystemInspector {

#[cfg(test)]
impl FileSystemInspector for DBFileSystemInspector {
fn read(&self, io_type: DBIOType, len: usize) -> usize {
fn read(&self, len: usize) -> usize {
let ret: usize;
unsafe {
ret = crocksdb_ffi::crocksdb_file_system_inspector_read(self.inner, io_type, len);
ret = crocksdb_ffi::crocksdb_file_system_inspector_read(self.inner, len);
}
ret
}
fn write(&self, io_type: DBIOType, len: usize) -> usize {
fn write(&self, len: usize) -> usize {
let ret: usize;
unsafe {
ret = crocksdb_ffi::crocksdb_file_system_inspector_write(self.inner, io_type, len);
ret = crocksdb_ffi::crocksdb_file_system_inspector_write(self.inner, len);
}
ret
}
Expand Down

0 comments on commit 3a9915a

Please sign in to comment.