From 144f51c093dc34cf55584b4ec634f09dbce8237f Mon Sep 17 00:00:00 2001 From: hgn Date: Sat, 3 May 2025 17:56:44 +0100 Subject: [PATCH] oops --- vg_db.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/vg_db.c b/vg_db.c index bac495b..1f9d8ab 100644 --- a/vg_db.c +++ b/vg_db.c @@ -35,8 +35,6 @@ static void vg_db_sync_page( vg_db *db, u16 cache_id ); static void vg_db_commit( vg_db *db, FILE *fwal ) { void *temp_page = malloc( VG_PAGE_SIZE ); - - vg_info( "Commiting WAL...\n" ); u64 last_good_checkpoint = 0, last_good_log = 0; @@ -63,10 +61,7 @@ static void vg_db_commit( vg_db *db, FILE *fwal ) /* read one log */ if( !fread( &log, sizeof(log), 1, fwal ) ) - { - vg_info( "Reached end of log\n" ); break; - } if( log.type == k_wal_log_data ) { @@ -131,7 +126,13 @@ static void vg_db_commit( vg_db *db, FILE *fwal ) void vg_db_open( vg_db *db, const char *path, const char *wal_path ) { u32 k_ident = 0xf32b1a00; - vg_rand_seed( &db->rand, k_ident + time(NULL) ); + vg_rand_seed( &db->rand, k_ident +#ifndef DB_PREDICTABLE + + time(NULL) +#else +#warning PREDICTABLE DB MODE ( DEBUGGING ONLY ) +#endif + ); db->fp = fopen( path, "rb+" ); db->fp_wal = NULL; @@ -145,7 +146,6 @@ void vg_db_open( vg_db *db, const char *path, const char *wal_path ) FILE *fwal = fopen( wal_path, "rb" ); if( fwal ) { - vg_info( "WAL file found (%s), need to apply.\n", wal_path ); vg_db_commit( db, fwal ); fclose( fwal ); remove( wal_path ); @@ -211,6 +211,7 @@ static void vg_db_sync_page( vg_db *db, u16 cache_id ) vg_db_page *page = &db->page_cache[ cache_id-1 ]; if( page->unwritten ) { + //vg_low( "Syncing page @0x%lx to disk\n", page->physical_offset ); if( fseek( db->fp, page->physical_offset, SEEK_SET ) ) vg_db_abort( db, "SEEK_SET(%lx) failed\n", page->physical_offset ); void *page_data = db->page_data + (u64)(cache_id-1)*VG_PAGE_SIZE; @@ -302,10 +303,8 @@ static void *vg_db_devirtualize( vg_db *db, u64 address, bool write, u64 *out_ph before = current; current = db->page_cache[ current-1 ].hash_prev; } - if( before ) - db->page_cache[ before-1 ].hash_prev = page->hash_prev; - else - db->hash_table[ old_hash ] = 0; + if( before ) db->page_cache[ before-1 ].hash_prev = page->hash_prev; + else db->hash_table[ old_hash ] = page->hash_prev; } page->hash_prev = db->hash_table[ hash ]; db->hash_table[ hash ] = cache_id; @@ -342,7 +341,6 @@ void vg_db_checkpoint( vg_db *db ) if( db->wal_writes > 1000 ) { - vg_info( "WAL reached %u writes (>1000), flushing...\n", db->wal_writes ); vg_db_commit( db, db->fp_wal ); fclose( db->fp_wal ); remove( db->wal_path ); -- 2.25.1