sirixdb / sirix

SirixDB is an an embeddable, bitemporal, append-only database system and event store, storing immutable lightweight snapshots. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach.
https://sirix.io
BSD 3-Clause "New" or "Revised" License
1.09k stars 243 forks source link

Bug in `ConcurrentAxis` #685

Closed JohannesLichtenberger closed 7 months ago

JohannesLichtenberger commented 7 months ago

Probably it's something related to the caches!?

JohannesLichtenberger commented 7 months ago

In LocalDatabase, if we replace the buffer managers/caches with an empty implementation, the tests indeed seem to run perfectly fine:

  private void addResourceToBufferManagerMapping(Path resourceFile, ResourceConfiguration resourceConfig) {
    bufferManagers.put(resourceFile, new EmptyBufferManager());
  }

The first idea is to create page clones on reads from the Buffer Managers.