oops vg3
authorhgn <hgodden00@gmail.com>
Sat, 3 May 2025 16:56:44 +0000 (17:56 +0100)
committerhgn <hgodden00@gmail.com>
Sat, 3 May 2025 16:56:44 +0000 (17:56 +0100)
vg_db.c

diff --git a/vg_db.c b/vg_db.c
index bac495badbf4671a29c276b66e1cb0bd04851378..1f9d8ab430c2fa0a7196ee73ec8813a392d36b90 100644 (file)
--- 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 );