<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:57:21 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-1558] Documents should write checksum on write, verify checksum on read</title>
                <link>https://jira.mongodb.org/browse/SERVER-1558</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In InnoDB, crc page checksums are written as dirty pages are flushed from the buffer pool.  On read, these checksums are verified.  If the checksum fails, the server crashes awaiting intervention (startup with --innodb-force-recovery=N).  At least for InnoDB, the cost is very little, since it takes microseconds around an operation that takes about milliseconds.  The storage cost is also minimal.&lt;/p&gt;

&lt;p&gt;This is very helpful in failure scenarios.  Check/repair in mongodb can currently only detect meta data corruption!&lt;/p&gt;</description>
                <environment>All platforms</environment>
        <key id="12646">SERVER-1558</key>
            <summary>Documents should write checksum on write, verify checksum on read</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="-1">Unassigned</assignee>
                                    <reporter username="morgo">Morgan Tocker</reporter>
                        <labels>
                    </labels>
                <created>Tue, 3 Aug 2010 16:34:18 +0000</created>
                <updated>Wed, 28 Oct 2015 04:26:17 +0000</updated>
                            <resolved>Sat, 14 Feb 2015 04:09:30 +0000</resolved>
                                                    <fixVersion>2.8.0-rc0</fixVersion>
                                    <component>Storage</component>
                                        <votes>17</votes>
                                    <watches>23</watches>
                                                                                                                <comments>
                            <comment id="829414" author="dan@10gen.com" created="Sat, 14 Feb 2015 04:09:30 +0000"  >&lt;p&gt;The WiredTiger storage engine as of v3.0 is configured by default to checksum blocks not otherwise protected by compression.  This mode is called &quot;uncompressed&quot;  &lt;br/&gt;
See the WiredTiger documentation: &lt;a href=&quot;http://source.wiredtiger.com/2.5.0/tune_checksum.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://source.wiredtiger.com/2.5.0/tune_checksum.html&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="16583" author="mgoetzke" created="Sat, 7 Aug 2010 17:24:07 +0000"  >&lt;p&gt;Drive issues are even more important for us than sudden crashes (those can at least be detected with a dirty flag etc). Silent corruption due to filesystem errors are more subtle. Our archiving solution archives data and documents and all documents are tested regularily for corruption (and if necessary restored and the raid marked). Typically the filesystem and the raids should take care of that but sometimes they don&apos;t and we need to be able to have another barrier there. &lt;/p&gt;

&lt;p&gt;If we had an automated checksum within mongodb we might even move our documents to mongo (we would have to test sharding perfomance first though).&lt;/p&gt;</comment>
                            <comment id="16580" author="eliot" created="Sat, 7 Aug 2010 17:06:37 +0000"  >&lt;p&gt;Single server durability in 1.8 will address that, but checksums might still be nice at some point for detecting drive errors, etc...&lt;/p&gt;</comment>
                            <comment id="16575" author="morgo" created="Sat, 7 Aug 2010 14:44:55 +0000"  >&lt;p&gt;True - the servers crashing itself part is optional.  In Percona Server with XtraDB (alternative MySQL distribution) there is an enhancement to relax this consistency so that if one table is corrupt, the server stays up. In the case of mongoDB it could try and retrieve those documents from another replica.&lt;/p&gt;

&lt;p&gt;What I am most concerned about currently, is that if I check/repair a mongoDB database there are a lot of silent corruptions it can not tell me about provided they don&apos;t fall on a meta data boundary.  For example: If inside a document I have long key which is just a sequence of A, i.e. &apos;AAAAAAA...&apos;. and perform an operation to change it to all &apos;BBBBBB....&apos;  and the server crashes during the operation, I could have 1/2 A and 1/2 B.  There will be no way to detect this corruption without a log or checksum.&lt;/p&gt;</comment>
                            <comment id="16570" author="mgoetzke" created="Sat, 7 Aug 2010 05:59:51 +0000"  >&lt;p&gt;The server should not crash though. That could be an option, it should rather report the corruption (e.g. via driver level). A corruption of a small number of documents should not disallow accessing the other entries, since in this scenario they are individually checked anyway. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="101980">TOOLS-1155</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="92364">SERVER-10997</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11721">SERVER-980</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="101970">SERVER-12058</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="101984">SERVER-12061</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="194202">SERVER-17892</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Sat, 7 Aug 2010 05:59:51 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        9 years, 4 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>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>dan@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            9 years, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>dan@mongodb.com</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>mgoetzke</customfieldvalue>
            <customfieldvalue>morgo</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpi1b:</customfieldvalue>

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

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

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