Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Commit

Permalink
DB WAL size limit (#1935)
Browse files Browse the repository at this point in the history
* Limit WAL size

* Check pruning by db modification date (#1924)
  • Loading branch information
arkpar authored and gavofyork committed Aug 17, 2016
1 parent 46f029e commit e2cf8a8
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 14 deletions.
20 changes: 6 additions & 14 deletions parity/params.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,10 @@
// along with Parity. If not, see <http://www.gnu.org/licenses/>.

use std::str::FromStr;
use std::sync::Arc;
use std::fs;
use std::time::Duration;
use util::{contents, Database, DatabaseConfig, journaldb, H256, Address, U256, version_data};
use util::{contents, H256, Address, U256, version_data};
use util::journaldb::Algorithm;
use ethcore::client;
use ethcore::spec::Spec;
use ethcore::ethereum;
use ethcore::miner::{GasPricer, GasPriceCalibratorOptions};
Expand Down Expand Up @@ -100,20 +99,13 @@ impl Pruning {

fn find_best_db(dirs: &Directories, genesis_hash: H256, fork_name: Option<&String>) -> Algorithm {
let mut algo_types = Algorithm::all_types();

// if all dbs have the same latest era, the last element is the default one
// if all dbs have the same modification time, the last element is the default one
algo_types.push(Algorithm::default());

algo_types.into_iter().max_by_key(|i| {
let client_path = dirs.client_path(genesis_hash, fork_name, *i);
let config = DatabaseConfig::with_columns(client::DB_NO_OF_COLUMNS);
let db = match Database::open(&config, client_path.to_str().unwrap()) {
Ok(db) => db,
Err(_) => return 0,
};
let db = journaldb::new(Arc::new(db), *i, client::DB_COL_STATE);
trace!(target: "parity", "Looking for best DB: {} at {:?}", i, db.latest_era());
db.latest_era().unwrap_or(0)
let mut client_path = dirs.client_path(genesis_hash, fork_name, *i);
client_path.push("CURRENT");
fs::metadata(&client_path).and_then(|m| m.modified()).ok()
}).unwrap()
}
}
Expand Down
1 change: 1 addition & 0 deletions util/src/kvdb.rs
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@ impl Database {
if let Some(rate_limit) = config.compaction.write_rate_limit {
try!(opts.set_parsed_options(&format!("rate_limiter_bytes_per_sec={}", rate_limit)));
}
try!(opts.set_parsed_options(&format!("max_total_wal_size={}", 64 * 1024 * 1024)));
opts.set_max_open_files(config.max_open_files);
opts.create_if_missing(true);
opts.set_use_fsync(false);
Expand Down

0 comments on commit e2cf8a8

Please sign in to comment.