<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:24:38 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-2062] Modify GridFS spec to support sessions, transactions and causal consistency</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2062</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;Server 3.6 is introducing sessions and causal consistency.&lt;/p&gt;

&lt;p&gt;Update the GridFS spec to address these new features.&lt;/p&gt;</description>
                <environment></environment>
        <key id="422025">DRIVERS-2062</key>
            <summary>Modify GridFS spec to support sessions, transactions and causal consistency</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="robert@mongodb.com">Robert Stam</reporter>
                        <labels>
                    </labels>
                <created>Wed, 30 Aug 2017 20:18:22 +0000</created>
                <updated>Fri, 24 Mar 2023 14:41:50 +0000</updated>
                                                                <component>GridFS</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="3046792" author="david.golden" created="Mon, 20 Apr 2020 11:45:42 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=renato.riccio&quot; class=&quot;user-hover&quot; rel=&quot;renato.riccio&quot;&gt;renato.riccio&lt;/a&gt;, Scott has left the company and I&apos;m no longer on the driver&apos;s team (same with Jesse).&#160; &#160;That said, yes, it will be possible.&#160; IIRC, the problem now is that because GridFS makes multiple secondary reads, they could hit different secondaries with the file in different states of replication.&#160; Causal consistency would ensure that a read that finds the GridFS file document will also find all chunks in secondary reads, even if targeting different secondaries.&#160; A read transaction, would, I think, do the same, but depending on the size of the file, might run into transaction duration limits &#8211; I&apos;m not sure on the current state of those for large transactions.&lt;/p&gt;</comment>
                            <comment id="3046700" author="renato.riccio" created="Mon, 20 Apr 2020 08:57:43 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=david.golden&quot; class=&quot;user-hover&quot; rel=&quot;david.golden&quot;&gt;david.golden&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=scott.lhommedieu&quot; class=&quot;user-hover&quot; rel=&quot;scott.lhommedieu&quot;&gt;scott.lhommedieu&lt;/a&gt; Would this allow support for read from secondary in a shared cluster?&lt;/p&gt;</comment>
                            <comment id="2254276" author="scott.lhommedieu" created="Tue, 21 May 2019 16:02:33 +0000"  >&lt;p&gt;I&apos;d look to 4.4 for this.  &lt;/p&gt;</comment>
                            <comment id="2253639" author="david.golden" created="Tue, 21 May 2019 02:48:41 +0000"  >&lt;p&gt;I&apos;ve closed SPEC-1235 and updated the title to include transactions as well because I don&apos;t think we&apos;d implement sessions and not transactions.&lt;/p&gt;</comment>
                            <comment id="2253637" author="david.golden" created="Tue, 21 May 2019 02:43:29 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=scott.lhommedieu&quot; class=&quot;user-hover&quot; rel=&quot;scott.lhommedieu&quot;&gt;scott.lhommedieu&lt;/a&gt;, is this something we should reconsider for 4.2/4.4 given large transaction support?&lt;/p&gt;</comment>
                            <comment id="1878061" author="jesse" created="Mon, 30 Apr 2018 16:46:41 +0000"  >&lt;p&gt;When we eventually do this, part of the value will be that GridFS can safely read files from secondaries if we enable Causal Consistency: by the time the file record is visible we know all chunks are replicated.&lt;/p&gt;</comment>
                            <comment id="1878009" author="behackett" created="Mon, 30 Apr 2018 16:12:45 +0000"  >&lt;p&gt;After discussion with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=schwerin&quot; class=&quot;user-hover&quot; rel=&quot;schwerin&quot;&gt;schwerin&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jesse&quot; class=&quot;user-hover&quot; rel=&quot;jesse&quot;&gt;jesse&lt;/a&gt;, and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=shane.harvey&quot; class=&quot;user-hover&quot; rel=&quot;shane.harvey&quot;&gt;shane.harvey&lt;/a&gt;, I&apos;m removing this from 4.0. Transactions shouldn&apos;t be supported in GridFS (not yet at least), so there is no pressing need to do this work.&lt;/p&gt;</comment>
                            <comment id="1666277" author="behackett" created="Wed, 6 Sep 2017 22:23:20 +0000"  >&lt;p&gt;In particular, this section will have to be updated to deal with sessions:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst#generic-find-on-files-collection&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst#generic-find-on-files-collection&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In some drivers (e.g PyMongo), each &quot;file&quot; returned by the cursor is backed by another cursor, and those cursors can&apos;t share a session, especially if they are being consumed in multiple threads.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="490360">PHPLIB-320</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1584684">CXX-2150</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="586288">DRIVERS-559</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="2271033">JAVA-4890</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="450179">CDRIVER-2332</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="772709">DRIVERS-2110</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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_23952" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Driver Compliance</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<style type='text/css'>
         #scriptField, #scriptField *{
                border: 1px solid black;
            }

            #scriptField{
                border-collapse: collapse;
            }

            #scriptField td {
                text-align: center; /* Center-align text in table cells */
            }

            #scriptField td.key {
                text-align: left; /* Left-align text in the Key column */
            }

            #scriptField a {
                text-decoration: none; /* Remove underlines from links */
                border: none; /* Remove border from links */
            }
            
            /* Add green background color to cells with FixVersion */
            #scriptField td.hasFixVersion {
                background-color: #00FF00; /* Green color code */
            }

            /* Center-align the first row headers */
            #scriptField th {
                text-align: center;
            }
        </style>
<table id='scriptField'>
  <tr>
    <th>Key</th>
    <th>Status/Resolution</th>
    <th>FixVersion</th>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PERL-1025'>PERL-1025</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>2.2.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-4890'>JAVA-4890</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY24Q2</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsebyn:</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>