<!-- 
RSS generated by JIRA (5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9) at Tue May 21 09:48:00 CDT 2013

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 add field=key&field=summary to the URL of your request.
For example:
http://www.couchbase.com/issues/si/jira.issueviews:issue-xml/MB-7053/MB-7053.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Couchbase</title>
    <link>http://www.couchbase.com/issues</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>5.2.4</version>
        <build-number>845</build-number>
        <build-date>26-12-2012</build-date>
    </build-info>

<item>
            <title>[MB-7053] Expired items are not excluded from production/dev views until expiry pager runs ( which deletes the items from database permanently )</title>
                <link>http://www.couchbase.com/issues/browse/MB-7053</link>
                <project id="10010" key="MB">Couchbase Server</project>
                        <description>&lt;br/&gt;
Expired items are not excluded from production/dev views. This happens only after the item is &amp;quot;get&amp;quot;. &lt;br/&gt;
&lt;br/&gt;
Steps to reproduce:&lt;br/&gt;
&lt;br/&gt;
1. Create default bucket and create 1 production view&lt;br/&gt;
curl -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://Administrator:&quot;&gt;http://Administrator:&lt;/a&gt;&lt;a href=&apos;mailto:asdasd@127.0.0.1&apos;&gt;asdasd@127.0.0.1&lt;/a&gt;:9500/default/_design/d1&amp;#39; -d &amp;#39;{&amp;quot;views&amp;quot;:{&amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,doc);\n}&amp;quot;}}}&amp;#39;&lt;br/&gt;
{&amp;quot;ok&amp;quot;:true,&amp;quot;id&amp;quot;:&amp;quot;_design/d1&amp;quot;}&lt;br/&gt;
&lt;br/&gt;
2. Insert 2 items from memcached client with expiry set to 5 seconds&lt;br/&gt;
&lt;br/&gt;
&amp;gt;&amp;gt;&amp;gt; import mc_bin_client&lt;br/&gt;
&amp;gt;&amp;gt;&amp;gt; mc = mc_bin_client.MemcachedClient(port=12001)&lt;br/&gt;
&amp;gt;&amp;gt;&amp;gt; mc.set(&amp;quot;ab&amp;quot;, 5, 0, &amp;quot;val&amp;quot;)&lt;br/&gt;
(3306888435, 7973028514358, &amp;#39;&amp;#39;)&lt;br/&gt;
&amp;gt;&amp;gt;&amp;gt; mc.set(&amp;quot;ab1&amp;quot;, 5, 0, &amp;quot;val&amp;quot;)&lt;br/&gt;
(2896330942, 7997559610975, &amp;#39;&amp;#39;)&lt;br/&gt;
&lt;br/&gt;
3. Query the view with stale=false to build the index&lt;br/&gt;
curl -X GET &amp;#39;&lt;a href=&quot;http://127.0.0.1:9500/default/_design/d1/_view/v1?stale=false&amp;#39;&quot;&gt;http://127.0.0.1:9500/default/_design/d1/_view/v1?stale=false&amp;amp;#39;&lt;/a&gt;&lt;br/&gt;
{&amp;quot;total_rows&amp;quot;:2,&amp;quot;rows&amp;quot;:[&lt;br/&gt;
{&amp;quot;id&amp;quot;:&amp;quot;ab&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;ab&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;dmFs&amp;quot;},&lt;br/&gt;
{&amp;quot;id&amp;quot;:&amp;quot;ab1&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;ab1&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;dmFs&amp;quot;}&lt;br/&gt;
]&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
4. Query the view after couple of minutes and expired items are still returned&lt;br/&gt;
curl -X GET &amp;#39;&lt;a href=&quot;http://127.0.0.1:9500/default/_design/d1/_view/v1?stale=false&amp;#39;&quot;&gt;http://127.0.0.1:9500/default/_design/d1/_view/v1?stale=false&amp;amp;#39;&lt;/a&gt;&lt;br/&gt;
{&amp;quot;total_rows&amp;quot;:2,&amp;quot;rows&amp;quot;:[&lt;br/&gt;
{&amp;quot;id&amp;quot;:&amp;quot;ab&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;ab&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;dmFs&amp;quot;},&lt;br/&gt;
{&amp;quot;id&amp;quot;:&amp;quot;ab1&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;ab1&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;dmFs&amp;quot;}&lt;br/&gt;
]&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
If memcached get is used with these items, then these are excluded from the views. Otherwise these are always returned in view results.&lt;br/&gt;
&lt;br/&gt;
Diagnostic is attached. &lt;br/&gt;
&lt;br/&gt;
Checked with Mike on this and ep-engine seems to be doing things correctly:&lt;br/&gt;
&lt;br/&gt;
&amp;quot;This does look like an issue, but not in the ep-engine side. Since ep-engine might take an hour to actually remove an expired item, it should be up to the view engine to filter out any expired items too. The reaon why doing a get will cause the item to disappear from the view results is that ep-engine will actually do the deletion.&amp;quot;</description>
                <environment>build 1908&lt;br/&gt;
&lt;br/&gt;
&amp;lt;manifest&amp;gt; &lt;br/&gt;
&amp;lt;remote name=&amp;quot;couchbase&amp;quot; fetch=&amp;quot;&lt;a href=&quot;git://github.com/couchbase/&quot;&gt;git://github.com/couchbase/&lt;/a&gt;&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;remote name=&amp;quot;membase&amp;quot; fetch=&amp;quot;&lt;a href=&quot;git://github.com/membase/&quot;&gt;git://github.com/membase/&lt;/a&gt;&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;remote name=&amp;quot;apache&amp;quot; fetch=&amp;quot;&lt;a href=&quot;git://github.com/apache/&quot;&gt;git://github.com/apache/&lt;/a&gt;&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;remote name=&amp;quot;erlang&amp;quot; fetch=&amp;quot;&lt;a href=&quot;git://github.com/erlang/&quot;&gt;git://github.com/erlang/&lt;/a&gt;&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;default remote=&amp;quot;couchbase&amp;quot; revision=&amp;quot;master&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;tlm&amp;quot; path=&amp;quot;tlm&amp;quot; revision=&amp;quot;23261639414808ce20ffc59508346db5efab6832&amp;quot;&amp;gt; &lt;br/&gt;
&amp;lt;copyfile src=&amp;quot;Makefile.top&amp;quot; dest=&amp;quot;Makefile&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;/project&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;bucket_engine&amp;quot; path=&amp;quot;bucket_engine&amp;quot; revision=&amp;quot;70b3624abc697b7d18bf3d57f331b7674544e1e7&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;ep-engine&amp;quot; path=&amp;quot;ep-engine&amp;quot; revision=&amp;quot;7dff0cf9ee1012382350b3e438682782e279c294&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;libconflate&amp;quot; path=&amp;quot;libconflate&amp;quot; revision=&amp;quot;2cc8eff8e77d497d9f03a30fafaecb85280535d6&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;libmemcached&amp;quot; path=&amp;quot;libmemcached&amp;quot; revision=&amp;quot;ca739a890349ac36dc79447e37da7caa9ae819f5&amp;quot; remote=&amp;quot;membase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;libvbucket&amp;quot; path=&amp;quot;libvbucket&amp;quot; revision=&amp;quot;00d3763593c116e8e5d97aa0b646c42885727398&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;membase-cli&amp;quot; path=&amp;quot;membase-cli&amp;quot; revision=&amp;quot;7fe4121e7e83952a4cb032e25a2cb9fca1709354&amp;quot; remote=&amp;quot;membase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;memcached&amp;quot; path=&amp;quot;memcached&amp;quot; revision=&amp;quot;7ea975a93a0231393502af4ca98976eee8a83386&amp;quot; remote=&amp;quot;membase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;moxi&amp;quot; path=&amp;quot;moxi&amp;quot; revision=&amp;quot;52a5fa887bfff0bf719c4ee5f29634dd8707500e&amp;quot;/&amp;gt;&lt;br/&gt;
&amp;lt;project name=&amp;quot;ns_server&amp;quot; path=&amp;quot;ns_server&amp;quot; revision=&amp;quot;c5dab8c2fe5144517b50b4500b4ddcaa9432c517&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;portsigar&amp;quot; path=&amp;quot;portsigar&amp;quot; revision=&amp;quot;1bc865e1622fb93a3fe0d1a4cdf18eb97ed9d600&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;sigar&amp;quot; path=&amp;quot;sigar&amp;quot; revision=&amp;quot;63a3cd1b316d2d4aa6dd31ce8fc66101b983e0b0&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;couchbase-examples&amp;quot; path=&amp;quot;couchbase-examples&amp;quot; revision=&amp;quot;21e6161a1d064979b5c6aa99cd34ccc41c9d7aca&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;couchbase-python-client&amp;quot; path=&amp;quot;couchbase-python-client&amp;quot; revision=&amp;quot;006c1aa8b76f6bce11109af8a309133b57079c4c&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;couchdb&amp;quot; path=&amp;quot;couchdb&amp;quot; revision=&amp;quot;1a5f6290bc21a37a4eb3bf4be75f4e5c995e05cf&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;couchdbx-app&amp;quot; path=&amp;quot;couchdbx-app&amp;quot; revision=&amp;quot;a28314c04c9d89da861b400ff37eae1fdaa693f8&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;couchstore&amp;quot; path=&amp;quot;couchstore&amp;quot; revision=&amp;quot;d0e70d0dece8e4f4d0a782f4ac5452509fb3919b&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;geocouch&amp;quot; path=&amp;quot;geocouch&amp;quot; revision=&amp;quot;849d5443689b1924f097548af864c539bffcc929&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;mccouch&amp;quot; path=&amp;quot;mccouch&amp;quot; revision=&amp;quot;88701cc326bc3dde4ed072bb8441be83adcfb2a5&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;testrunner&amp;quot; path=&amp;quot;testrunner&amp;quot; revision=&amp;quot;78474c34f4bbb457507a0323af4a638db88f05b5&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;otp&amp;quot; path=&amp;quot;otp&amp;quot; revision=&amp;quot;b6dc1a844eab061d0a7153d46e7e68296f15a504&amp;quot; remote=&amp;quot;erlang&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;icu4c&amp;quot; path=&amp;quot;icu4c&amp;quot; revision=&amp;quot;26359393672c378f41f2103a8699c4357c894be7&amp;quot; remote=&amp;quot;couchbase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;snappy&amp;quot; path=&amp;quot;snappy&amp;quot; revision=&amp;quot;5681dde156e9d07adbeeab79666c9a9d7a10ec95&amp;quot; remote=&amp;quot;couchbase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;v8&amp;quot; path=&amp;quot;v8&amp;quot; revision=&amp;quot;447decb75060a106131ab4de934bcc374648e7f2&amp;quot; remote=&amp;quot;couchbase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;gperftools&amp;quot; path=&amp;quot;gperftools&amp;quot; revision=&amp;quot;8f60ba949fb8576c530ef4be148bff97106ddc59&amp;quot; remote=&amp;quot;couchbase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;project name=&amp;quot;pysqlite&amp;quot; path=&amp;quot;pysqlite&amp;quot; revision=&amp;quot;0ff6e32ea05037fddef1eb41a648f2a2141009ea&amp;quot; remote=&amp;quot;couchbase&amp;quot;/&amp;gt; &lt;br/&gt;
&amp;lt;/manifest&amp;gt;</environment>
            <key id="20473">MB-7053</key>
            <summary>Expired items are not excluded from production/dev views until expiry pager runs ( which deletes the items from database permanently )</summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="1" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/blocker.png">Blocker</priority>
                    <status id="6" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/closed.png">Closed</status>
                    <resolution id="1">Fixed</resolution>
                    <security id="10011">Public</security>
                        <assignee username="mccouch">MC Brown</assignee>
                                <reporter username="deepkaran.salooja">Deepkaran Salooja</reporter>
                        <labels>
                        <label>2.0-release-notes</label>
                    </labels>
                <created>Tue, 30 Oct 2012 03:46:56 -0500</created>
                <updated>Mon, 8 Apr 2013 06:52:57 -0500</updated>
                    <resolved>Wed, 21 Nov 2012 09:53:39 -0600</resolved>
                                            <fixVersion>2.0</fixVersion>
                                <component>documentation</component>
                                <votes>0</votes>
                        <watches>3</watches>
                                                    <comments>
                    <comment id="42832" author="FilipeManana" created="Tue, 30 Oct 2012 04:00:50 -0500"  >Won&amp;#39;t work unless the docs are deleted from the vbucket databases.&lt;br/&gt;
&lt;br/&gt;
See:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://hub.internal.couchbase.com/confluence/display/QA/Debugging+view+engine+issues+and+reporting+them#Debuggingviewengineissuesandreportingthem-section5&quot;&gt;http://hub.internal.couchbase.com/confluence/display/QA/Debugging+view+engine+issues+and+reporting+them#Debuggingviewengineissuesandreportingthem-section5&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Simply doesn&amp;#39;t work for several architectural reasons.&lt;br/&gt;
See the discussion there.</comment>
                    <comment id="42937" author="dipti" created="Wed, 31 Oct 2012 08:18:07 -0500"  >At least a client side solution needs to be put in. </comment>
                    <comment id="42938" author="deepkaran.salooja" created="Wed, 31 Oct 2012 08:34:24 -0500"  >Another user on the forum facing same issue:&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/forums/thread/expired-items-still-appear-document-list&quot;&gt;http://www.couchbase.com/forums/thread/expired-items-still-appear-document-list&lt;/a&gt;</comment>
                    <comment id="42939" author="deepkaran.salooja" created="Wed, 31 Oct 2012 08:39:58 -0500"  >Copying full email conversation with Mike on this.&lt;br/&gt;
&lt;br/&gt;
On Oct 29, 2012, at 11:56 AM, Mike Wiederhold &amp;lt;&lt;a href=&apos;mailto:mike@couchbase.com&apos;&gt;mike@couchbase.com&lt;/a&gt;&amp;gt; wrote:&lt;br/&gt;
&lt;br/&gt;
Yes, that&amp;#39;s what I would expect.&lt;br/&gt;
&lt;br/&gt;
- Mike&lt;br/&gt;
&lt;br/&gt;
On Oct 29, 2012, at 11:53 AM, Farshid Ghods wrote:&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
okay in that case view index should be updated and stale=false query should pick that up&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
On Oct 29, 2012, at 11:46 AM, Mike Wiederhold &amp;lt;&lt;a href=&apos;mailto:mike@couchbase.com&apos;&gt;mike@couchbase.com&lt;/a&gt;&amp;gt; wrote:&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
Yes expiration time is updated on disk by ep-engine.&lt;br/&gt;
&lt;br/&gt;
- Mike&lt;br/&gt;
&lt;br/&gt;
On Oct 29, 2012, at 11:44 AM, Farshid Ghods wrote:&lt;br/&gt;
&lt;br/&gt;
Mike,&lt;br/&gt;
&lt;br/&gt;
does ep-engine update the expiration time on for this key on the disk ?&lt;br/&gt;
if so then view-engine can skip this item when generating the results i guess&lt;br/&gt;
&lt;br/&gt;
-Farshid&lt;br/&gt;
&lt;br/&gt;
On Oct 29, 2012, at 11:41 AM, Mike Wiederhold &amp;lt;&lt;a href=&apos;mailto:mike@couchbase.com&apos;&gt;mike@couchbase.com&lt;/a&gt;&amp;gt; wrote:&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
This does look like an issue, but not in the ep-engine side. Since ep-engine might take an hour to actually remove an expired item, it should be up to the view engine to filter out any expired items too. The reaon why doing a get will cause the item to disappear from the view results is that ep-engine will actually do the deletion.&lt;br/&gt;
&lt;br/&gt;
- Mike&lt;br/&gt;
</comment>
                    <comment id="42940" author="farshid" created="Wed, 31 Oct 2012 08:44:26 -0500"  >One thing i am not quite sure about ep-engine behavior is whether the disk is updated before expiry pager runs ?&lt;br/&gt;
&lt;br/&gt;
Yaseen,&lt;br/&gt;
can we confirm this with ep-engine folks or ideally if there is a spec about how ep-engine handles expirations before/after expiry pager runs</comment>
                    <comment id="42941" author="farshid" created="Wed, 31 Oct 2012 08:49:34 -0500"  >Dipti/Yaseen,&lt;br/&gt;
&lt;br/&gt;
this is a change that can be addressed post 2.0 instead of changing the view-engine or ep-engine at this stage , and i agree that it is confusing for the users so maybe we can simply change how often expiry pager runs if they want faster updates ?</comment>
                    <comment id="42942" author="farshid" created="Wed, 31 Oct 2012 08:55:31 -0500"  >Dipti/Yaseen&lt;br/&gt;
&lt;br/&gt;
Filipe has also explained the options in more details here as why skipping results in the time of reduction or view results wont work. so this bug is basically a duplicate.&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://www.couchbase.com/issues/browse/MB-6219?focusedCommentId=36489&amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36489&quot;&gt;http://www.couchbase.com/issues/browse/MB-6219?focusedCommentId=36489&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-36489&lt;/a&gt;</comment>
                    <comment id="43084" author="steve" created="Thu, 1 Nov 2012 16:41:29 -0500"  >options...&lt;br/&gt;
&lt;br/&gt;
* idea from Damien (might repeat something Filipe had on &lt;a href=&quot;http://www.couchbase.com/issues/browse/MB-6219&quot; title=&quot;items are not marked as deleted/expired in couchstore after they expire (View query results with stale=false include expired items)&quot;&gt;&lt;strike&gt;MB-6219&lt;/strike&gt;&lt;/a&gt;?): track expiration time in secondary index.&lt;br/&gt;
&lt;br/&gt;
* run expiry pager more often - this scans entire hashtable, locking each hashtable partition at a time.  This only reduces the window of the issue, but doesn&amp;#39;t fundamentally solve the issue.  Ask some customers set their expiry pager more often (e.g., once every 10 minutes for small/medium cluster).&lt;br/&gt;
</comment>
                    <comment id="43144" author="steve" created="Fri, 2 Nov 2012 13:31:20 -0500"  >For 2.0, options discussed in bug-scrub...&lt;br/&gt;
&lt;br/&gt;
Recommend to impacted customers to run expiry pager more often -- e.g., once every 10 minutes for small/medium clusters.  This can help mitigate the inconsistency (but not fully solve) the issue.  Running expiry pager more often also might have disk I/O impact / tradeoff, where it would actually write deletes to disk.  User should also be aware of expiry pager in tradeoff with all the other dispatcher / tasks.&lt;br/&gt;
&lt;br/&gt;
Frank, Dipti, Yaseen to discuss today (2012/11/02) outside of bug-scrub mtg and resolve.&lt;br/&gt;
</comment>
                    <comment id="43224" author="FilipeManana" created="Mon, 5 Nov 2012 06:49:47 -0600"  >Perhaps, I was not fully clear before.&lt;br/&gt;
&lt;br/&gt;
Tracking the expiration times in the indexes (values at the leaf nodes) would solve the issue for map view queries. True.&lt;br/&gt;
However, we already have plenty of metadata tracked in the indexes (vbucket id for each value, 1024 bits/128 bytes bitmasks), that makes us lose some performance (deeper trees, smaller branching factor per tree node). At the moment, querying Apache CouchDB is faster than Couchbase Server (single node of course, to be fair).&lt;br/&gt;
&lt;br/&gt;
Now, for reduce views... Excluding values that were contributed by now-expired documents, means going down to all the leaf nodes to find out which values come from expired documents and which ones come from non-expired documents - then grab all the values from non-expired documents, applying reduce function against those values, and going up to the tree applying re-reduces until reaching the root. In other words, we would be doing not better than a linear scan, and defeating the whole purpose of intermediary reductions/efficiency for which CouchDB trees are known for.&lt;br/&gt;
Basically doing this would, at the very best, give query response times of a few seconds (being very optimistic here) for any reasonably sized index (even less than than 1M items perhaps).&lt;br/&gt;
&lt;br/&gt;
</comment>
                    <comment id="44546" author="mccouch" created="Wed, 21 Nov 2012 09:53:32 -0600"  >The documentation has been updated at multiple points to highlight the inclusion of documents that may have expired, but not been fully deleted yet. </comment>
                    <comment id="45606" author="kzeller" created="Thu, 6 Dec 2012 16:42:43 -0600"  >Added to Release Notes as:&lt;br/&gt;
&lt;br/&gt;
Couchbase Server does lazy expiration, that is, expired items are flagged as&lt;br/&gt;
deleted rather than being immediately erased. Couchbase Server has&lt;br/&gt;
a maintenance process that will periodically look through all information and erase expired items. &lt;br/&gt;
This means expired items may still be indexed and appear in result sets of views. The workarounds &lt;br/&gt;
are available here &amp;lt;ulink url=&amp;quot;&lt;a href=&quot;http://www.couchbase.com/docs/couchbase-devguide-2.0/about-ttl-values.html&quot;&gt;http://www.couchbase.com/docs/couchbase-devguide-2.0/about-ttl-values.html&lt;/a&gt;&amp;quot;&amp;gt;&lt;br/&gt;
About Document Expiration&amp;lt;/ulink&amp;gt;.&lt;br/&gt;
&lt;br/&gt;
</comment>
                </comments>
                    <attachments>
                    <attachment id="15633" name="127.0.0.1-9000-diag.txt.gz" size="140028" author="deepkaran.salooja" created="Tue, 30 Oct 2012 03:46:56 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                        <customfield id="customfield_10180" key="com.atlassian.jira.ext.charting:firstresponsedate">
                <customfieldname>Date of First Response</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>Tue, 30 Oct 2012 04:00:50 -0500</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>3625</customfieldvalue>
                </customfieldvalues>
            </customfield>
                                                                                                                                                                                        <customfield id="customfield_10181" key="com.atlassian.jira.ext.charting:timeinstatus">
                <customfieldname>Time In Status</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                </customfields>
    </item>
</channel>
</rss>