<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:01:40 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-2956] Master-Master replication</title>
                <link>https://jira.mongodb.org/browse/SERVER-2956</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;There were once a &apos;master-master replication&apos; described here : &lt;a href=&quot;http://www.mongodb.org/display/DOCS/Master+Master+Replication&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.mongodb.org/display/DOCS/Master+Master+Replication&lt;/a&gt;&lt;br/&gt;
which we used successfully with 1.4.2. However this configuration is not supported anymore, and it&apos;s not clear that is it working with newer versions, or can kill our kittens, if we try to use.&lt;br/&gt;
 Replica sets are not enough for this kind of work, when read, and write response times are extremely crucial to be fast, and we can accept that writes are propagated lazily in the background to the other server(s). So it would be nice, if clients could connect to &apos;slave&apos; servers in the replica sets, and issue write request. For a write request the following needs to be performed :&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;apply the write request locally&lt;/li&gt;
	&lt;li&gt;respond to the client with success message - so the client see fast response times&lt;/li&gt;
	&lt;li&gt;the write request put into a &apos;localInitiatedOpLog&apos; queue, which periodically flushed/sent to the actual master server.&lt;/li&gt;
	&lt;li&gt;the master server apply that changes and propagates to all the servers in the replica set. This algorithm will produce some strange effects, if the same object is modified concurrently by different slaves, or by the same slave in rapid succession, but at the end, every node will see the same objects, as the master node decides.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="16167">SERVER-2956</key>
            <summary>Master-Master replication</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="12300">Won&apos;t Do</resolution>
                                        <assignee username="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="zsombor">G. Zsombor</reporter>
                        <labels>
                            <label>master-master</label>
                            <label>multimaster</label>
                    </labels>
                <created>Sun, 17 Apr 2011 18:19:54 +0000</created>
                <updated>Wed, 7 Dec 2022 18:45:07 +0000</updated>
                            <resolved>Wed, 7 Dec 2022 16:10:02 +0000</resolved>
                                    <version>1.8.0</version>
                                                    <component>Replication</component>
                                        <votes>51</votes>
                                    <watches>61</watches>
                                                                                                                <comments>
                            <comment id="776329" author="asya" created="Tue, 2 Dec 2014 16:04:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=smitra&quot; class=&quot;user-hover&quot; rel=&quot;smitra&quot;&gt;smitra&lt;/a&gt; you linked to description of  &quot;on demand&quot; two-way replication.   That does not really match the definition of standard master-master that this ticket describes. &lt;/p&gt;</comment>
                            <comment id="775990" author="smitra" created="Tue, 2 Dec 2014 09:01:03 +0000"  >&lt;p&gt;This feature would solve many design issue , please read my post&lt;br/&gt;
&lt;a href=&quot;https://groups.google.com/forum/#!starred/mongodb-user/tG1ekPAaSW0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://groups.google.com/forum/#!starred/mongodb-user/tG1ekPAaSW0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="767672" author="michaelbrenden" created="Wed, 19 Nov 2014 05:54:28 +0000"  >&lt;p&gt;Still waiting on this VITAL feature.  Please up-vote and join the silent energetic influence!&lt;/p&gt;</comment>
                            <comment id="377479" author="tubaguy50035" created="Tue, 9 Jul 2013 21:26:19 +0000"  >&lt;p&gt;The auto elections are wonderful, but multi-master would be better.&lt;/p&gt;</comment>
                            <comment id="335323" author="mani" created="Tue, 14 May 2013 14:25:49 +0000"  >&lt;p&gt;Hello Everyone,&lt;/p&gt;

&lt;p&gt;Can you recommend any workarounds/external sync tool to achieve this?&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Mani&lt;/p&gt;</comment>
                            <comment id="317394" author="ricardo.mayerhofer@ideais.com.br" created="Fri, 19 Apr 2013 23:18:58 +0000"  >&lt;p&gt;I think the lack of master-master replication is a major drawback of Mongo comparing to other dynamo-like NoSQL solutions. We&apos;re looking into Mongo as our single database technology, but we&apos;re having a hard time to solve some problems without this feature.&lt;/p&gt;</comment>
                            <comment id="282295" author="michaelbrenden" created="Wed, 6 Mar 2013 03:53:35 +0000"  >&lt;p&gt;Master-master is so important.  It&apos;s causing us to take up Redis.  What a split!&lt;/p&gt;</comment>
                            <comment id="277949" author="michaelbrenden" created="Thu, 28 Feb 2013 10:21:05 +0000"  >&lt;p&gt;It seems to me that every single telecommuter need this master-master feature.&lt;/p&gt;

&lt;p&gt;Imagine&lt;/p&gt;

&lt;p&gt;&amp;#8211; being on cable or DSL at home&lt;/p&gt;

&lt;p&gt;&amp;#8211; having a mongo slave on the at-home LAN&lt;/p&gt;

&lt;p&gt;&amp;#8211; developing write-heavy database&lt;/p&gt;

&lt;p&gt;It&apos;s painful to wait for every write to hit the distant master.  Very painful.  Almost more pain than mongo otherwhere alleviates.&lt;/p&gt;</comment>
                            <comment id="63268" author="eliot" created="Fri, 28 Oct 2011 05:29:39 +0000"  >&lt;p&gt;If you start both nodes with --master and --slave.&lt;br/&gt;
If its insert only - can work ok.&lt;/p&gt;</comment>
                            <comment id="62918" author="meirelles" created="Wed, 26 Oct 2011 21:36:41 +0000"  >&lt;p&gt;Eliot, how I can exactly hack it to force both be master? Which type of inconsistent bad data we are talking about? I mean which kind of updates/inserts operations can lead inconsistent? If of course the application guarantee no collision of keys.&lt;/p&gt;

&lt;p&gt;We work with two DCs with 150ms of latency (each other). This is very important for us, also is impossible every write wait that long to reach the master on another continent. &lt;/p&gt;

&lt;p&gt;Our application guarantee no key collision on MySQL which works fine for years. Both DCs are totally independent (very failover friend) with eventually consistent read AND write, both amazing fast because the application only use DB servers localized few inches away (in same rack).&lt;/p&gt;</comment>
                            <comment id="40792" author="eliot" created="Wed, 6 Jul 2011 03:07:04 +0000"  >&lt;p&gt;It was never supported - you were able to hack it with --master and --slave.&lt;br/&gt;
It was no per collection, and easily can lead to inconsistent bad data.&lt;/p&gt;</comment>
                            <comment id="40600" author="sd" created="Tue, 5 Jul 2011 14:42:43 +0000"  >&lt;p&gt;Really, the document &lt;a href=&quot;http://www.mongodb.org/display/DOCS/Master+Master+Replication&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.mongodb.org/display/DOCS/Master+Master+Replication&lt;/a&gt; mentioned is no longer available. Can we get this again?&lt;/p&gt;

&lt;p&gt;If this can be done can it be on a collection basis? I mean, can I have a 3-5 server replica set with only one collection that it applies to? This would be ideal.&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;</comment>
                            <comment id="40513" author="eliot" created="Tue, 5 Jul 2011 05:37:21 +0000"  >&lt;p&gt;It was never a supported feature, but you can set the system up to do it kind of the same way you can with mysql.&lt;br/&gt;
There was never support for conflict resolution, etc... so it&apos;s not really a viable thing to use.&lt;/p&gt;</comment>
                            <comment id="40511" author="sd" created="Tue, 5 Jul 2011 05:24:57 +0000"  >&lt;p&gt;If this was available at one point why was it removed? Also, since it was done already why would re-enabling the feature be time consuming? Could this be a configuration setting so you could have the option to use sharding or master-master but not both at first with the understanding the features are mutually exclusive?&lt;/p&gt;

&lt;p&gt;I as well would like to see this feature in Mongo since it better suits the application(s) I&apos;m working on than sharding.&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;</comment>
                            <comment id="40510" author="kzk_mover" created="Tue, 5 Jul 2011 05:22:49 +0000"  >&lt;p&gt;That sounds reasonable, thanks &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="40509" author="eliot" created="Tue, 5 Jul 2011 05:19:34 +0000"  >&lt;p&gt;Its not difficulty per se, but the semantics are very different than current mongo semantics, so there is no &quot;simple&quot; solution.&lt;/p&gt;</comment>
                            <comment id="40508" author="kzk_mover" created="Tue, 5 Jul 2011 05:16:58 +0000"  >&lt;p&gt;Sorry, my concern is: Is there any technical difficulty for achieving this? or just scheduling/roadmap issue?&lt;/p&gt;</comment>
                            <comment id="40506" author="eliot" created="Tue, 5 Jul 2011 05:10:20 +0000"  >&lt;p&gt;It is something we are planning on doing, but is not schedules for any version at this point.&lt;br/&gt;
Though not sure I understand the question.&lt;/p&gt;</comment>
                            <comment id="40505" author="kzk_mover" created="Tue, 5 Jul 2011 05:06:54 +0000"  >&lt;p&gt;What makes this &quot;not-planned&quot; status? Just for curious.&lt;/p&gt;</comment>
                            <comment id="40504" author="eliot" created="Tue, 5 Jul 2011 05:01:09 +0000"  >&lt;p&gt;It is not on any planned release, though it is something we are interested in looking at in the future.&lt;/p&gt;</comment>
                            <comment id="40503" author="kzk_mover" created="Tue, 5 Jul 2011 04:54:57 +0000"  >&lt;p&gt;Planned? Planned in 3 years? not planned?&lt;/p&gt;</comment>
                            <comment id="40168" author="sd" created="Fri, 1 Jul 2011 14:37:19 +0000"  >&lt;p&gt;This is what I would like as well and is one of the reasons I&apos;m thinking perhaps Couch is a better approach when this requirement is needed.&lt;/p&gt;</comment>
                            <comment id="29124" author="zsombor" created="Sun, 17 Apr 2011 18:20:41 +0000"  >&lt;p&gt;This is the thread, which I&apos;ve explained our setup &amp;amp; requirements in detail: &lt;br/&gt;
&lt;a href=&quot;http://groups.google.com/group/mongodb-user/browse_thread/thread/625b5e3c30bf1d45/8f635c70b5a8c895&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://groups.google.com/group/mongodb-user/browse_thread/thread/625b5e3c30bf1d45/8f635c70b5a8c895&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="383907">SERVER-29231</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="68547">SERVER-8990</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>23.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25128"><![CDATA[Replication]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 1 Jul 2011 14:37:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        9 years, 11 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1422</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>r.scott@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            9 years, 11 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>meirelles</customfieldvalue>
            <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>backlog-server-repl</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>zsombor</customfieldvalue>
            <customfieldvalue>kzk_mover</customfieldvalue>
            <customfieldvalue>mani</customfieldvalue>
            <customfieldvalue>michaelbrenden</customfieldvalue>
            <customfieldvalue>tubaguy50035</customfieldvalue>
            <customfieldvalue>ricardo.mayerhofer@ideais.com.br</customfieldvalue>
            <customfieldvalue>sd</customfieldvalue>
            <customfieldvalue>smitra</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrp18v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrfyaf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6156</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrz8rz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>