Commit c5c0b09e authored by Huachao Huang's avatar Huachao Huang Committed by goroutine

Add SstFileWriter::file_size() (#157)

* Add SstFileWriter::file_size()
parent ec72a896
......@@ -2909,6 +2909,10 @@ void crocksdb_sstfilewriter_finish(crocksdb_sstfilewriter_t* writer,
SaveError(errptr, writer->rep->Finish(NULL));
}
uint64_t crocksdb_sstfilewriter_file_size(crocksdb_sstfilewriter_t* writer) {
return writer->rep->FileSize();
}
void crocksdb_sstfilewriter_destroy(crocksdb_sstfilewriter_t* writer) {
delete writer->rep;
delete writer;
......
......@@ -1220,6 +1220,8 @@ crocksdb_sstfilewriter_delete(crocksdb_sstfilewriter_t *writer, const char *key,
size_t keylen, char **errptr);
extern C_ROCKSDB_LIBRARY_API void crocksdb_sstfilewriter_finish(
crocksdb_sstfilewriter_t* writer, char** errptr);
extern C_ROCKSDB_LIBRARY_API uint64_t crocksdb_sstfilewriter_file_size(
crocksdb_sstfilewriter_t* writer);
extern C_ROCKSDB_LIBRARY_API void crocksdb_sstfilewriter_destroy(
crocksdb_sstfilewriter_t* writer);
......
......@@ -1119,6 +1119,7 @@ extern "C" {
err: *mut *mut c_char,
);
pub fn crocksdb_sstfilewriter_finish(writer: *mut SstFileWriter, err: *mut *mut c_char);
pub fn crocksdb_sstfilewriter_file_size(writer: *mut SstFileWriter) -> uint64_t;
pub fn crocksdb_sstfilewriter_destroy(writer: *mut SstFileWriter);
pub fn crocksdb_ingest_external_file(
......@@ -1583,6 +1584,7 @@ mod test {
assert!(err.is_null(), error_message(err));
crocksdb_sstfilewriter_finish(writer, &mut err);
assert!(err.is_null(), error_message(err));
assert!(crocksdb_sstfilewriter_file_size(writer) > 0);
let ing_opt = crocksdb_ingestexternalfileoptions_create();
let file_list = &[c_sst_path_ptr];
......@@ -1606,6 +1608,7 @@ mod test {
assert!(err.is_null(), error_message(err));
crocksdb_sstfilewriter_finish(writer, &mut err);
assert!(err.is_null(), error_message(err));
assert!(crocksdb_sstfilewriter_file_size(writer) > 0);
crocksdb_ingest_external_file(db, file_list.as_ptr(), 1, ing_opt, &mut err);
assert!(err.is_null(), error_message(err));
......
......@@ -1767,6 +1767,10 @@ impl SstFileWriter {
Ok(())
}
}
pub fn file_size(&mut self) -> u64 {
unsafe { crocksdb_ffi::crocksdb_sstfilewriter_file_size(self.inner) as u64 }
}
}
impl Drop for SstFileWriter {
......
......@@ -153,8 +153,8 @@ pub struct RateLimiter {
inner: *mut DBRateLimiter,
}
unsafe impl Send for RateLimiter { }
unsafe impl Sync for RateLimiter { }
unsafe impl Send for RateLimiter {}
unsafe impl Sync for RateLimiter {}
impl RateLimiter {
pub fn new(rate_bytes_per_sec: i64, refill_period_us: i64, fairness: i32) -> RateLimiter {
......
......@@ -11,8 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
use std::thread;
use rocksdb::RateLimiter;
use std::thread;
#[test]
fn test_rate_limiter() {
......@@ -43,9 +43,7 @@ fn test_rate_limiter() {
fn test_rate_limiter_sendable() {
let rate_limiter = RateLimiter::new(10 * 1024 * 1024, 100 * 1000, 10);
let handle = thread::spawn(move || {
rate_limiter.request(1024, 0);
});
let handle = thread::spawn(move || { rate_limiter.request(1024, 0); });
handle.join();
handle.join().unwrap();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment