<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:48:30 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-38284] Remove donor collection X-lock acquisition for starting the clone phase</title>
                <link>https://jira.mongodb.org/browse/SERVER-38284</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fd7dfafb0ec103ac9a1c02489e8a99b32c509bdd/src/mongo/db/s/migration_source_manager.cpp#L249&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;collection X-lock acquisition&lt;/a&gt; when entering the migration clone phase is a necessary synchronization which serves two purposes:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Removes the need for a mutex necessary for reading and writing to MSM* decoration of the CollectionShardingRuntime, where &lt;em&gt;nullptr&lt;/em&gt; value means that writes are not tracked and &lt;em&gt;non-nullptr&lt;/em&gt; value means that the current migration is tracking writes.&lt;/li&gt;
	&lt;li&gt;Ensures that the chunk migration will start tracking writes to the chunk after all documents, which the clone phase will see have been journaled.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;b&gt;Synchronization (1)&lt;/b&gt; should be implemented by introducing a lock manager ResourceMutex object on the MigrationSourceManager &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fd7dfafb0ec103ac9a1c02489e8a99b32c509bdd/src/mongo/db/s/migration_source_manager.cpp#L74&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;decoration&lt;/a&gt; and add a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fd7dfafb0ec103ac9a1c02489e8a99b32c509bdd/src/mongo/db/s/migration_source_manager.cpp#L123&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;MigrationSourceManager::getCloner&lt;/tt&gt;&lt;/a&gt; method, which returns a scoped object which holds this mutex in MODE_IX and has a &lt;tt&gt;bool&lt;/tt&gt; and &lt;tt&gt;MigrationChunkClonerSource*&lt;/tt&gt; operators, which return &lt;tt&gt;nullptr&lt;/tt&gt; if there is no active migration or the active cloner. That way, all &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fd7dfafb0ec103ac9a1c02489e8a99b32c509bdd/src/mongo/db/s/op_observer_sharding_impl.cpp#L86&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;write code paths&lt;/a&gt; will acquire this mutex in mode IX, whereas &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fd7dfafb0ec103ac9a1c02489e8a99b32c509bdd/src/mongo/db/s/migration_source_manager.cpp#L249&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;migration start&lt;/a&gt; will acquire it in mode X when it installs the clone driver.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Synchronization (2)&lt;/b&gt; can be implemented by waiting for the last written timestamp to become journaled (or even majority committed) before starting to clone the chunk. Because of this, collection X-lock acquisition can easily be replaced with a call to the replication coordinator&#8217;s &lt;em&gt;waitUntilOpTimeForRead&lt;/em&gt; after the writes tracking for the chunk has been activated. That way it is guaranteed that all changes to the chunk will be captured either in the cloned snapshot or in &lt;em&gt;xferMods&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Xfermods for committed changes only&lt;/b&gt;&lt;br/&gt;
Since we are removing a collection X-lock acquisition, which creates a barrier after which all active transactions on the collection have committed, we need to ensure that migration chunk cloner source doesn&apos;t miss writes that started before the migration (and would never had called the LogOpForShardingHandler of the migration manager). This will be achieved by ensuring that &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5d0f13334445fca6e2c5bfc496b5d5b1cb7e0f8a/src/mongo/db/op_observer_impl.cpp#L384&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;shardObserveInsertOp&lt;/tt&gt;&lt;/a&gt; is only called for committed writes and that on transaction commit we call it for each document written for the migrated collection.&lt;/p&gt;</description>
                <environment></environment>
        <key id="639246">SERVER-38284</key>
            <summary>Remove donor collection X-lock acquisition for starting the clone phase</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="13201">Fixed</resolution>
                                        <assignee username="blake.oler@mongodb.com">Blake Oler</assignee>
                                    <reporter username="kaloian.manassiev@mongodb.com">Kaloian Manassiev</reporter>
                        <labels>
                    </labels>
                <created>Wed, 28 Nov 2018 11:35:47 +0000</created>
                <updated>Sun, 29 Oct 2023 22:26:19 +0000</updated>
                            <resolved>Fri, 22 Feb 2019 17:12:44 +0000</resolved>
                                                    <fixVersion>4.1.9</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2159923" author="xgen-internal-githook" created="Fri, 22 Feb 2019 17:09:51 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Blake Oler&apos;, &apos;username&apos;: &apos;BlakeIsBlake&apos;, &apos;email&apos;: &apos;blake.oler@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38284&quot; title=&quot;Remove donor collection X-lock acquisition for starting the clone phase&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38284&quot;&gt;&lt;del&gt;SERVER-38284&lt;/del&gt;&lt;/a&gt; Remove donor collection X-lock acquisition for starting the clone phase in migrations&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7fce23cd2642bb3ff8d972e32e8ea2c82d951f35&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7fce23cd2642bb3ff8d972e32e8ea2c82d951f35&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2116165" author="blake.oler" created="Tue, 15 Jan 2019 20:03:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt; &lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;We currently rely on majority commit writes to confirm completion of cloning (&lt;a href=&quot;https://github.com/mongodb/mongo/blob/a0c5635a5ee27ac30af2e6d3d01c663589f28824/src/mongo/db/s/migration_source_manager.cpp#L297-L300&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;). &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt; and I decided that waiting for local read concern from replication is valid at the beginning of the clone process because, in all cases, we wait for majority commit to complete.&lt;/li&gt;
	&lt;li&gt;We are referring to replication committed writes. However, as said in the previous point, we switched to using locally visible writes via local read concern.&lt;/li&gt;
	&lt;li&gt;Conversation on this has been sent to &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39017&quot; title=&quot;Allow prepared transaction statements to persist in-memory until commit&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39017&quot;&gt;&lt;del&gt;SERVER-39017&lt;/del&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="2113988" author="judah.schvimer" created="Mon, 14 Jan 2019 15:02:48 +0000"  >&lt;p&gt;Three comments:&lt;br/&gt;
1)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;waiting for the last written timestamp to become journaled (or even majority committed)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Majority committed doesn&apos;t always mean journaled. It depends on the value of &lt;a href=&quot;https://docs.mongodb.com/manual/reference/replica-configuration/#rsconf.writeConcernMajorityJournalDefault&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;writeConcernMajorityJournalDefault&lt;/tt&gt;&lt;/a&gt;. I&apos;m not sure if that matters, but thought I&apos;d mention it.&lt;/p&gt;

&lt;p&gt;2)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;committed writes and that on transaction commit&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Can you please clarify if these are storage-committed or replication-(majority)-committed writes? Can you please clarify if this is a storage-transaction or a mongodb-transaction?&lt;/p&gt;

&lt;p&gt;3) I think the proposed participant interface is a bit over-complicated. Can we just replace &lt;tt&gt;endTransactionAndRetrieveOperations()&lt;/tt&gt; with &lt;tt&gt;retrieveOperationsForMigrate()&lt;/tt&gt; and &lt;tt&gt;clearOperationsInMemory()&lt;/tt&gt; rather than adding them and keeping it with a boolean? It&apos;s unclear to me what &lt;tt&gt;endTransactionAndRetrieveOperations()&lt;/tt&gt; would do that the combination of the two new methods does not do.&lt;/p&gt;</comment>
                            <comment id="2110554" author="blake.oler" created="Wed, 9 Jan 2019 22:21:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt; I outlined proposed changes to the transaction participant in the third section of the ticket so that we may observe statements of a prepared transaction on commit. Let me know if the proposed changes seem sane to you.&lt;/p&gt;</comment>
                            <comment id="2109318" author="kaloian.manassiev" created="Tue, 8 Jan 2019 22:57:56 +0000"  >&lt;blockquote&gt;&lt;p&gt;What would you propose as the path forward based on this knowledge?&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;Your idea for using the X-lock only if we&apos;re not in a replica set may work.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;We should just do this before attempting to disallow standalones as shard servers.&lt;/p&gt;</comment>
                            <comment id="2109187" author="esha.maharishi@10gen.com" created="Tue, 8 Jan 2019 21:30:51 +0000"  >&lt;p&gt;I think &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32531&quot; title=&quot;Require --shardsvrs not started in queryable backup mode to be started as replica sets&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32531&quot;&gt;&lt;del&gt;SERVER-32531&lt;/del&gt;&lt;/a&gt; was filed for the work queryable backup needed to disallow standalones as shard servers.&lt;/p&gt;</comment>
                            <comment id="2109094" author="blake.oler" created="Tue, 8 Jan 2019 20:17:50 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt; after doing some digging, I found out that there was no consolidated ticket to track tests that still run as standalone shards and also use chunk migrations. I&apos;ve compiled them into this one ticket (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38894&quot; title=&quot;Change tests to use replica set shards instead of standalone shards to allow chunk migrations to use replication-specific functionality &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38894&quot;&gt;&lt;del&gt;SERVER-38894&lt;/del&gt;&lt;/a&gt;). There are twenty-two conflicting tests scattered across seven tickets. Investigation needs to be done for a portion of them &amp;#8211; for the rest that can simply be converted, time still needs to be taken to verify they will pass Evergreen. I estimate that to be a sprint and a half&apos;s worth of work.&lt;/p&gt;

&lt;p&gt;Additionally, there are fourteen suites using ShardedClusterFixture that are running shards as standalones. These need to be changed and evaluated to make sure they will pass with replica set shards. This is tracked in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38898&quot; title=&quot;Update suites using ShardedClusterFixture to use replica set shards instead of standalone shards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38898&quot;&gt;&lt;del&gt;SERVER-38898&lt;/del&gt;&lt;/a&gt;. I estimate this to be at least a sprint&apos;s worth of work.&lt;/p&gt;

&lt;p&gt;There is also a ticket that &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=max.hirschhorn&quot; class=&quot;user-hover&quot; rel=&quot;max.hirschhorn&quot;&gt;max.hirschhorn&lt;/a&gt; pointed out to me &amp;#8211; we need to make sure that these changes won&apos;t affect Queryable Backup, something that is outside of my current knowledge base. Maybe &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=esha.maharishi&quot; class=&quot;user-hover&quot; rel=&quot;esha.maharishi&quot;&gt;esha.maharishi&lt;/a&gt; as the assignee of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32529&quot; title=&quot;Requiring replSet for shards breaks Queryable Backup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32529&quot;&gt;&lt;del&gt;SERVER-32529&lt;/del&gt;&lt;/a&gt; might know more?&lt;/p&gt;

&lt;p&gt;We are going to take on a non-negligible amount of work to make sure our testing infrastructure is up-to-par with these proposed restrictions.&lt;/p&gt;

&lt;p&gt;Your idea for using the X-lock only if we&apos;re not in a replica set may work. &lt;/p&gt;

&lt;p&gt;What would you propose as the path forward based on this knowledge?&lt;/p&gt;</comment>
                            <comment id="2105375" author="kaloian.manassiev" created="Fri, 4 Jan 2019 13:10:57 +0000"  >&lt;p&gt;Since transactions are not used in standalone shards, you could use a collection X lock there to establish a visibility barrier with all writes that happened before that point.&lt;/p&gt;

&lt;p&gt;Standalone shards are also no longer supported, but we still keep the functionality because we couldn&apos;t ret rid of the last few remaining tests. Check with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=janna.golden&quot; class=&quot;user-hover&quot; rel=&quot;janna.golden&quot;&gt;janna.golden&lt;/a&gt; for what was the reason we couldn&apos;t switch them to 1-node RS - she might know better.&lt;/p&gt;</comment>
                            <comment id="2103375" author="blake.oler" created="Wed, 2 Jan 2019 18:09:05 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt; regarding synchronization (2), if we wait for read concern as a replica set, then that will cause us to lose test coverage for any test that uses a standalone shard and also attempts to migrate for any reason. Is this an alright gap to induce, or should we instead wait for all writes to be journaled on the current node?&lt;/p&gt;</comment>
                            <comment id="2101432" author="xgen-internal-githook" created="Fri, 28 Dec 2018 05:25:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;BlakeIsBlake&apos;, &apos;email&apos;: &apos;blake.oler@mongodb.com&apos;, &apos;name&apos;: &apos;Blake Oler&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38284&quot; title=&quot;Remove donor collection X-lock acquisition for starting the clone phase&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38284&quot;&gt;&lt;del&gt;SERVER-38284&lt;/del&gt;&lt;/a&gt; Create concurrency lock for CollectionShardingRuntime&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/84a0dd98f9bedec0d104b912f23b3a1221ae456e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/84a0dd98f9bedec0d104b912f23b3a1221ae456e&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="672882">SERVER-39017</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="672920">SERVER-39021</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2179546">SERVER-71219</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2420873">SERVER-80236</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>10.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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>Tue, 11 Dec 2018 20:39:42 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 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[<s><a href='https://jira.mongodb.org/browse/SERVER-39017'>SERVER-39017</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-39021'>SERVER-39021</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-1286</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>
                            4 years, 50 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>blake.oler@mongodb.com</customfieldvalue>
            <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hudsun:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu43s7:</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="2639">Sharding 2018-12-17</customfieldvalue>
    <customfieldvalue id="2640">Sharding 2018-12-31</customfieldvalue>
    <customfieldvalue id="2725">Sharding 2019-01-14</customfieldvalue>
    <customfieldvalue id="2726">Sharding 2019-01-28</customfieldvalue>
    <customfieldvalue id="2786">Sharding 2019-02-11</customfieldvalue>
    <customfieldvalue id="2787">Sharding 2019-02-25</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|hudf3z:</customfieldvalue>

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