Hi all,
I've been syncing two types of docs to perform registered voting. Where
there are two types of docs. The userprofile type, one doc per user; and
the votingsession type, one doc per voting session.
The userprofile doc will only be created, but never updated. Each time I
create a userprofile doc, it takes about *1 second* or so for all devices
to sync this doc.
The votingsession doc, on the other hand, will be frequetly updated (2
times per seconds), because all related-users are voting in one voting
session (therefore each user can see who has already voted, and who has
not). Creating a votingsession doc takes a second to sync, but sometimes
updating it will take *4 to 10 seconds*, which is not acceptable.
Actually, there are two scenarios:
1. update twice with interval of 10 seconds, the syncing time is still
about 1 second
2. update twice with interval of 0.3 second, the syncing time is 4 to 10
seconds, and in sync_gateway log, there are ocational gaps:
- Gap set 1:
- 11:49:26.584586 Cache: SAVING #1110
11:49:26.585372 CRUD: Stored doc "vs:votingsession1" /
"119-b89b6e406ac0a70d9ee2d62713b59e5c"
11:49:26.585407 HTTP+: #542: --> 201 (5.1 ms)
----1 seconds GAP----
11:49:27.442408 Cache: Received #1110 after 858ms
("vs:votingsession1" / "119-b89b6e406ac0a70d9ee2d62713b59e5c")
11:49:27.442429 Cache: Deferring #1110 (1 now waiting for
#1109...#1109)
11:49:27.442441 Cache: Received #1110 after 858ms
("vs:votingsession1" / "119-b89b6e406ac0a70d9ee2d62713b59e5c")
----3 seconds GAP----
11:49:31.107879 HTTP: #543: PUT
/votings/_local/d4c62545bf68b2cf2f6916c66c9731ea335f4e55 (as user2)
11:49:31.108300 HTTP+: #543: --> 201 (0.8 ms)
11:49:33.069765 WARNING: changeCache: Giving up, accepting #1110 even
though #1109 is missing -- db.(*changeCache)._addPendingLogs() at
change_cache.go:320
- Gap set 2:
- 11:49:33.671838 Changes+: MultiChangesFeed waiting... (to user1)
11:49:33.671849 Changes+: Waiting for "votings"'s count to pass 87
----5 seconds GAP----
11:49:38.240364 HTTP: #547: PUT
/votings/_local/c0dc8032a17489187a3347f67a892b9ce23d1f7f
(as user2)
11:49:38.240858 HTTP+: #547: --> 201 (1.1 ms)
11:49:38.650752 HTTP: #548: PUT
/votings/_local/f614ee31fd7af53c3564a447b5131a10557fefbd
(as user1)
11:49:38.651250 HTTP+: #548: --> 201 (1.1 ms)
Now, why would two updates in 0.5 seconds considered conflict? Why would
conflict result in huge delay?
After all, are there any kind of best practice for updating docs, like
don't update the doc in less than 1 second?
--
You received this message because you are subscribed to the Google Groups
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/mobile-couchbase/fbc1760e-1277-47a8-981f-7011e1026f41%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.