<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:18:35 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-3621] The topology description should be protected be a read-write lock instead of a mutex</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3621</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;The mutex on &lt;tt&gt;mongoc_topology_t&lt;/tt&gt; is locked and unlocked at a rather coarse level.&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;when reading or writing to the topology description&lt;/li&gt;
	&lt;li&gt;it remains locked for the duration of SRV polling&lt;/li&gt;
	&lt;li&gt;it is locked when accessing shared state of the &lt;tt&gt;mongoc_topology_scanner_t&lt;/tt&gt; (e.g. the cached cluster time)&lt;/li&gt;
	&lt;li&gt;it is locked when setting up a &lt;tt&gt;mongoc_topology_scanner_node_t&lt;/tt&gt;. Which means it remains locked during blocking DNS lookup.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;A potentially big problem with this is that application threads need to lock the topology mutex during server selection when reading the topology description.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3535&quot; title=&quot;Reduce Client Time To Recovery On Topology Changes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3535&quot;&gt;&lt;del&gt;CDRIVER-3535&lt;/del&gt;&lt;/a&gt; may reduce the situations where the topology lock is held. But a read-write lock still seems like a sensible improvement for the topology description. If a client is performing many operations, the topology description will be read much more than it is written too.&lt;/p&gt;

&lt;p&gt;Before making this change, let&apos;s validate with some form of benchmarking that this is really a point of contention that could be improved by a read-write lock.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1315124">CDRIVER-3621</key>
            <summary>The topology description should be protected be a read-write lock instead of a mutex</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13203">Gone away</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                    </labels>
                <created>Tue, 14 Apr 2020 22:53:42 +0000</created>
                <updated>Fri, 27 Oct 2023 19:50:20 +0000</updated>
                            <resolved>Mon, 24 Jan 2022 20:10:26 +0000</resolved>
                                                                    <component>SDAM</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="4290953" author="rachelle.palmer" created="Thu, 13 Jan 2022 15:47:38 +0000"  >&lt;p&gt;Asking for re-triage since &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4002&quot; title=&quot;Improve multi-threaded perf for mongoc_client_pool_t&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4002&quot;&gt;&lt;del&gt;CDRIVER-4002&lt;/del&gt;&lt;/a&gt; is now closed.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                    <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000wYQ4JQAW]]]></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>CDRIVER-3870</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6jkn:</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>