<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:46:46 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-37704] Explore Replicate-before-journaling performance improvement</title>
                <link>https://jira.mongodb.org/browse/SERVER-37704</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;One way to suppress oplog holes on startup would be to durably record the visibility point as it is tracked by the oplog visiblity manager; then on startup, we could truncate the oplog after that point, thus erasing holes.  The data associated with those oplog entries would already be gone because data tables are not logged (journaled).&lt;/p&gt;</description>
                <environment></environment>
        <key id="622427">SERVER-37704</key>
            <summary>Explore Replicate-before-journaling performance improvement</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="9">Done</resolution>
                                        <assignee username="milkie@mongodb.com">Eric Milkie</assignee>
                                    <reporter username="milkie@mongodb.com">Eric Milkie</reporter>
                        <labels>
                    </labels>
                <created>Mon, 22 Oct 2018 18:25:06 +0000</created>
                <updated>Wed, 26 Apr 2023 06:15:55 +0000</updated>
                            <resolved>Fri, 30 Nov 2018 18:20:04 +0000</resolved>
                                                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>11</watches>
                                                                                                                <comments>
                            <comment id="2077056" author="milkie" created="Fri, 30 Nov 2018 18:20:04 +0000"  >&lt;p&gt;Exploration and POC is complete.  Summary of findings:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;for a basic workload of one writer doing serial w:majority writes, this enhancement could result in a speedup of 15-20%&lt;/li&gt;
	&lt;li&gt;no sys-perf tests actually show an improvement, but one test does show a regression: the YCSB test that does 50% updates and 50% reads.  This particular test only uses 1 thread, so there is something interesting about the interaction of mixed reads and updates done at w:majority that causes a slowdown.  The 95%/5% equivalent test does not show a regression, and when I hacked the test to do 100% updates, an improvement was seen (similar to my one-off basic workload test in the above bullet.)&lt;/li&gt;
	&lt;li&gt;For the actual work for this project, the tricky parts will be the edge cases of using the oplog truncate point as a primary, as there are a bunch of places in rollback and startup that assume this situation cannot occur.  This may mean that upgrade/downgrade will be non-trivial.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2077050" author="milkie" created="Fri, 30 Nov 2018 18:16:26 +0000"  >&lt;p&gt;The topology coordinator simply uses the node&apos;s knowledge of all nodes&apos; last known durable timestamp to calculate a new commit point; it doesn&apos;t treat itself specially.  (The recalculation of the commit point is triggered by any change in the map of nodes to durable timestamp.)   So I don&apos;t think any changes would be necessary there.&lt;/p&gt;</comment>
                            <comment id="2040337" author="schwerin" created="Wed, 24 Oct 2018 13:21:09 +0000"  >&lt;p&gt;Maybe we have a confusion about terminology here, but the point of this project is to replicate oplog entries before their durable on the primary, right? That means that the secondaries might make those writes durable and thus make them majority committed before they&apos;re durable on the primary. Since the primary reports the majority commit point, you&apos;d need to change how it computes that optime to include the possibility of the majority commit point being ahead of the primary&apos;s own durable point.&lt;/p&gt;</comment>
                            <comment id="2040090" author="milkie" created="Wed, 24 Oct 2018 04:15:42 +0000"  >&lt;p&gt;I don&apos;t follow &amp;#8211; how can secondaries have data that is past the primary&apos;s visibility point?&lt;/p&gt;</comment>
                            <comment id="2038886" author="schwerin" created="Tue, 23 Oct 2018 13:19:44 +0000"  >&lt;p&gt;The challenge here is that the primary would need to consider that visibility point when deciding how far to advance the majority commit point. You&apos;d want it to let two secondaries who had confirmed past the primary&apos;s visibility point to cause the primary to advance the majority point as well.&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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 23 Oct 2018 13:19:44 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 10 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1274</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 10 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huaxuf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu18gn:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2595">Storage NYC 2018-11-05</customfieldvalue>
    <customfieldvalue id="2596">Storage NYC 2018-11-19</customfieldvalue>
    <customfieldvalue id="2628">Storage NYC 2018-12-03</customfieldvalue>

                        </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|huak3r:</customfieldvalue>

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