@@ -85,7 +85,10 @@ impl RocksDB {
8585
8686 let prev = self . db . swap ( cur, Ordering :: Release , guard) ;
8787 unsafe {
88- drop ( prev. into_owned ( ) ) ;
88+ let prev = prev. into_owned ( ) ;
89+ prev. cancel_all_background_work ( true ) ;
90+ std:: thread:: sleep ( Duration :: from_secs ( 30 ) ) ;
91+ drop ( prev) ;
8992 }
9093 info ! ( "RocksDB replaced" ) ;
9194 }
@@ -109,7 +112,7 @@ impl RocksDB {
109112 return Ok ( ( ) ) ;
110113 }
111114 let db = self . get_db ( ) ?;
112- let opt = WriteOptions :: default ( ) ;
115+ let mut opt = WriteOptions :: default ( ) ;
113116 opt. set_sync ( false ) ;
114117 db. put_opt ( key, val, & opt) . map_err ( |e| {
115118 let msg = format ! ( "rocksdb.put failed because {}" , e. into_string( ) ) ;
@@ -385,10 +388,9 @@ fn init_options(options: &HashMap<String, String>) -> Options {
385388 opts. set_max_write_buffer_number ( 4 ) ;
386389 opts. set_allow_concurrent_memtable_write ( true ) ;
387390 opts. set_enable_write_thread_adaptive_yield ( true ) ;
388- opts. set_enable_pipelined_write ( true ) ;
389-
390391 opts. set_bytes_per_sync ( 1048576 ) ;
391- opts. set_unordered_write ( true ) ;
392+ opts. set_enable_pipelined_write ( true ) ;
393+ opts. set_unordered_write ( false ) ;
392394
393395 if let Some ( conf_str) = options. get ( "store.rocksdb.disable.auto.compactions" ) {
394396 let val = conf_str. parse ( ) . unwrap ( ) ;
0 commit comments