<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:30:42 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-32594] Add mechanism to delete and recreate the &quot;catalog&quot;.</title>
                <link>https://jira.mongodb.org/browse/SERVER-32594</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Recover to stable timestamp works by &quot;pulling the rug out&quot; from underneath in-memory state, which is constructed from the storage engine&apos;s data. To safely recreate the in-memory state, internal caches will be rebuilt. This includes rebuilding the &quot;catalog&quot;. In short, this work should expose one method to throw away and one method to recreate the catalog. In between these methods, recover to a stable timestamp can &quot;pull the rug out&quot;.&lt;/p&gt;

&lt;p&gt;Requirements:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Expose a method that destroys the catalog.&lt;/li&gt;
	&lt;li&gt;Expose a separate method that reconstructs the catalog.&lt;/li&gt;
	&lt;li&gt;After calling these methods, the catalog objects must be refreshed, sourcing their state from the current on-disk image, just as if this were startup.&lt;/li&gt;
	&lt;li&gt;This includes:
	&lt;ul&gt;
		&lt;li&gt;Objects in the &lt;tt&gt;db/catalog&lt;/tt&gt; directory, e.g: &lt;tt&gt;Database&lt;/tt&gt; and &lt;tt&gt;Collection&lt;/tt&gt;.&lt;/li&gt;
		&lt;li&gt;Storage engine implementations for &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c6d77332363ca7ba7913c0c3eba0527e3f367c92/src/mongo/db/catalog/database_catalog_entry.h&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;DatabaseCatalogEntry&lt;/a&gt; and  &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c6d77332363ca7ba7913c0c3eba0527e3f367c92/src/mongo/db/catalog/collection_catalog_entry.h&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;CollectionCatalogEntry&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;Fixing up the UUID cache.&lt;/li&gt;
		&lt;li&gt;Refreshing [KV]StorageEngine internals. Possible relevant pieces &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c6d77332363ca7ba7913c0c3eba0527e3f367c92/src/mongo/db/storage/kv/kv_storage_engine.h#L165-L170&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;for the KVStorageEngine&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Assumptions:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;It is sufficient to only implement the requirement for storage engine&apos;s that &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c6d77332363ca7ba7913c0c3eba0527e3f367c92/src/mongo/db/storage/storage_engine.h#L136&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;support recover to a stable timestamp&lt;/a&gt; (i.e: only KVStorageEngine).&lt;/li&gt;
	&lt;li&gt;The code should assume (i.e: invariant) a Global X lock is held when entering both calls.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Constraints:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The storage engine &lt;b&gt;must not&lt;/b&gt; be destroyed.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Out of scope:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;For the purposes of this ticket, storage engine specific (i.e: WiredTiger, not KVStorageEngine) data only need to be addressed to give the implementor reasonable confidence the underlying storage engine is usable. For example, correctly regenerating internal state of specific storage engines (e.g: WiredTiger&apos;s SizeStorer), is beyond the scope of this ticket.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="480419">SERVER-32594</key>
            <summary>Add mechanism to delete and recreate the &quot;catalog&quot;.</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="13201">Fixed</resolution>
                                        <assignee username="kyle.suarez@mongodb.com">Kyle Suarez</assignee>
                                    <reporter username="daniel.gottlieb@mongodb.com">Daniel Gottlieb</reporter>
                        <labels>
                            <label>rollback-functional</label>
                    </labels>
                <created>Tue, 9 Jan 2018 02:56:11 +0000</created>
                <updated>Mon, 30 Oct 2023 23:09:30 +0000</updated>
                            <resolved>Fri, 2 Feb 2018 18:55:49 +0000</resolved>
                                                    <fixVersion>3.7.2</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="1793640" author="kyle.suarez" created="Fri, 2 Feb 2018 18:55:49 +0000"  >&lt;p&gt;Per Slack conversation with Geert, moving &lt;tt&gt;catalog_control.cpp&lt;/tt&gt; to the &lt;tt&gt;catalog_helpers&lt;/tt&gt; library will induce a library cycle with the &lt;tt&gt;repl/oplog&lt;/tt&gt; library, so punting the reorganization to a future commit.&lt;/p&gt;</comment>
                            <comment id="1790986" author="kyle.suarez" created="Wed, 31 Jan 2018 19:22:56 +0000"  >&lt;p&gt;Re-opening this so I can make a minor adjustment to the shared libraries.&lt;/p&gt;</comment>
                            <comment id="1790820" author="xgen-internal-githook" created="Wed, 31 Jan 2018 17:47:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kyle.suarez@mongodb.com&apos;, &apos;name&apos;: &apos;Kyle Suarez&apos;, &apos;username&apos;: &apos;ksuarz&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32594&quot; title=&quot;Add mechanism to delete and recreate the &amp;quot;catalog&amp;quot;.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32594&quot;&gt;&lt;del&gt;SERVER-32594&lt;/del&gt;&lt;/a&gt; add mechanism to close and reopen the catalog&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0322da76ec976d240191b1ca8f70c2c732f9753a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0322da76ec976d240191b1ca8f70c2c732f9753a&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="383656">SERVER-29213</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="490706">SERVER-33051</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>3.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>Mon, 22 Jan 2018 22:06:48 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 1 week, 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-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, 1 week, 5 days 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>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kyle.suarez@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htnlhb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htf3vj:</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="2075">Storage 2018-01-15</customfieldvalue>
    <customfieldvalue id="2094">Storage 2018-01-29</customfieldvalue>
    <customfieldvalue id="2123">Storage 2018-02-12</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|htn7lr:</customfieldvalue>

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