<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:44:22 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-17419] Remove DBDirectClient class</title>
                <link>https://jira.mongodb.org/browse/SERVER-17419</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The DBDirectClient class is an implementation of DBClientBase that simply calls the server&apos;s message handling code.  It provides a unified API (the DBClientBase API) for performing &quot;sub-operations&quot;, and is often used as a simple way for a command implementation to perform some subtask.&lt;/p&gt;

&lt;p&gt;Use of DBDirectClient is generally considered harmful for a number of reasons, including that it:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Subverts the API of the subsystem being called into, and introduces a large number of dependencies for the calling subsystem&lt;/li&gt;
	&lt;li&gt;Introduces performance overhead through unnecessary message creation and message parsing&lt;/li&gt;
	&lt;li&gt;Prevents yielding of locks during execution of the sub-operation, when the calling operation is already holding a lock&lt;/li&gt;
	&lt;li&gt;Is hard for new developers to understand&lt;/li&gt;
	&lt;li&gt;Has (historically) been a reliable source of bugs&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As of version ~3.1.0 of the server, the following lists all current uses of DBDirectClient in the server.  They are roughly ordered in decreasing order of difficulty to remove.&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;V8Scope: provides connection objects for the eval command (e.g. the connection object associated with the &quot;db&quot; variable)&lt;/li&gt;
	&lt;li&gt;dbtests/: various uses for testing&lt;/li&gt;
	&lt;li&gt;Cloner: provides implementation of &quot;copydb&quot; within same host&lt;/li&gt;
	&lt;li&gt;MapReduceCommand: miscellaneous collection admin tasks (drop/count/renameCollection/splitVector), reading documents for reduce post-processing&lt;/li&gt;
	&lt;li&gt;DocumentSourceOut: agg $out miscellaneous collection admin tasks (create/listIndexes/createIndexes/renameCollection), inserting documents into $out collection&lt;/li&gt;
	&lt;li&gt;AuthzManagerExternalState: CRUD operations (with write concern) on &quot;system.users&quot; collection&lt;/li&gt;
	&lt;li&gt;DocumentSourceGeoNear: generates documents for $geoNear agg operator&lt;/li&gt;
	&lt;li&gt;Trivial uses in ApplyOpsCmd, CmdFileMD5, ReplSource, initOpTimeFromOplog(), checkIfReplMissingFromCommandLine()&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="186730">SERVER-17419</key>
            <summary>Remove DBDirectClient class</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="backlog-server-execution">Backlog - Storage Execution Team</assignee>
                                    <reporter username="rassi">J Rassi</reporter>
                        <labels>
                    </labels>
                <created>Sat, 28 Feb 2015 00:07:34 +0000</created>
                <updated>Tue, 6 Dec 2022 04:55:23 +0000</updated>
                            <resolved>Mon, 5 Jun 2017 17:27:03 +0000</resolved>
                                                                    <component>Internal Code</component>
                                        <votes>2</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="1588432" author="milkie" created="Tue, 6 Jun 2017 13:39:47 +0000"  >&lt;p&gt;I don&apos;t know of an existing ticket describing that work; please file one!&lt;/p&gt;</comment>
                            <comment id="1587991" author="spencer" created="Mon, 5 Jun 2017 22:47:29 +0000"  >&lt;p&gt;What about changing DBDirectClient to not go through the network and command execution layers, but instead plug directly into the storage API?  That would fix most of the problems with DBDirectClient.  Is there a ticket for that work?  I couldn&apos;t find one from a simple jira search.&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1587587" author="milkie" created="Mon, 5 Jun 2017 17:27:03 +0000"  >&lt;p&gt;Closing this for now, as we&apos;ve decided in the medium term not to pursue this.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1766282">SERVER-57358</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="391262">SERVER-29495</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="204997">SERVER-18545</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="82503">SERVER-10228</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 2 Mar 2015 15:35:26 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 36 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></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_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 36 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-execution</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>rassi</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrlbmv:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>164466</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_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|hsg853:</customfieldvalue>

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