Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-8912

Avoid rollback writes to logged tables for in-memory database

    • v5.3

      WT-8601 introduced a bug where rollback_to_stable on an inmemory WT database would rollback writes to "logged" tables. That behavior differs from non-inmemory databases.

      WT-8849 fixed this in the main branch. However, WT-8601 was also introduced into the mongodb-5.3 branch. We attempted to revert WT-8601 from 5.3. I believe that revert didn't go in correctly.

      A checkout of develop demonstrates the correct behavior of rolling back updates only on "regular" tables:

      dgottlieb@chimichurri ~/xgen/scratch$ ./run.bash rollback_inmem.cpp
      rm: cannot remove './WT_HOME/*': No such file or directory
      SS: create,cache_size=1GB,log=(enabled=true),debug_mode=(cursor_copy=true),debug_mode=(table_logging=true),in_memory=true,log=(enabled=false)
      Logged Table. Key: 1 Value: 5
      Logged Table. Key: 2 Value: 20
      Regular Table. Key: 1 Value: 5
      Regular Table. Key: 2 Value: 	Key not found, returning -1. Key: 2
      -1
      Using timestamps on close.
      

      But a checkout of mongodb-5.3 which includes the revert:

      commit 80459af31c973f9a04896318750c6879ef06a90b
      Author: Luke Chen <luke.chen@mongodb.com>
      Date:   Thu Mar 3 10:44:34 2022 +1100
      
          Revert "WT-8601 Timestamps do not work with logged tables. (#7371)"
          
          This reverts commit 460513f9f4bc3948a85ef4b772dfbb9ab7949778.
      

      seems to still be rolling back in memory tables:

      dgottlieb@chimichurri ~/xgen/scratch$ ./run.bash rollback_inmem.cpp
      SS: create,cache_size=1GB,log=(enabled=true),debug_mode=(cursor_copy=true),debug_mode=(table_logging=true),in_memory=true,log=(enabled=false)
      Logged Table. Key: 1 Value: 5
      Logged Table. Key: 2 Value: 	Key not found, returning -1. Key: 2
      -1
      Regular Table. Key: 1 Value: 5
      Regular Table. Key: 2 Value: 	Key not found, returning -1. Key: 2
      -1
      Using timestamps on close.
      

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: