• Adrian Sutton's avatar
    op-program: Use PebbleDB for DiskKV (Reapply with fixes) (#11709) · e80d23b6
    Adrian Sutton authored
    * feat(op-program): Use `PebbleDB` for `DiskKV` (#11705)
    
    * feat(op-program): Use `PebbleDB` for `DiskKV`
    
    * close db
    
    * fix `testFaultProofProgramScenario` tests
    
    * switch to snappy compression
    
    https://github.com/cockroachdb/pebble/issues/3434
    
    * fix tempdir
    
    * update compat release
    
    * defer k/v until preimage server and hinter have both exited
    
    * Only open preimage source when actually needing preimages.
    
    Avoids concurrent access to the pebbledb.
    
    * op-program: Handle interrupts in host
    
    Ensures the preimage kv store is closed cleanly even when the process is sent an interrupt signal.
    Enables non-blocking IO so that read calls return io.EOF when a file handle is closed rather than blocking forever.
    
    * op-program: Restore file based kv store. Add pebble as an additional option.
    
    * op-program: Add option to specify KV store format to use
    
    * op-program: Switch pebble to perform sync writes.
    
    * op-program: Rename disk kv to file kv
    
    * op-program: Rename DBFormat to DataFormat for consistency.
    
    ---------
    Co-authored-by: default avatarclabby <ben@clab.by>
    e80d23b6