<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:18:16 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>[CDRIVER-3514] SCRAM cache should be shared among all pooled clients</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3514</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;The cache for SCRAM credentials is attached to the &lt;tt&gt;mongoc_cluster_t&lt;/tt&gt; object, which manages the connections for a single &lt;tt&gt;mongoc_client_t&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;However, this means that two &lt;tt&gt;mongoc_client_t&lt;/tt&gt;&apos;s popped from a &lt;tt&gt;mongoc_pool_t&lt;/tt&gt; have different SCRAM caches. I believe it should instead be moved to the &lt;tt&gt;mongoc_topology_t&lt;/tt&gt;, so client pools can better utilize the cache.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1126271">CDRIVER-3514</key>
            <summary>SCRAM cache should be shared among all pooled clients</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="kyle.kloberdanz@mongodb.com">Kyle Kloberdanz</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                    </labels>
                <created>Sun, 2 Feb 2020 15:49:57 +0000</created>
                <updated>Mon, 16 Oct 2023 18:25:52 +0000</updated>
                            <resolved>Thu, 12 Oct 2023 14:42:52 +0000</resolved>
                                                    <fixVersion>1.25.0</fixVersion>
                                    <component>auth</component>
                    <component>libmongoc</component>
                    <component>Performance</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="5782264" author="xgen-internal-githook" created="Mon, 16 Oct 2023 18:25:52 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kyle Kloberdanz&apos;, &apos;email&apos;: &apos;kyle.kloberdanz@mongodb.com&apos;, &apos;username&apos;: &apos;kkloberdanz&apos;}
&lt;p&gt;Message: Fix Windows shared mutex unlocking (#1445)&lt;/p&gt;

&lt;p&gt;Unlike a POSIX read/write lock, in which both a read lock and a write&lt;br/&gt;
lock are unlocked by the same function, Windows requires that a read&lt;br/&gt;
lock is unlocked by a different function than a write lock.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3514&quot; title=&quot;SCRAM cache should be shared among all pooled clients&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3514&quot;&gt;&lt;del&gt;CDRIVER-3514&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/2baa45ca752ffadd57ed8ea167fbe633db7e044a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/2baa45ca752ffadd57ed8ea167fbe633db7e044a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5773628" author="xgen-internal-githook" created="Thu, 12 Oct 2023 14:40:40 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kyle Kloberdanz&apos;, &apos;email&apos;: &apos;kyle.kloberdanz@mongodb.com&apos;, &apos;username&apos;: &apos;kkloberdanz&apos;}
&lt;p&gt;Message: Share SCRAM cache via a global lookup table (#1406)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3514&quot; title=&quot;SCRAM cache should be shared among all pooled clients&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3514&quot;&gt;&lt;del&gt;CDRIVER-3514&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Share SCRAM cache via a global lookup table&lt;/li&gt;
	&lt;li&gt;Suppress pre-existing race condition&lt;/li&gt;
	&lt;li&gt;Fix pre-existing memory leak&lt;/li&gt;
	&lt;li&gt;Add test for scram cache invalidation&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;---------&lt;/p&gt;

&lt;p&gt;Co-authored-by: Kevin Albertson &amp;lt;kevin.albertson@10gen.com&amp;gt;&lt;br/&gt;
Co-authored-by: Adrian Dole &amp;lt;donald@dole.tech&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/84d9d8f5da9ded04d8d2ef9836373679bf8119fb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/84d9d8f5da9ded04d8d2ef9836373679bf8119fb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5629414" author="JIRAUSER1273938" created="Fri, 11 Aug 2023 17:35:08 +0000"  >&lt;p&gt;I was unable to complete this ticket before my internship ended. Here is all of the progress I was able to make with an explanation and my thoughts on the next steps: &lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/pull/1375&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/pull/1375&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5621722" author="JIRAUSER1273938" created="Tue, 8 Aug 2023 21:26:24 +0000"  >&lt;p&gt;Here is a simple project to test changes against a local install of the C driver in `mongo-c-driver/.install` (see `configure.sh`): &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/attachment/467945/467945_scram-cache-testing.zip&quot; title=&quot;scram-cache-testing.zip attached to CDRIVER-3514&quot;&gt;scram-cache-testing.zip&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.mongodb.org/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The steps to take to generate the FlameGraph are as follows:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Start a local MongoDB server. Here is the command I run as an example:&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;mlaunch init \&lt;br/&gt;
--replicaset --nodes=1 --name=rs0 --priority --enableMajorityReadConcern \&lt;br/&gt;
--hostname localhost --setParameter enableTestCommands=1 \&lt;br/&gt;
--binarypath ~/bin/mongodl/archive/7.0.0-rc5/mongodb-linux-aarch64-enterprise-ubuntu2204-7.0.0-rc5/bin/ \&lt;br/&gt;
--dir .menv&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; 2. `./configure.sh`, `./build.sh`&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; 3.&#160; `sudo perf record --call-graph fp ./test.sh`&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; 4.&#160; `sudo chmod +rx perf.data`&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; 5.&#160; `perf script | ./stackcollapse-perf.pl |./flamegraph.pl &amp;gt; perf.svg`&lt;/p&gt;

&lt;p&gt;You can then download `perf.svg` and open it in a browser to view. I attached what it looks like for me prior to any changes.&lt;/p&gt;</comment>
                            <comment id="5474509" author="JIRAUSER1271434" created="Mon, 5 Jun 2023 13:18:44 +0000"  >&lt;p&gt;This currently causes our performance tests with 10K threads to be bottlenecked on the client side. See PERF-4166 and this &lt;a href=&quot;https://mongodb.slack.com/archives/C0V2T72R2/p1685967162601799&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Slack thread&lt;/a&gt; for details.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="467946" name="perf.svg" size="204296" author="josh.siegel@mongodb.com" created="Tue, 8 Aug 2023 21:26:44 +0000"/>
                            <attachment id="467945" name="scram-cache-testing.zip" size="20394" author="josh.siegel@mongodb.com" created="Tue, 8 Aug 2023 21:22:48 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <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>CDRIVER-4575</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY24Q3</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hwb3a7:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>