<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:39:27 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-56509] Wrap unique index insertion _keyExists call in a WT cursor reconfigure.</title>
                <link>https://jira.mongodb.org/browse/SERVER-56509</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Follow on work from &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264&quot; title=&quot;Creating a new configuration for search near that allows it to exit quickly when searching for prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7264&quot;&gt;&lt;del&gt;WT-7264&lt;/del&gt;&lt;/a&gt; which is adding a new cursor flag, the flag allows the search near to exit early instead of walking numerous not visible entries.&lt;/p&gt;

&lt;p&gt;The patch I was using when testing the change is:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;index 87bda0ace9..7eef9c8528 100644&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;--- a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;@@ -1520,9 +1520,11 @@ Status WiredTigerIndexUnique::_insert(OperationContext* opCtx,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         setKey(c, prefixKeyItem.Get());&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         ret = WT_OP_CHECK(wiredTigerCursorRemove(opCtx, c));&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         invariantWTOK(ret);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;-&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        c-&amp;gt;reconfigure(c, &quot;prefix_key=true&quot;);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         // Second phase looks up for existence of key to avoid insertion of duplicate key&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;-        if (_keyExists(opCtx, c, keyString.getBuffer(), sizeWithoutRecordId)) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        auto key_exists = _keyExists(opCtx, c, keyString.getBuffer(), sizeWithoutRecordId);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        c-&amp;gt;reconfigure(c, &quot;prefix_key=false&quot;);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        if (key_exists) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;             auto key = KeyString::toBson(&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                 keyString.getBuffer(), sizeWithoutRecordId, _ordering, keyString.getTypeBits());&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;             auto entry = _desc-&amp;gt;getEntry(); &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;I think that should be all the required changes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1696512">SERVER-56509</key>
            <summary>Wrap unique index insertion _keyExists call in a WT cursor reconfigure.</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="13201">Fixed</resolution>
                                        <assignee username="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="luke.pearson@mongodb.com">Luke Pearson</reporter>
                        <labels>
                    </labels>
                <created>Fri, 30 Apr 2021 01:36:22 +0000</created>
                <updated>Sun, 29 Oct 2023 21:54:14 +0000</updated>
                            <resolved>Mon, 7 Jun 2021 17:00:21 +0000</resolved>
                                                    <fixVersion>4.4.7</fixVersion>
                    <fixVersion>5.0.0-rc2</fixVersion>
                    <fixVersion>5.1.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>27</watches>
                                                                                                                <comments>
                            <comment id="3969264" author="xgen-internal-githook" created="Wed, 28 Jul 2021 21:06:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; Wrap unique index insertion _keyExists call in a WT cursor reconfigure&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit c5ac2eb1ea145693e1c6b974e88a2cfc18780134.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ecba23449a26f3d266ffacda7eb98d8386267606&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ecba23449a26f3d266ffacda7eb98d8386267606&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3969256" author="xgen-internal-githook" created="Wed, 28 Jul 2021 21:01:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; Wrap unique index insertion _keyExists call in a WT cursor reconfigure&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit ae2da27652e552f101559466d165b82a3c122d71.&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/83b8bb8b6b325d8d8d3dfd2ad9f744bdad7d6ca0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/83b8bb8b6b325d8d8d3dfd2ad9f744bdad7d6ca0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3969254" author="xgen-internal-githook" created="Wed, 28 Jul 2021 21:00:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; Wrap unique index insertion _keyExists call in a WT cursor reconfigure&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 297e2977ef3e394e02d61aedc954c9aaadc37e73.&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6d9ec525e78465dcecadcff99cce953d380fedc8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6d9ec525e78465dcecadcff99cce953d380fedc8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3894013" author="xgen-internal-githook" created="Wed, 23 Jun 2021 14:30:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; Wrap unique index insertion _keyExists call in a WT cursor reconfigure&lt;/p&gt;

&lt;p&gt;This improves, but does not entirely fix a performance regression with&lt;br/&gt;
inserts and updates on unique indexes&lt;/p&gt;

&lt;p&gt;(cherry picked from commit c5ac2eb1ea145693e1c6b974e88a2cfc18780134)&lt;br/&gt;
(cherry picked from commit 297e2977ef3e394e02d61aedc954c9aaadc37e73)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ae2da27652e552f101559466d165b82a3c122d71&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ae2da27652e552f101559466d165b82a3c122d71&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3878711" author="xgen-internal-githook" created="Tue, 15 Jun 2021 15:26:57 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; Wrap unique index insertion _keyExists call in a WT cursor reconfigure&lt;/p&gt;

&lt;p&gt;This improves, but does not entirely fix a performance regression with&lt;br/&gt;
inserts and updates on unique indexes&lt;/p&gt;

&lt;p&gt;(cherry picked from commit c5ac2eb1ea145693e1c6b974e88a2cfc18780134)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/297e2977ef3e394e02d61aedc954c9aaadc37e73&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/297e2977ef3e394e02d61aedc954c9aaadc37e73&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3862898" author="xgen-internal-githook" created="Mon, 7 Jun 2021 16:56:27 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; Wrap unique index insertion _keyExists call in a WT cursor reconfigure&lt;/p&gt;

&lt;p&gt;This improves, but does not entirely fix a performance regression with&lt;br/&gt;
inserts and updates on unique indexes&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c5ac2eb1ea145693e1c6b974e88a2cfc18780134&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c5ac2eb1ea145693e1c6b974e88a2cfc18780134&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3862858" author="louis.williams" created="Mon, 7 Jun 2021 16:42:04 +0000"  >&lt;p&gt;I split this ticket off into&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/WT-7653&quot; title=&quot;Inconsistent update performance on unique indexes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7653&quot;&gt;SERVER-57500&lt;/a&gt; which tracks the remaining performance regressions.&lt;/p&gt;</comment>
                            <comment id="3849159" author="luke.pearson" created="Mon, 31 May 2021 01:24:53 +0000"  >&lt;p&gt;I have discussed this with the team and we are planning on scoping out a project to handle further search_near optimisations including the second regression identified by Louis.&lt;/p&gt;</comment>
                            <comment id="3840520" author="luke.pearson" created="Wed, 26 May 2021 05:40:19 +0000"  >&lt;p&gt;I did notice that we&apos;re doing a lot of nexts and prevs in the insert list path which wasn&apos;t optimised for prefix searching, so I added a check there and resolved a lot of regression but also made the insertion phase worse.&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; load(&apos;server-repro.js&apos;)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;starting bulk load on unique&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;inserted 10000&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Wed May 26 2021 15:34:17 GMT+1000 (AEST)...bulk load on unique: 2180ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;starting update on unique&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Wed May 26 2021 15:34:19 GMT+1000 (AEST)...update on unique: 378ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;It is expected that comparing keys with prefixes would be slow which is why I opted not to include it in the insert list scenario. Given that the update case is now quick I&apos;m guessing that it too is taking the insert list path, but in the normal case why is it&apos;s insert list checking taking 8 seconds of time, reduced to 300ms with my fix?&lt;/p&gt;</comment>
                            <comment id="3840476" author="luke.pearson" created="Wed, 26 May 2021 03:44:54 +0000"  >&lt;p&gt;That is very interesting, and the I have run the reproducer and see the same regression. I&apos;ve spend some time comparing the unique index scenario with the non unique scenario and also took a look at the FTDC data from both.&lt;/p&gt;

&lt;p&gt;From the FTDC it&apos;s clear that the prefix search near code isn&apos;t coming into affect until we begin the update portion of the workload which is after the ~10 second hang:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.mongodb.org/secure/attachment/317160/317160_image-2021-05-26-13-41-06-320.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;This is curious as I&apos;m fairly certain the insert path is going through the same function. I&apos;ve also wrapped the &lt;tt&gt;isDup&lt;/tt&gt; call to &lt;tt&gt;_keyExists&lt;/tt&gt; in a reconfigure for prefix search and not seen any positive impact from that.&lt;/p&gt;

&lt;p&gt;I&apos;m not clear on where these next and prev calls are originating from so I&apos;ll continue to try and narrow that down.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="3838417" author="louis.williams" created="Tue, 25 May 2021 16:36:23 +0000"  >&lt;p&gt;I wrote a reproducer (attached as &quot;repro.js&quot;) for the multi-update problem, and the &quot;prefix_key&quot; change does not appear to have completely resolved the regression related to updates on unique indexes. Locally, a multi-update on a non-unique index field for 10K docs took about 250ms. The same update on a unique field took about 15s without the &quot;prefix_key&quot; change and about 8s with the &quot;prefix_key&quot; change.&lt;/p&gt;

&lt;p&gt;I also discovered that the regression only exists if a unique field is updated to a value that sorts before the original key. For example, updating an index field from &quot;ZZZ&quot; to &quot;AAA&quot; triggers the regression, but updating the same field from &quot;AAA&quot; to &quot;ZZZ&quot; does not. I assume this is because of the way MongoDB constructs KeyStrings for seeking when calling _keyExists.&lt;/p&gt;

&lt;p&gt;Perf screenshot with the &quot;prefix_key&quot; change applied: &lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.mongodb.org/secure/attachment/316982/316982_Screen+Shot+2021-05-24+at+9.44.50+PM.png&quot; width=&quot;100%&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;I have not been able to reproduce a problem with multi-deletes.&lt;/p&gt;</comment>
                            <comment id="3823024" author="luke.pearson" created="Tue, 25 May 2021 00:17:24 +0000"  >&lt;p&gt;Sorry for the delay to reply, I&apos;ll bring the conversation from &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264&quot; title=&quot;Creating a new configuration for search near that allows it to exit quickly when searching for prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7264&quot;&gt;&lt;del&gt;WT-7264&lt;/del&gt;&lt;/a&gt; over to here so its all in one place.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=luke.pearson&quot; class=&quot;user-hover&quot; rel=&quot;luke.pearson&quot;&gt;luke.pearson&lt;/a&gt; is the original regression only a problem when calling search_near() after inserting+removing within the same transaction? Or would this regression also apply to readers that call search_near() in subsequent transactions? My intuition says that this would be a problem for other transactions since these tombstones must be traversed&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Given that we can&apos;t guarantee that it&apos;ll land on the prefix in other transactions we can&apos;t guarantee the current implementation of prefix search near will work correctly, we can look at extending it to handle other scenarios. I&apos;ll raise this with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=brian.lane&quot; class=&quot;user-hover&quot; rel=&quot;brian.lane&quot;&gt;brian.lane&lt;/a&gt; &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=luke.pearson&quot; class=&quot;user-hover&quot; rel=&quot;luke.pearson&quot;&gt;luke.pearson&lt;/a&gt; What is the plan for that ticket? Do I understand correctly that the &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264&quot; title=&quot;Creating a new configuration for search near that allows it to exit quickly when searching for prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7264&quot;&gt;&lt;del&gt;WT-7264&lt;/del&gt;&lt;/a&gt; fix we were waiting for TPC-C performance issues is not working until that ticket would be done?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56509&quot; title=&quot;Wrap unique index insertion _keyExists call in a WT cursor reconfigure.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56509&quot;&gt;&lt;del&gt;SERVER-56509&lt;/del&gt;&lt;/a&gt; needs to be completed before the prefix search near fix will take effect, however I cannot confirm that it will resolve the TPC-C regression as we discussed separately on the BF.&lt;/p&gt;</comment>
                            <comment id="3794779" author="louis.williams" created="Thu, 20 May 2021 14:53:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=luke.pearson&quot; class=&quot;user-hover&quot; rel=&quot;luke.pearson&quot;&gt;luke.pearson&lt;/a&gt;, related to &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264?focusedCommentId=3794678&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3794678&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;my recent comment&lt;/a&gt; in &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264&quot; title=&quot;Creating a new configuration for search near that allows it to exit quickly when searching for prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7264&quot;&gt;&lt;del&gt;WT-7264&lt;/del&gt;&lt;/a&gt;, does it make sense to also apply this optimization when seeking for keys, not just for insertion?&lt;/p&gt;</comment>
                            <comment id="3793314" author="JIRAUSER1257325" created="Wed, 19 May 2021 21:55:01 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=luke.pearson&quot; class=&quot;user-hover&quot; rel=&quot;luke.pearson&quot;&gt;luke.pearson&lt;/a&gt; What is the plan for that ticket? Do I understand correctly that the &lt;a href=&quot;https://jira.mongodb.org/browse/WT-7264&quot; title=&quot;Creating a new configuration for search near that allows it to exit quickly when searching for prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-7264&quot;&gt;&lt;del&gt;WT-7264&lt;/del&gt;&lt;/a&gt; fix we were waiting for TPC-C performance issues is not working until that ticket would be done?&lt;/p&gt;</comment>
                            <comment id="3753547" author="luke.pearson" created="Tue, 4 May 2021 08:57:07 +0000"  >&lt;p&gt;The related ticket has been merged to mongodb-master.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1638732">WT-7264</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1737721">SERVER-57095</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="1834603">SERVER-58936</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1770796">WT-7653</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1758120">SERVER-57221</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1835337">SERVER-58943</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1687370">SERVER-56274</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1915961">SERVER-61185</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="316982" name="Screen Shot 2021-05-24 at 9.44.50 PM.png" size="642166" author="louis.williams@mongodb.com" created="Tue, 25 May 2021 16:35:45 +0000"/>
                            <attachment id="317160" name="image-2021-05-26-13-41-06-320.png" size="28959" author="luke.pearson@mongodb.com" created="Wed, 26 May 2021 03:41:07 +0000"/>
                            <attachment id="316977" name="repro.js" size="1317" author="louis.williams@mongodb.com" created="Tue, 25 May 2021 16:31:22 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>15.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="21777"><![CDATA[v5.0]]></customfieldvalue>
    <customfieldvalue key="18953"><![CDATA[v4.4]]></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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000xCFlGQAW]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 6 May 2021 15:37:49 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 28 weeks 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-7264'>WT-7264</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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>
                            2 years, 28 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>180.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alex.podelko@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
            <customfieldvalue>luke.pearson@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hz7hg7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr3tcf:</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="4879">Execution Team 2021-06-14</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|hz73pb:</customfieldvalue>

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