<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:25:18 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>[DRIVERS-2329] Require monitors to signal that the topology changed after every check</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2329</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-color: #21313c;border-style: solid;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;The server monitoring spec currently allows monitors to leave operations blocked in server selection after a check if the check did not change the topology. If drivers actually implement this, it can lead to undesirable behavior though:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Server A goes down with error&lt;/li&gt;
	&lt;li&gt;Operation comes in, fails server selection, requests a new check&lt;/li&gt;
	&lt;li&gt;Monitor for server A performs a check&lt;/li&gt;
	&lt;li&gt;Check fails with same error, doesn&apos;t notify topology changes&lt;/li&gt;
	&lt;li&gt;Operation remains blocked in server selection for heartbeatFrequencyMS or server selection timeout&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If monitors were to signal that the topology failed after every check, the operation would be unblocked, fail server selection again, and request a new check, allowing the topology to be rediscovered more quickly once it comes back up.&lt;/p&gt;

&lt;p&gt;Note that the requested requirement is already implicitly required to pass the test in DRIVERS-1251.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;

&lt;p&gt;End users.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;

&lt;p&gt;Operations can be blocked for a long time in the event of failover.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;

&lt;p&gt;If a driver does not adhere to the above requirement, it will happen any time failover occurs.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;

&lt;p&gt;In actual production cases where lots of operations are being fired off, it probably doesn&apos;t affect the user in practice. For use cases where only a few operations are being executed, it could cause blocking for 10s of seconds.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;

&lt;p&gt;It&apos;s possible that no drivers are affected by this, since otherwise users would likely complain. It&apos;s still good to update the spec so drivers don&apos;t accidentally have this issue.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;

&lt;p&gt;No&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;

&lt;p&gt;No&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2047430">DRIVERS-2329</key>
            <summary>Require monitors to signal that the topology changed after every check</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</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="neal.beeken@mongodb.com">Neal Beeken</assignee>
                                    <reporter username="patrick.freed@mongodb.com">Patrick Freed</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 May 2022 15:37:50 +0000</created>
                <updated>Mon, 27 Jun 2022 16:15:04 +0000</updated>
                            <resolved>Mon, 27 Jun 2022 16:15:04 +0000</resolved>
                                                        <component>SDAM</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="4642313" author="xgen-internal-githook" created="Mon, 27 Jun 2022 16:14:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Neal Beeken&apos;, &apos;email&apos;: &apos;neal.beeken@mongodb.com&apos;, &apos;username&apos;: &apos;nbbeeken&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2329&quot; title=&quot;Require monitors to signal that the topology changed after every check&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2329&quot;&gt;&lt;del&gt;DRIVERS-2329&lt;/del&gt;&lt;/a&gt;: remove optimization mention that no longer applies (#1263)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/3fea6cb177f20ce8426a1f00c852f297b20a96b1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/3fea6cb177f20ce8426a1f00c852f297b20a96b1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4560291" author="shane.harvey" created="Thu, 19 May 2022 17:58:30 +0000"  >&lt;p&gt;Is this essentially the same issue as &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-830&quot; title=&quot;Drivers must run SDAM flow even when server description is equal to the last one&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-830&quot;&gt;&lt;del&gt;DRIVERS-830&lt;/del&gt;&lt;/a&gt;? The spec already requires drivers to update the TopologyDescription on every check even if the ServerDescriptions are equal.&lt;/p&gt;</comment>
                            <comment id="4553211" author="patrick.freed" created="Tue, 17 May 2022 14:57:45 +0000"  >&lt;p&gt;Yeah, in that case there wouldn&apos;t be any need--I mostly had the polling protocol in mind with this ticket. That said, notifying the topology has changed when it actually hasn&apos;t should be low-cost, whereas not waking up sleeping operations for longer than necessary can be high cost, so maybe its worth the simplification.&lt;/p&gt;

&lt;p&gt;This ticket does still affect the streaming protocol, though only checks that create new monitoring connections, since those only happen every heartbeatFrequencyMS unless another check is requested.&lt;/p&gt;</comment>
                            <comment id="4552376" author="jeff.yemin" created="Tue, 17 May 2022 10:54:02 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=patrick.freed%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;patrick.freed@mongodb.com&quot;&gt;patrick.freed@mongodb.com&lt;/a&gt;, what if the check succeeds but the topology version is stale?  Currently the spec says that these sort of responses should be discarded without notifying.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </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_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10940"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0dwhk:</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>