<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:39:33 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-35344] Stable timestamp and _currentCommittedSnapshot are redundant</title>
                <link>https://jira.mongodb.org/browse/SERVER-35344</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Storage maintains the stable timestamp and replication maintains the _currentCommittedSnapshot (a holdover from the pre-timestamping days). We could reduce replication complexity and possibly gain some performance benefits by only maintaining it in one place (probably storage). If at some point we are able to read consistently at any timestamp, including mid-oplog-application-batch, then both of these values could likely be removed in favor of the replication commit point.&lt;/p&gt;</description>
                <environment></environment>
        <key id="552779">SERVER-35344</key>
            <summary>Stable timestamp and _currentCommittedSnapshot are redundant</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</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="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                            <label>former-quick-wins</label>
                    </labels>
                <created>Fri, 1 Jun 2018 15:23:03 +0000</created>
                <updated>Tue, 6 Dec 2022 03:27:50 +0000</updated>
                                                                            <component>Replication</component>
                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="3295206" author="william.schultz" created="Tue, 21 Jul 2020 19:22:37 +0000"  >&lt;p&gt;Adding a few general thoughts on this after working on PM-1713. I&apos;d agree that as the code is currently written, the stableTimestamp and the currentCommittedSnapshot are basically redundant, since they are both &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9238911d0a46f26419ecdbec4293457b9e1a891d/src/mongo/db/repl/replication_coordinator_impl.cpp#L4945-L4948&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;set to the same value&lt;/a&gt; (I&apos;m only addressing the EMRC=true case since the committed snapshot isn&apos;t used for majority reads when EMRC=false). However, I&apos;d argue that the stable timestamp and the &quot;committed snapshot&quot; still deserve to be viewed as separate conceptual entities. The stable timestamp is a storage layer concept which determines where we will take our next stable checkpoint, and the committed snapshot determines the timestamp that majority readers read at. These two things happen to be given the same value in the current system, but this wouldn&apos;t have to be the case. The main requirements are simply that these timestamps are both &quot;consistent&quot; (i.e. behind the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9238911d0a46f26419ecdbec4293457b9e1a891d/src/mongo/db/repl/replication_coordinator_impl.cpp#L4861&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;no-overlap point&lt;/a&gt;) and majority committed. &lt;/p&gt;

&lt;p&gt;It would be nice to move away from the obsolete &quot;snapshot&quot; terminology going forward, though. One thought for a future direction here is to have some kind of method inside ReplicationCoordinator like &lt;tt&gt;_getConsistentMajorityTimestamp&lt;/tt&gt; which dynamically computes a timestamp that is both majority committed and consistent (essentially the timestamp that is returned by &lt;tt&gt;_recalculateStableOpTime&lt;/tt&gt; in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9238911d0a46f26419ecdbec4293457b9e1a891d/src/mongo/db/repl/replication_coordinator_impl.cpp#L4824-L4881&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;today&apos;s code&lt;/a&gt;). This could then be used to set the stable timestamp when we need to, and majority readers could call this to get a read timestamp on demand, instead of keeping a persistent _currentCommittedSnapshot value around that we need to update whenever the commit point changes.&lt;/p&gt;</comment>
                            <comment id="1911748" author="spencer" created="Tue, 5 Jun 2018 20:19:41 +0000"  >&lt;p&gt;This and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35420&quot; title=&quot;Remove stable optime candidates list from ReplicationCoordinator&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35420&quot;&gt;&lt;del&gt;SERVER-35420&lt;/del&gt;&lt;/a&gt; can likely be done together&lt;/p&gt;</comment>
                            <comment id="1908697" author="milkie" created="Fri, 1 Jun 2018 20:11:16 +0000"  >&lt;p&gt;We have no release cycle plans to do work in this area.&lt;/p&gt;</comment>
                            <comment id="1908672" author="spencer" created="Fri, 1 Jun 2018 19:56:03 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt;, how likely is this to fall out of already-scheduled work the storage team is doing this release cycle?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="527353">SERVER-34489</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="554682">SERVER-35420</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1416115">SERVER-49777</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>4.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 Jun 2018 19:56:03 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 29 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-34489'>SERVER-34489</a></s>, <s><a href='https://jira.mongodb.org/browse/PM-934'>PM-934</a></s>]]></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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 29 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-repl</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
            <customfieldvalue>william.schultz@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htzjhb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htsbiv:</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|htz5qn:</customfieldvalue>

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