From df37598ae4aaff847bd23556fa720c8bf20c2dae Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Mon, 12 Aug 2024 15:37:15 +0200 Subject: [PATCH] create dir and logging --- .../src/lmdb_backing_storage.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/turbopack/crates/turbo-tasks-backend/src/lmdb_backing_storage.rs b/turbopack/crates/turbo-tasks-backend/src/lmdb_backing_storage.rs index 5562243069a593..e2a704965a6ca3 100644 --- a/turbopack/crates/turbo-tasks-backend/src/lmdb_backing_storage.rs +++ b/turbopack/crates/turbo-tasks-backend/src/lmdb_backing_storage.rs @@ -1,9 +1,11 @@ use std::{ collections::{hash_map::Entry, HashMap}, error::Error, + fs::create_dir_all, path::Path, sync::Arc, thread::available_parallelism, + time::Instant, }; use anyhow::Result; @@ -50,6 +52,7 @@ pub struct LmdbBackingStorage { impl LmdbBackingStorage { pub fn new(path: &Path) -> Result { + create_dir_all(path)?; println!("opening lmdb {:?}", path); let env = Environment::new() .set_flags(EnvironmentFlags::WRITE_MAP | EnvironmentFlags::NO_META_SYNC) @@ -100,6 +103,14 @@ impl BackingStorage for LmdbBackingStorage { task_cache_updates: ChunkedVec<(Arc, TaskId)>, data_updates: ChunkedVec, ) -> Result<()> { + println!( + "Persisting {} operations, {} task cache updates, {} data updates...", + operations.len(), + task_cache_updates.len(), + data_updates.len() + ); + let start = Instant::now(); + let mut op_count = 0; let mut tx = self.env.begin_rw_txn()?; let mut next_task_id = as_u32(tx.get(self.meta_db, &IntKey::new(META_KEY_NEXT_FREE_TASK_ID))).unwrap_or(1); @@ -118,6 +129,7 @@ impl BackingStorage for LmdbBackingStorage { &task_type, WriteFlags::empty(), )?; + op_count += 2; next_task_id = next_task_id.max(task_id + 1); } tx.put( @@ -133,6 +145,8 @@ impl BackingStorage for LmdbBackingStorage { &operations, WriteFlags::empty(), )?; + op_count += 2; + let mut updated_items: HashMap> = HashMap::new(); for CachedDataUpdate { task, key, value } in data_updates.into_iter() { @@ -168,8 +182,13 @@ impl BackingStorage for LmdbBackingStorage { &value, WriteFlags::empty(), )?; + op_count += 1; } tx.commit()?; + println!( + "Persisted {op_count} db entries after {:?}", + start.elapsed() + ); Ok(()) }