Fix IStorage.iterator potentially skipping recent transactions
This fixes a critical bug in the storage node that ignored read locks, so transactions that have just been committed could be missing in the results. Because read locks are released by order of tid, a single storage node never returned a list with holes (i.e. the missing transactions could only be the last ones). However, holes could happen when merging results from multiple storage nodes. The change in the client node avoids extra RPC at the end: it should speed up in most cases and it makes the new test clearer.
Showing
Please register or sign in to comment