diff options
author | drebs <drebs@leap.se> | 2016-07-22 19:53:21 +0200 |
---|---|---|
committer | drebs <drebs@leap.se> | 2016-07-25 09:19:53 -0300 |
commit | 239273e765ffc2cf3f74dc2bdd6b7ac8a8acdccd (patch) | |
tree | 1b74f80737d71181b1017ff638f0a1fc5a4d7cd9 /common/src/leap/__init__.py | |
parent | fda2acf0c8aaf123359470ced37f56e8223a3286 (diff) |
[feat] do not use couch views for sync metadata
When compared to plain couch document get, the use of the simplest view
functions takes around double the time, while the use of the simplest
list function can take more than 8 times:
get 100 docs:
total: 0.440337 secs
mean: 0.004403
query 100 views:
total: 0.911425 secs
mean: 0.009114
query 100 lists:
total: 3.711537 secs
mean: 0.037115
Besides that, the current implementation of sync metadata storage over
couch is dependent of timestamps of document puts, what can lead to
metadata corruption if the clock of the system is changed for any
reason.
Because of these reasons, we seek to change the implementation of
database metadata. This commit implements the storage of transaction log
data on couch documents with special ids, in the form "gen-xxxxxxxxxx",
where the x's are replaced by the generation index.
Each generation document holds a dictionary containing the generation,
doc_id and transaction_id for the changed document. For each modified
document, a generation document is inserted holding the transaction
metadata.
Diffstat (limited to 'common/src/leap/__init__.py')
0 files changed, 0 insertions, 0 deletions