<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:21:03 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-29494] WT validate should wait for explicit checkpoint</title>
                <link>https://jira.mongodb.org/browse/SERVER-29494</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;When running &lt;tt&gt;verifyTable&lt;/tt&gt; on a WiredTiger file that is not clean, it forces a checkpoint. As we need to avoid creating a checkpoint with data that is not majority confirmed, this behavior is problematic.&lt;/p&gt;

&lt;p&gt;Instead, have full validate first take a &lt;tt&gt;MODE_S&lt;/tt&gt; lock on the collection and then call a new method on the &lt;tt&gt;WiredTigerCheckpointThread&lt;/tt&gt; that will trigger and wait for a new majority-confirmed checkpoint.&lt;/p&gt;</description>
                <environment></environment>
        <key id="391252">SERVER-29494</key>
            <summary>WT validate should wait for explicit checkpoint</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="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="13203">Gone away</resolution>
                                        <assignee username="daniel.gottlieb@mongodb.com">Daniel Gottlieb</assignee>
                                    <reporter username="geert.bosch@mongodb.com">Geert Bosch</reporter>
                        <labels>
                            <label>rollback-optional</label>
                    </labels>
                <created>Wed, 7 Jun 2017 15:58:54 +0000</created>
                <updated>Fri, 27 Oct 2023 20:44:04 +0000</updated>
                            <resolved>Tue, 9 Jan 2018 18:28:43 +0000</resolved>
                                                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1769324" author="daniel.gottlieb@10gen.com" created="Tue, 9 Jan 2018 18:28:43 +0000"  >&lt;p&gt;This was fixed in WiredTiger instead. Calling &lt;tt&gt;verify&lt;/tt&gt; on a table will take a stable checkpoint of the table.&lt;/p&gt;</comment>
                            <comment id="1736203" author="ian@10gen.com" created="Tue, 28 Nov 2017 16:47:39 +0000"  >&lt;p&gt;We believe we should get this for free given existing WT work in the develop branch.  Need to confirm before resolving this ticket.&lt;/p&gt;</comment>
                            <comment id="1631828" author="daniel.gottlieb@10gen.com" created="Wed, 26 Jul 2017 01:33:15 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/WT-3387&quot; title=&quot;Add support for a stable timestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-3387&quot;&gt;&lt;del&gt;WT-3387&lt;/del&gt;&lt;/a&gt; will have `verifyTable` obey the stable timestamp. Thus the implementation for this can be to take note of the current time, wait for the &quot;stable timestamp&quot; to reach the saved time, then proceed with validating.&lt;/p&gt;</comment>
                            <comment id="1614538" author="daniel.gottlieb@10gen.com" created="Wed, 5 Jul 2017 20:06:02 +0000"  >&lt;p&gt;In the context of a prefixed collection sharing a WT table with other collections, the MODE_S lock will prevent checkpointing new data specific to that collection, but it may &quot;lock in&quot; data from other collections sharing the same table.&lt;/p&gt;

&lt;p&gt;Instead this will hopefully be solved by the intersection of MongoDB timestamps in WiredTiger and Recover to a timestamp projects.&lt;/p&gt;

&lt;p&gt;MongoDB timestamps in WiredTiger give all (user-data) transactions a timestamp. Recover to a timestamp adds checkpointing at a timestamp. Once those are in place, this ticket would become, &quot;Wait for the &quot;current time&quot; to become majority confirmed, then call &lt;tt&gt;verifyTable&lt;/tt&gt;&quot;. The checkpoint committed will be majority confirmed. The time of the verify table will be on data before the validate comes in.&lt;/p&gt;

&lt;p&gt;However, this solution can block forever in an unhealthy replica set where the majority confirmed timestamp has stopped moving forward. An alternative is to not wait, but to immediately checkpoint/verify the current majority confirmed data on a &lt;tt&gt;validate&lt;/tt&gt;. This assumes nothing relies on a happens-before relationship with a &lt;tt&gt;validate&lt;/tt&gt; (or more pointedly, MongoDB should not guarantee such a relationship).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="398977">SERVER-29891</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="383649">SERVER-29212</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="397599">WT-3387</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="419999">SERVER-30817</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_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 5 Jul 2017 20:06:02 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 5 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/WT-3387'>WT-3387</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-29891'>SERVER-29891</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-29212'>SERVER-29212</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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-842</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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 5 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>geert.bosch@mongodb.com</customfieldvalue>
            <customfieldvalue>ian@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht8qhz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htc9ov:</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="2031">Repl 2017-12-18</customfieldvalue>
    <customfieldvalue id="2047">Repl 2018-01-01</customfieldvalue>
    <customfieldvalue id="2064">Repl 2018-01-15</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|ht8ckf:</customfieldvalue>

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