Load the second half of the database on demand for GPU version
This is a first draft of functionality to load the second half (meaning left/right eye) of the DB (which is only searched based on some subset due to OR indices and partial results of first half of DB) on demand. I have implemented a first version of the loader for the GPU E2E tests, this is actually most of the changes since we did not keep track of DB changes in these tests beforehand. As a side effect the Actor test setup now essentially has an expected view of the 3 node DBs for the parties after the test, in case this is useful.
TODOs:
- [x] Implement OnDemandLoader for real DB (might need interface changes for the trait since that is most likely async and the actor impl is not)
- [x] Test performance implications for real DB (This is something I cannot really do nicely outside of the staging setup I guess?)
Some other thoughts:
- The current test cases do not check that resets/reauths actually modified the database in the intended way, should this be added somehow?
Have now addressed most of the comments here, should be good for staging now @philsippl
looking great! @danielle-tfh could you give this a try on staging?