<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:02: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-43248] Provide a non-isolating non-consistent transaction mode for BASE applications</title>
                <link>https://jira.mongodb.org/browse/SERVER-43248</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I have been reviewing the multi-document transactions introduced in 4.0 for our data aggregation framework, which is very fundamentally rooted in the BASE consistency model. Not surprisingly, the supported ACID transactions are proving too restrictive for us in their current form. This is not meant as a complaint, but merely as a suggestion that the ability to relax some of the constraints of the transaction model may actually may make it more useful for some projects.&lt;/p&gt;

&lt;p&gt;Our application could still very much benefit from transactions which are Atomic and Durable. In fact our typical write events consist of batches of commands, which should be executed in an all-or-nothing fashion. We currently solve this in our database transaction layer, by writing all commands to be executed to a journal first, so that we can replay them in case of an unexpected interruption during the write process.&lt;/p&gt;

&lt;p&gt;However, Isolation and causal Consistency checks are not required. Our application design already guarantees that concurrent writes to same objects are commutative and/or idempotent, and that potential read-write conflicts are eventually resolved (as long as the order of write operations within each transaction is guaranteed). Using ACID transactions to perform our writes would lead to countless WriteConflict exceptions and retries (similar to the reports in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36428&quot; title=&quot;WriteConflict inside a transaction on any concurrent db access&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36428&quot;&gt;&lt;del&gt;SERVER-36428&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;It&apos;s probably worth pointing out that it would be perfectly acceptable for each command during such a transaction to have write concern {&quot;w&quot; : 0}, as long as the eventual commit does not return until all writes are durable. This way the server could defer the actual writes instead of performing them immediately, which would require locks on the modified documents for a potential rollback. The goal for a mode like this should be to stay as closely as possible to the performance and flexibility of single document writes as possible.&lt;/p&gt;</description>
                <environment></environment>
        <key id="922595">SERVER-43248</key>
            <summary>Provide a non-isolating non-consistent transaction mode for BASE applications</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="alan.zheng@mongodb.com">Alan Zheng</assignee>
                                    <reporter username="ralf.strobel">Ralf Strobel</reporter>
                        <labels>
                    </labels>
                <created>Tue, 10 Sep 2019 17:42:05 +0000</created>
                <updated>Thu, 7 Apr 2022 21:39:42 +0000</updated>
                                                                            <component>Replication</component>
                                        <votes>1</votes>
                                    <watches>11</watches>
                                                                                                                <comments>
                            <comment id="2889489" author="evin.roesle" created="Fri, 21 Feb 2020 21:00:11 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=ralf.strobel&quot; class=&quot;user-hover&quot; rel=&quot;ralf.strobel&quot;&gt;ralf.strobel&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;I am a Product Manager for the server team at MongoDB. Thank you for reaching out to us with your suggestion, we greatly appreciate all user feedback. There are actually two possible projects that we have been discussing in the past that fall into the bucket that you&apos;re describing here with transactions so that they may have more flexibility. At this point, we do not have a timeline for beginning work on these projects but I have taken note of your use case and will include that in the justification for these projects.&#160;&lt;/p&gt;

&lt;p&gt;Thank you and please feel free to reach out to me if you have any other use cases that would benefit from this type of functionality.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 5 Feb 2020 15:56:05 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 50 weeks, 5 days 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_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>elizabeth.roytburd@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 50 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alan.zheng@mongodb.com</customfieldvalue>
            <customfieldvalue>evin.roesle@mongodb.com</customfieldvalue>
            <customfieldvalue>ralf.strobel</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvphrr:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</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_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|hvp413:</customfieldvalue>

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