You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Tomek Rękawek (JIRA)" <ji...@apache.org> on 2016/12/09 14:05:59 UTC

[jira] [Comment Edited] (OAK-4069) Use read concern majority when connected to a replica set

    [ https://issues.apache.org/jira/browse/OAK-4069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15735409#comment-15735409 ] 

Tomek Rękawek edited comment on OAK-4069 at 12/9/16 2:05 PM:
-------------------------------------------------------------

Benchmark results:

{{noformat}}
\# ConcurrentWriteReadTest          C     min     10%     50%     90%     max       N
Oak-Mongo (readconcern=majority)   1      78     108     184     492    1430    1061
Oak-Mongo (readconcern=local)      1      87     110     193     491    1244    1029
{{noformat}}

I used the [local replica|https://github.com/trekawek/global-mongo] set with latency=0. Benchmark invocation:

{{noformat}}
$ java -Druntime=300 -jar oak-run/target/oak-run-1.6-SNAPSHOT.jar benchmark ConcurrentWriteReadTest Oak-Mongo \
  --mongouri 'mongodb://mongo1:27017,mongo2:27018,mongo3:27019/oak?w=majority&readPreference=nearest&readconcernlevel=majority'
{{noformat}}


was (Author: tomek.rekawek):
First, benchmark results:
{{noformat}}
# ConcurrentWriteReadTest          C     min     10%     50%     90%     max       N
Oak-Mongo (readconcern=majority)   1      78     108     184     492    1430    1061
Oak-Mongo (readconcern=local)      1      87     110     193     491    1244    1029
{{noformat}}

I used the [local replica|https://github.com/trekawek/global-mongo] set with latency=0. Benchmark invocation:

{{noformat}}
$ java -Druntime=300 -jar oak-run/target/oak-run-1.6-SNAPSHOT.jar benchmark ConcurrentWriteReadTest Oak-Mongo \
  --mongouri 'mongodb://mongo1:27017,mongo2:27018,mongo3:27019/oak?w=majority&readPreference=nearest&readconcernlevel=majority'
{{noformat}}

> Use read concern majority when connected to a replica set
> ---------------------------------------------------------
>
>                 Key: OAK-4069
>                 URL: https://issues.apache.org/jira/browse/OAK-4069
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mongomk
>            Reporter: Tomek Rękawek
>            Assignee: Tomek Rękawek
>              Labels: resilience
>             Fix For: 1.6, 1.5.16
>
>         Attachments: OAK-4069-2.patch, OAK-4069.patch
>
>
> Mongo 3.2 introduces new query option: {{readConcern}}. It allows to read only these changes that have been already committed to the majority of secondary instances.
> It prevents stale reads - a situation in which a change has been committed on the primary (and read from it), but due to the network partition a new primary is elected and the change is rolled back.
> We should use this new option (together with {{w:majority}} implemented in OAK-3554) when running Oak on MongoDB replica set.
> References:
> * [Jepsen: MongoDB stale reads|https://aphyr.com/posts/322-jepsen-mongodb-stale-reads]
> * [MongoDB documentation: Read Concern in|https://docs.mongodb.org/manual/reference/read-concern/]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)