From b16044f34bb822e79f960d16e9e1bfffa1e66190 Mon Sep 17 00:00:00 2001 From: Jussi Saurio Date: Fri, 16 May 2025 09:23:42 +0300 Subject: [PATCH 1/2] pager: bump default page cache size from 10 to 1000 pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` Gnuplot not found, using plotters backend Execute `SELECT count() FROM users`/limbo_execute_select_count time: [12.867 µs 12.958 µs 13.104 µs] change: [-91.233% -91.178% -91.120%] (p = 0.00 < 0.05) Performance has improved. ``` --- core/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/lib.rs b/core/lib.rs index d457fa72a..2f076727d 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -166,7 +166,7 @@ impl Database { None }; - let shared_page_cache = Arc::new(RwLock::new(DumbLruPageCache::new(10))); + let shared_page_cache = Arc::new(RwLock::new(DumbLruPageCache::new(1000))); let schema = Arc::new(RwLock::new(Schema::new())); let db = Database { mv_store, From 416de9dd9c1b2fcdc9650d8bbf22179b087cebab Mon Sep 17 00:00:00 2001 From: Jussi Saurio Date: Fri, 16 May 2025 15:40:19 +0300 Subject: [PATCH 2/2] Extract page cache size constant and bump to 2k --- core/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/lib.rs b/core/lib.rs index 2f076727d..7899177d2 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -78,6 +78,8 @@ use vdbe::{builder::QueryMode, VTabOpaqueCursor}; pub type Result = std::result::Result; pub static DATABASE_VERSION: OnceLock = OnceLock::new(); +const DEFAULT_PAGE_CACHE_SIZE_IN_PAGES: usize = 2000; + #[derive(Clone, Copy, PartialEq, Eq)] enum TransactionState { Write, @@ -166,7 +168,9 @@ impl Database { None }; - let shared_page_cache = Arc::new(RwLock::new(DumbLruPageCache::new(1000))); + let shared_page_cache = Arc::new(RwLock::new(DumbLruPageCache::new( + DEFAULT_PAGE_CACHE_SIZE_IN_PAGES, + ))); let schema = Arc::new(RwLock::new(Schema::new())); let db = Database { mv_store,