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

Marcel Reutegger commented on OAK-6087:
---------------------------------------

Work in progress available on github: 
https://github.com/mreutegg/jackrabbit-oak/tree/OAK-6087

> Avoid reads from MongoDB primary
> --------------------------------
>
>                 Key: OAK-6087
>                 URL: https://issues.apache.org/jira/browse/OAK-6087
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mongomk
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>            Priority: Major
>              Labels: scalability
>
> With OAK-2106 Oak now attempts to read from a MongoDB secondary when it 
> detects the requested data is available on the secondary.
> When multiple Oak cluster nodes are deployed on a MongoDB replica set, many 
> reads are still directed to the primary. One of the reasons why this is seen 
> in practice, are observers and JCR event listeners that are triggered rather 
> soon after a change happens and therefore read recently modified documents. 
> This makes it difficult for Oak to direct calls to a nearby secondary, 
> because changes may not yet be available there.
> A rather simple solution for the observers may be to delay processing of 
> changes until they are available on the near secondary.
> A more sophisticated solution discussed offline could hide the replica set 
> entirely and always read from the nearest secondary. Writes would obviously 
> still go to the primary, but only return when the write is available also on 
> the nearest secondary. This guarantees that any subsequent read is able to 
> see the preceding write.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to