<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:41:04 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-16444] Avoid copying data out of WT buffers during tables scans</title>
                <link>https://jira.mongodb.org/browse/SERVER-16444</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description></description>
                <environment></environment>
        <key id="173056">SERVER-16444</key>
            <summary>Avoid copying data out of WT buffers during tables scans</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="9">Done</resolution>
                                        <assignee username="max.hirschhorn@mongodb.com">Max Hirschhorn</assignee>
                                    <reporter username="mathias@mongodb.com">Mathias Stearn</reporter>
                        <labels>
                    </labels>
                <created>Fri, 5 Dec 2014 23:47:06 +0000</created>
                <updated>Thu, 1 Oct 2015 20:09:16 +0000</updated>
                            <resolved>Tue, 25 Aug 2015 18:57:10 +0000</resolved>
                                                    <fixVersion>3.1.8</fixVersion>
                                    <component>Performance</component>
                    <component>Storage</component>
                                        <votes>1</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="1016493" author="xgen-internal-githook" created="Thu, 27 Aug 2015 23:22:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;visemet&apos;, u&apos;name&apos;: u&apos;Max Hirschhorn&apos;, u&apos;email&apos;: u&apos;max.hirschhorn@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; Only make BSONObj underlying WSM owned if not mmapv1.&lt;/p&gt;

&lt;p&gt;Resolves the performance regression with mmapv1 introduced by 764e0c4&lt;br/&gt;
where documents were being copied in PlanStages that perform&lt;br/&gt;
invalidations.&lt;/p&gt;

&lt;p&gt;Partially reverted changes to DeleteStage and UpdateStage because the&lt;br/&gt;
document to return is not guaranteed to be owned after&lt;br/&gt;
makeObjOwnedIfNeeded() is called when running with mmapv1.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/022cc024da1e4ff5664742befed0059c1ddfa255&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/022cc024da1e4ff5664742befed0059c1ddfa255&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1014229" author="xgen-internal-githook" created="Tue, 25 Aug 2015 18:55:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;visemet&apos;, u&apos;name&apos;: u&apos;Max Hirschhorn&apos;, u&apos;email&apos;: u&apos;max.hirschhorn@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; Add doc comment to updateWithDamages() function.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/559be68757f52d0a5f6e2c2622febea8acf80c35&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/559be68757f52d0a5f6e2c2622febea8acf80c35&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1013540" author="xgen-internal-githook" created="Tue, 25 Aug 2015 03:53:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;visemet&apos;, u&apos;name&apos;: u&apos;Max Hirschhorn&apos;, u&apos;email&apos;: u&apos;max.hirschhorn@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; Copy data in the query subsystem as needed.&lt;/p&gt;

&lt;p&gt;A WorkingSetMember in the LOC_AND_OBJ state must be made owned when:&lt;/p&gt;

&lt;p&gt;  1. Its WorkingSetID is cached across multiple calls to work().&lt;/p&gt;

&lt;p&gt;  2. Multiple calls to next(), seekExact(), saveState(), etc. are&lt;br/&gt;
     performed on the same WiredTiger cursor in a single work() call.&lt;/p&gt;

&lt;p&gt;No longer necessary to always copy data out of WiredTiger buffers.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/764e0c45471d5ca63c708f362be0e6d01ee72eb0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/764e0c45471d5ca63c708f362be0e6d01ee72eb0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1013539" author="xgen-internal-githook" created="Tue, 25 Aug 2015 03:53:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;visemet&apos;, u&apos;name&apos;: u&apos;Max Hirschhorn&apos;, u&apos;email&apos;: u&apos;max.hirschhorn@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; Change updateWithDamages() to return the updated data.&lt;/p&gt;

&lt;p&gt;Enable the UpdateStage to perform an in-place update regardless of&lt;br/&gt;
whether the data underlying the WorkingSetMember is an unowned BSONObj&lt;br/&gt;
or an owned BSONObj.&lt;/p&gt;

&lt;p&gt;Change updateWithDamagesSupported() to return true for the&lt;br/&gt;
inMemoryExperiment storage engine.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/564f8089c0d4541215d1aa31dae331115e68b95f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/564f8089c0d4541215d1aa31dae331115e68b95f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="953988" author="xgen-internal-githook" created="Mon, 29 Jun 2015 23:23:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-18912&quot; title=&quot;Fatal assertion (duplicate key error) when replicating insert on capped collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-18912&quot;&gt;&lt;del&gt;SERVER-18912&lt;/del&gt;&lt;/a&gt; Document and implement correct capped visibility rules&lt;/p&gt;

&lt;p&gt;Fixes a bug introduced by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; changes.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/40ddfd261f48ff20c649a6601ff19ed6b806332d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/40ddfd261f48ff20c649a6601ff19ed6b806332d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="951291" author="rassi@10gen.com" created="Thu, 25 Jun 2015 22:05:25 +0000"  >&lt;p&gt;Per discussion with Mathias, the work remaining on this ticket is:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Ensure that users of PlanExecutor (especially manual-yielding executors) don&apos;t rely on the integrity of unowned data between subsequent calls to getNext().&lt;/li&gt;
	&lt;li&gt;Ensure that PlanStages don&apos;t rely on the integrity of unowned data between subsequent calls to work().&lt;/li&gt;
	&lt;li&gt;Remove the calls to &quot;data.makeOwned()&quot; in WiredTigerRecordStore::Cursor::next() and WiredTigerRecordStore::Cursor::seekExact(), and briefly investigate performance improvement associated with doing so.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Tentatively assigning to &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=david.storch&quot; class=&quot;user-hover&quot; rel=&quot;david.storch&quot;&gt;david.storch&lt;/a&gt; for 3.1.6; let&apos;s finalize the scheduling of this during the planning meeting on Monday.&lt;/p&gt;</comment>
                            <comment id="935618" author="xgen-internal-githook" created="Tue, 9 Jun 2015 20:33:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; New API for navigating RecordStores&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3b731debe162706cbbfabd9578bbb57ab5a7a7d8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3b731debe162706cbbfabd9578bbb57ab5a7a7d8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="935617" author="xgen-internal-githook" created="Tue, 9 Jun 2015 20:33:43 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;RedBeard0531&apos;, u&apos;name&apos;: u&apos;Mathias Stearn&apos;, u&apos;email&apos;: u&apos;mathias@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-16444&quot; title=&quot;Avoid copying data out of WT buffers during tables scans&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-16444&quot;&gt;&lt;del&gt;SERVER-16444&lt;/del&gt;&lt;/a&gt; Rename Record class to MmapV1RecordHeader&lt;/p&gt;

&lt;p&gt;Better reflects it&apos;s purpose and avoids using the valuable name Record for an&lt;br/&gt;
MMAPv1-specific class.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f50d1d0b7df924926855badd3cd700653f75f0f8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f50d1d0b7df924926855badd3cd700653f75f0f8&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="207185">SERVER-18725</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="209837">SERVER-18912</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="227649">SERVER-20197</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="230568">SERVER-20512</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="169308">SERVER-16150</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10220">
                    <name>Tested</name>
                                            <outwardlinks description="tested by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 18 Dec 2014 03:29:45 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        8 years, 24 weeks, 6 days 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>david.storch@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 24 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>rassi</customfieldvalue>
            <customfieldvalue>mathias@mongodb.com</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrlh8n:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>151549</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="635">Quint Iteration 7</customfieldvalue>
    <customfieldvalue id="641">QuInt 8 08/28/15</customfieldvalue>

                        </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|hrkzhj:</customfieldvalue>

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