[DB] Use unordered bulk inserts #279
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We now use unordered bulk inserts when processing the results
of the pending txs and messages jobs. Unordered writes guarantee
that all the writes will be attempted even if errors occur.
This property help fixing a long-standing issue with capped
collections. Given the design of the messages job, it is possible
that the job will handle the same message several times in parallel,
resulting in multiple updates to the same document.
This is problematic for the
CappedMessagecollection as cappedcollections do not support updates that increase the size of
a document.
We now make the assumption that we do not care if bulk writes
to capped collections fail, and the unordered write guarantees
that we do not fail to insert a message because an error occurred.
Introduced two new context managers in the toolkit module:
Timerclass allows to measure the time needed to runsome operations
ignore_exceptionsallows to ignore one or more exceptionsin a block of code.