<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:23:20 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-1397] Retryable reads for Atlas Search</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-1397</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #c2d2c2;border-color: #cccccc;border-style: dashed;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelHeader&quot; style=&quot;border-bottom-width: 1px;border-bottom-style: dashed;border-bottom-color: #cccccc;background-color: #239eb0;&quot;&gt;&lt;b&gt;Epic Summary&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #c2d2c2;&quot;&gt;
&lt;p&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br/&gt;
 Drivers implement a special version of retryable reads with a new feature that tries a different node if there is an error&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br/&gt;
Customers who use Atlas Search have no ability to avoid user facing errors related to mongot failures or common Atlas maintenance activities such as node replacements. This feature will improve the user experience and adoption of Atlas Search since users will experience fewer errors.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;CastofCharacters&quot;&gt;&lt;/a&gt;Cast of Characters&lt;/h4&gt;

&lt;p&gt;Engineering Lead:&lt;br/&gt;
 Document Author: &lt;br/&gt;
 POCers: &lt;br/&gt;
 Product Owner: &lt;br/&gt;
 Program Manager: &lt;br/&gt;
 Stakeholders:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Atlas Search, Director of Engineering: &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=doug.tarr&quot; class=&quot;user-hover&quot; rel=&quot;doug.tarr&quot;&gt;doug.tarr&lt;/a&gt;&#160;&lt;/li&gt;
	&lt;li&gt;Atlas Search, Lead Engineer: &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kevin.rosendahl&quot; class=&quot;user-hover&quot; rel=&quot;kevin.rosendahl&quot;&gt;kevin.rosendahl&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Atlas Search, Product Manager: &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=marcus.eagan&quot; class=&quot;user-hover&quot; rel=&quot;marcus.eagan&quot;&gt;marcus.eagan&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;&lt;a name=&quot;Documentation&quot;&gt;&lt;/a&gt;Documentation&lt;/h4&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Scope Document|some.url&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;Technical Design Document|some.url&amp;#93;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="1475232">DRIVERS-1397</key>
            <summary>Retryable reads for Atlas Search</summary>
                <type id="11" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14707&amp;avatarType=issuetype">Epic</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10033" iconUrl="https://jira.mongodb.org/images/icons/statuses/information.png" description="Status for tickets that need to be escalated and unblocked on our team.">Blocked</status>
                    <statusCategory id="4" key="indeterminate" colorName="inprogress"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="james.akins">James Akins</reporter>
                        <labels>
                            <label>mongot-cross-team</label>
                    </labels>
                <created>Tue, 15 Sep 2020 17:27:56 +0000</created>
                <updated>Wed, 22 Sep 2021 20:31:16 +0000</updated>
                                                                <component>mongot</component>
                    <component>Retryability</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="3452560" author="JIRAUSER1254387" created="Mon, 19 Oct 2020 18:27:49 +0000"  >&lt;p&gt;A bit of business-minded context here:&lt;/p&gt;

&lt;p&gt;The lack of retryable reads for a feature used to query MongoDB for data contradicts some of our strongest selling points around MongoDB, like high availability and supporting development of micro services. The lack of retryable reads might make a company looking to adopt DevOps hesitant.&lt;/p&gt;

&lt;p&gt;Does anyone here have any thoughts about a meaningful work around?&lt;/p&gt;</comment>
                            <comment id="3395138" author="behackett" created="Tue, 15 Sep 2020 18:07:40 +0000"  >&lt;p&gt;Some notes on the technical problem.&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;When Atlas search is enabled every mongod has an associated mongot instance (even in a sharded cluster). Each mongot is an instance of Lucene.&lt;/li&gt;
	&lt;li&gt;Atlas search can be added to any existing deployment after the fact. Once you enable search it takes some time for a mongot instance to be added for each mongod and for the search indexes to be created.&lt;/li&gt;
	&lt;li&gt;A mongod can accept a search query even though its associated mongot isn&apos;t currently available (down, creating indexes, etc.). The query will fail in this case.&lt;/li&gt;
	&lt;li&gt;It is not acceptable to mark the mongod down/unknown if a search query fails. Applications generally only use search for a small subset of queries and other queries are expected to work without issue.&lt;/li&gt;
	&lt;li&gt;mongot health is not communicated through mongod, so there is nothing to monitor through ismaster/hello calls.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;After a number of potential solutions were discussed the only solution that seemed reasonable was for mongod to return a retryable error that specified the retry should happen on a different server. This seems like a change to SDAM, Server Selection, and Retryable Reads, and will require changes in mongos to implement new versions of those specs and mongod to communicate a new retryable error type..&lt;/p&gt;</comment>
                            <comment id="3395117" author="behackett" created="Tue, 15 Sep 2020 17:59:06 +0000"  >&lt;p&gt;+&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=rachelle.palmer&quot; class=&quot;user-hover&quot; rel=&quot;rachelle.palmer&quot;&gt;rachelle.palmer&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3395091" author="james.akins" created="Tue, 15 Sep 2020 17:45:04 +0000"  >&lt;p&gt;Note: the Atlas Search team would like the Drivers team to review this project for consideration for their FY21Q4 plan. In the meantime, please let us know if there are any questions we can help answer; thanks!&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;cc: &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=doug.tarr&quot; class=&quot;user-hover&quot; rel=&quot;doug.tarr&quot;&gt;doug.tarr&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kevin.rosendahl&quot; class=&quot;user-hover&quot; rel=&quot;kevin.rosendahl&quot;&gt;kevin.rosendahl&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=marcus.eagan&quot; class=&quot;user-hover&quot; rel=&quot;marcus.eagan&quot;&gt;marcus.eagan&lt;/a&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                            <outwardlinks description="has to be done before">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10748"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10860" key="com.pyxis.greenhopper.jira:gh-epic-color">
                        <customfieldname>Epic Colour</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ghx-label-2</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10858" key="com.pyxis.greenhopper.jira:gh-epic-label">
                        <customfieldname>Epic Name</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Retryable reads for Atlas Search</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10859" key="com.pyxis.greenhopper.jira:gh-epic-status">
                        <customfieldname>Epic Status</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10640"><![CDATA[To Do]]></customfieldvalue>

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