<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:53:24 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-211] TTL collections</title>
                <link>https://jira.mongodb.org/browse/SERVER-211</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;For each collection have a filter such that any document matching that filter is deleted.&lt;/p&gt;

&lt;p&gt;This is not for capped collections, but regular collections.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10397">SERVER-211</key>
            <summary>TTL collections</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</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="eliot">Eliot Horowitz</assignee>
                                    <reporter username="mike">Michael Dirolf</reporter>
                        <labels>
                            <label>rn</label>
                    </labels>
                <created>Wed, 5 Aug 2009 11:30:55 +0000</created>
                <updated>Tue, 12 Jul 2016 00:30:07 +0000</updated>
                            <resolved>Sun, 27 May 2012 23:39:26 +0000</resolved>
                                                    <fixVersion>2.1.2</fixVersion>
                                    <component>Usability</component>
                                        <votes>144</votes>
                                    <watches>116</watches>
                                                                                                                <comments>
                            <comment id="150777" author="auto" created="Mon, 6 Aug 2012 16:16:17 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;date&apos;: u&apos;2012-08-06T09:03:20-07:00&apos;, u&apos;email&apos;: u&apos;matulef@10gen.com&apos;, u&apos;name&apos;: u&apos;Kevin Matulef&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-211&quot; title=&quot;TTL collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-211&quot;&gt;&lt;del&gt;SERVER-211&lt;/del&gt;&lt;/a&gt; more tests for TTL collections&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0d89bf4b199ababfa63b72ef848146769cee81b4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0d89bf4b199ababfa63b72ef848146769cee81b4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="123485" author="eliot" created="Sun, 27 May 2012 23:40:18 +0000"  >&lt;p&gt;@pablo - background task is once a minute. once it deletes, its immediate&lt;/p&gt;</comment>
                            <comment id="122228" author="pablomolnar" created="Wed, 23 May 2012 09:17:18 +0000"  >&lt;p&gt;@Eliot what I mean is how much delay is expected to a time exceeded message to gets really deleted. In terms of seconds? milliseconds? thx &lt;/p&gt;</comment>
                            <comment id="121757" author="eliot" created="Tue, 22 May 2012 04:20:59 +0000"  >&lt;p&gt;@pablo - not sure what you mean&lt;/p&gt;</comment>
                            <comment id="121750" author="pablomolnar" created="Tue, 22 May 2012 03:38:39 +0000"  >&lt;p&gt;@Eliot, What is the expire accuracy expected?&lt;/p&gt;</comment>
                            <comment id="121746" author="hasantayyar" created="Tue, 22 May 2012 02:40:01 +0000"  >&lt;p&gt;This is the most usefull feature in redis.&lt;/p&gt;</comment>
                            <comment id="121672" author="eliot" created="Mon, 21 May 2012 21:42:32 +0000"  >&lt;p&gt;The reason why that may have failed are numerous, and I don&apos;t think this will be similar in performance.&lt;br/&gt;
For example, if you did that daily, and it hard to delete ~40M records, if may have been trying to do that in a single transaction, which is incredibly expensive.&lt;/p&gt;

&lt;p&gt;So this should work well for this.&lt;/p&gt;

&lt;p&gt;Remember, if you&apos;re using pure time data (like logs) you can use a capped collection.&lt;/p&gt;</comment>
                            <comment id="121669" author="joao_fonseca" created="Mon, 21 May 2012 21:38:02 +0000"  >&lt;p&gt;@Eliot - Of course you know how the engine will query and delete the olde records, so apologies in advance, I&apos;m just trying to understand how this TTL feature will be in terms of performance.&lt;/p&gt;

&lt;p&gt;I once built a system using a relational database - think of it as a massive log file, where you could make ad hoc queries based on some of the fields. The system was writing 600 records/second, about 2 million per hour, 50 million per day.&lt;/p&gt;

&lt;p&gt;Disk space was limited, so I had to delete data older than 15 days. Simple approach: &quot;DELETE * FROM my_table WHERE timestamp &amp;lt; ?&quot;, but try doing that in a table with 700 million records, being written at a rate of 600/sec...&lt;/p&gt;

&lt;p&gt;So, I was hoping for something a little more clever - space used by expired records would automatically be made available, without any background &quot;DELETE * FROM ...&quot; operations.&lt;/p&gt;

&lt;p&gt;Do you think your method will handle these kinds of numbers?&lt;/p&gt;

&lt;p&gt;Thanks for taking the time to clarify this.&lt;/p&gt;
</comment>
                            <comment id="121613" author="ammo" created="Mon, 21 May 2012 19:19:17 +0000"  >&lt;p&gt;@Eliot - Ok, I probably just don&apos;t understand how the system works well enough.  Sorry if I am off base here.  I had assumed that some sort of lock contention would happen if there is a cleaner thread constantly submitting delete queries into the same sharded collection that all my application threads are constantly writing into.&lt;/p&gt;</comment>
                            <comment id="121511" author="eliot" created="Mon, 21 May 2012 15:39:15 +0000"  >&lt;p&gt;@ammo - this works sharded as currently implemented with resources per mongod.&lt;br/&gt;
no mongos resources are used whatsoever for this.&lt;/p&gt;</comment>
                            <comment id="121493" author="ammo" created="Mon, 21 May 2012 15:12:51 +0000"  >&lt;p&gt;@Eliot -  I had the same expectation as Jo&#227;o. In the provided implementation, don&apos;t you incur the very same BTree operations when you run your &quot;what is expired&quot; query?  &lt;/p&gt;

&lt;p&gt;I had expected this would be some low level &quot;storage engine&quot; type functionality that would run independently on the mongod&apos;s.  It would not compete for resources in the mongos&apos; once this grows up into a sharded feature.  There must be something clever that can be done at steady state when the mongod&apos;s are essentially asked to write continuously by the application, and records expire at that same rate.  Using an entire mongod thread to remove records that you are about to overwrite does not seem optimal.&lt;/p&gt;</comment>
                            <comment id="121399" author="eliot" created="Mon, 21 May 2012 12:11:12 +0000"  >&lt;p&gt;@joao - I think the amount of work the system has to do is almost identical in both approaches.&lt;br/&gt;
For example, when you delete a document vs re-use.  The slow part is cleaning all the old index entries, which is exactly the same in both methods.&lt;br/&gt;
The only difference is that in yours, the document doesn&apos;t ever get put on the free-list, but in a high write system that doesn&apos;t matter much.&lt;/p&gt;

&lt;p&gt;To tell if something could be re-used efficiently, you&apos;d basically have to check the low end of the btree for every single write, which is actually slower than the free list.  &lt;/p&gt;</comment>
                            <comment id="121398" author="joao_fonseca" created="Mon, 21 May 2012 12:03:27 +0000"  >&lt;p&gt;The above implementation seems to be a simple background process continuously querying and deleting old records. For write intensive applications (as most mongoDB probably are) this can be inefficient. Are you sure that the process can delete data faster than the writers? The delete process may also compete for resources with the writers (when reading, and when deleting).&lt;/p&gt;

&lt;p&gt;I don&apos;t know much about the internals of your storage implementation, but in my head I was seeing this TTL collections issue implemented in the following way:&lt;br/&gt;
1. For each record stored on disk, there should be a fast, simple way of telling if it has expired.&lt;br/&gt;
2. When mongoDB is looking for somewhere to write new data, it treats expired records as free space, and overwrites the new information.&lt;/p&gt;

&lt;p&gt;With the above method, the TTL housekeeping would seamlessly be integrated into the system, even if writing massive amounts of data. Expired records automatically become free disk space, ready to be used.&lt;/p&gt;

</comment>
                            <comment id="120556" author="auto" created="Thu, 17 May 2012 15:39:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;erh&apos;, u&apos;name&apos;: u&apos;Eliot Horowitz&apos;, u&apos;email&apos;: u&apos;eliot@10gen.com&apos;}
&lt;p&gt;Message: don&apos;t try ttl work on secondaries &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-211&quot; title=&quot;TTL collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-211&quot;&gt;&lt;del&gt;SERVER-211&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/a60ef31c4981f49523908c7b237f2cba0b751814&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/a60ef31c4981f49523908c7b237f2cba0b751814&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="120548" author="kristina" created="Thu, 17 May 2012 15:24:35 +0000"  >&lt;p&gt;Seems to be running the monitor on secondaries, causing lots of errors on bb:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; m31001| Thu May 17 03:09:16 [TTLMonitor] assertion 13435 not master and slaveOk=false ns:bar.system.indexes query:{ expireAfterSeconds: { $exists: true } }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; m31001| Thu May 17 03:09:16 [TTLMonitor] { $err: &quot;not master and slaveOk=false&quot;, code: 13435 }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; m31001| Thu May 17 03:09:16 [TTLMonitor] ERROR: backgroundjob TTLMonitorerror: invalid parameter: expected an object ()&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; m31001| Thu May 17 03:09:16 ERROR: Client::shutdown not called: TTLMonitor&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="118490" author="auto" created="Fri, 11 May 2012 05:29:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;erh&apos;, u&apos;name&apos;: u&apos;Eliot Horowitz&apos;, u&apos;email&apos;: u&apos;eliot@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-211&quot; title=&quot;TTL collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-211&quot;&gt;&lt;del&gt;SERVER-211&lt;/del&gt;&lt;/a&gt; - simple ttl collections where we can expire based on age&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/25bdc679a0e559d64ec7f22b0468cf5b1671c4e7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/25bdc679a0e559d64ec7f22b0468cf5b1671c4e7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="114305" author="kayru" created="Fri, 27 Apr 2012 11:47:33 +0000"  >&lt;p&gt;@Eliot - that&apos;s what I thought &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/sad.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; Can you recommend a good way to do it, though? Our current solution is a nightly cron job.&lt;/p&gt;</comment>
                            <comment id="114246" author="bobpattersonjr" created="Fri, 27 Apr 2012 02:58:22 +0000"  >&lt;p&gt;When might this make it into a Development Release?&lt;/p&gt;</comment>
                            <comment id="114242" author="eliot" created="Fri, 27 Apr 2012 02:24:11 +0000"  >&lt;p&gt;@yuriy - basic ttl would not work with gridfs &lt;/p&gt;</comment>
                            <comment id="113516" author="kayru" created="Wed, 25 Apr 2012 12:15:53 +0000"  >&lt;p&gt;Would TTL collection feature work with GridFS? &lt;br/&gt;
Or, perhaps, there is already a recommended way of removing old entries from GridFS?&lt;/p&gt;</comment>
                            <comment id="108529" author="bobpattersonjr" created="Tue, 10 Apr 2012 22:04:20 +0000"  >&lt;p&gt;This would be great.  When could it actually get in a unstable branch at least?&lt;/p&gt;</comment>
                            <comment id="103137" author="isrsal" created="Fri, 23 Mar 2012 21:10:35 +0000"  >&lt;p&gt;+1 towards implementing this, especially TTL to replace memcached&lt;/p&gt;</comment>
                            <comment id="100921" author="chris.clarke@talis.com" created="Wed, 21 Mar 2012 12:52:57 +0000"  >&lt;p&gt;+1 towards implementing this on regular as well as capped collections&lt;/p&gt;</comment>
                            <comment id="96770" author="nagele@wildbit.com" created="Thu, 8 Mar 2012 15:16:40 +0000"  >&lt;p&gt;+1 &lt;/p&gt;

&lt;p&gt;This would solve a lot of problems for us since we constantly have to delete records.&lt;/p&gt;</comment>
                            <comment id="90740" author="vaninwagen" created="Wed, 22 Feb 2012 07:17:47 +0000"  >&lt;p&gt;Yeah, me too.&lt;br/&gt;
Please consider this feature for future releases.&lt;/p&gt;</comment>
                            <comment id="81511" author="harald" created="Sun, 22 Jan 2012 09:44:46 +0000"  >&lt;p&gt;i would love to have this, too. would simplify things a lot, if mongodb is used as session-storage.&lt;/p&gt;</comment>
                            <comment id="80506" author="travislaborde" created="Tue, 17 Jan 2012 20:10:32 +0000"  >&lt;p&gt;As I understand it this is like &quot;SETEX&quot; in Redis - another thing Mongo can do for us greatly simplifying our plans.  I agree with people above that this should be added to all collections, regardless of capped.&lt;/p&gt;</comment>
                            <comment id="65847" author="zephw" created="Thu, 10 Nov 2011 08:22:40 +0000"  >&lt;p&gt;Look forward to the TTL collection as well. This will make it possible to get rid of memcached.&lt;/p&gt;</comment>
                            <comment id="62911" author="ehevutov" created="Wed, 26 Oct 2011 21:26:37 +0000"  >&lt;p&gt;I&apos;m really looking forward to this from our telco standpoint. The Law of Large Numbers should work in our favor as to not allow us to exceed our drive space by attaching a reasonable TTL, since capped sharded collections are not available and won&apos;t be anytime soon. I&apos;ll be able to use TTL in my presentations to management as something MongoDB can do that other db&apos;s can&apos;t (save us programming time since one currently must make one delete for every insert once at a certain db size), as we look for a noSQL (no JOIN) solution to our large single table, high-insertion problem that still needs to be query-able. We&apos;re at the point where a vertical system has a NUMA issue with I/O, yet sharding currently doesn&apos;t allow capped collections. No other (free) database is close to such a horizontal solution that I&apos;m aware of.&lt;/p&gt;

&lt;p&gt;TTL and capped sharded collections would be something MongoDB would stand out in the market with.&lt;/p&gt;</comment>
                            <comment id="46058" author="zzr" created="Wed, 3 Aug 2011 09:48:24 +0000"  >&lt;p&gt;Any updates on this?&lt;br/&gt;
It really can simplify a lot our current architecture&lt;/p&gt;</comment>
                            <comment id="46055" author="mlazarov" created="Wed, 3 Aug 2011 09:42:09 +0000"  >&lt;p&gt;This feature would certainly be realy useful to be available  for normal collections. &lt;/p&gt;</comment>
                            <comment id="43468" author="axlfu" created="Wed, 20 Jul 2011 05:28:41 +0000"  >&lt;p&gt;the time shold be in first level?&lt;br/&gt;
If doc is { a:1, task:[&lt;/p&gt;
{ t : Date1 }
&lt;p&gt;,&lt;/p&gt;
{ t : Date2 }
&lt;p&gt;]}, then could not fit &lt;/p&gt;</comment>
                            <comment id="43462" author="leafduo" created="Wed, 20 Jul 2011 04:45:08 +0000"  >&lt;p&gt;Would be great if we can set expiry time in standard collections.&lt;/p&gt;</comment>
                            <comment id="23045" author="maimonoded" created="Thu, 3 Feb 2011 09:46:52 +0000"  >&lt;p&gt;would be great for normal collections. capped collection is nice but not shardable + if used in capped collection it want be really possible to use this feature for session store..&lt;/p&gt;</comment>
                            <comment id="22614" author="rama" created="Mon, 24 Jan 2011 00:45:29 +0000"  >&lt;p&gt;Would be a perfect fit for what I&apos;m trying to do: capture log records for the previous N minutes. &lt;/p&gt;</comment>
                            <comment id="21449" author="jsmestad" created="Wed, 15 Dec 2010 17:25:36 +0000"  >&lt;p&gt;This is a really powerful feature for anyone doing analytics. +1&lt;/p&gt;</comment>
                            <comment id="20328" author="underhillt" created="Mon, 15 Nov 2010 18:54:39 +0000"  >&lt;p&gt;This feature would certainly be useful for normal collections.&lt;/p&gt;</comment>
                            <comment id="15350" author="eliot" created="Fri, 2 Jul 2010 20:55:41 +0000"  >&lt;p&gt;@tim not really appropriate i think.  easier just to do a separate implementation&lt;/p&gt;</comment>
                            <comment id="15349" author="tshawkins" created="Fri, 2 Jul 2010 20:51:20 +0000"  >&lt;p&gt;Can this be a special case of a capped collection where if the current timestamp is greater than  the ($(&apos;_id&quot;).getTimeStamp() + (collection TTL constant value)) then find and findOne etc return false instead of the data in a document.  The caped collection mechanics would be responsible for flushing out the dead contents. &lt;/p&gt;

&lt;p&gt;This is not 100% the same as memcache,  as you would have to use a separate collection for each TTL, but its close enough. &lt;/p&gt;</comment>
                            <comment id="14658" author="cvillecsteele" created="Thu, 10 Jun 2010 10:23:50 +0000"  >&lt;p&gt;This issue is definitely rising in urgency for us.  Our production deployments would be much simplified if we could ditch memcache and use the collection expiry feature described here.  Please move this to &quot;things we&apos;re really QUITE SURE OF!&quot;  &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;&amp;#8211;&lt;br/&gt;
Colin Steele&lt;br/&gt;
CTO, hotelicopter.com&lt;/p&gt;</comment>
                            <comment id="12972" author="diman" created="Sun, 14 Mar 2010 18:08:18 +0000"  >&lt;p&gt;Am I right that this issue is about the auto-removal of &quot;expired&quot; objects from the collection?&lt;br/&gt;
If so, are there any plans of moving this feature from &quot;not sure of&quot; to the specific version, taking into account the number of votes for the issue? &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="10364" author="digitala" created="Thu, 6 Aug 2009 02:59:01 +0000"  >&lt;p&gt;I&apos;m not sure whether this should just be applied to capped collections - this would be useful in normal collections also. Thinking in terms of a twitter clone - you only want to keep documents (tweets) that are under two weeks old. After that you don&apos;t care what happens to them, as they&apos;re &quot;old&quot; and probably irrelevant. Capping it would mean some messages get kicked before they loose their relevancy, and under heavy write load would render the app useless.&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="38667">DOCS-204</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="14947">SERVER-2654</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="46146">SERVER-6700</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="46147">SERVER-6701</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>42.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 6 Aug 2009 02:59:01 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        11 years, 28 weeks, 2 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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            11 years, 28 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>ammo</customfieldvalue>
            <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>bobpattersonjr</customfieldvalue>
            <customfieldvalue>chris.clarke@talis.com</customfieldvalue>
            <customfieldvalue>nagele@wildbit.com</customfieldvalue>
            <customfieldvalue>cvillecsteele</customfieldvalue>
            <customfieldvalue>diman</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>axlfu</customfieldvalue>
            <customfieldvalue>harald</customfieldvalue>
            <customfieldvalue>hasantayyar</customfieldvalue>
            <customfieldvalue>zzr</customfieldvalue>
            <customfieldvalue>isrsal</customfieldvalue>
            <customfieldvalue>ehevutov</customfieldvalue>
            <customfieldvalue>joao_fonseca</customfieldvalue>
            <customfieldvalue>jsmestad</customfieldvalue>
            <customfieldvalue>leafduo</customfieldvalue>
            <customfieldvalue>kristina</customfieldvalue>
            <customfieldvalue>mlazarov</customfieldvalue>
            <customfieldvalue>vaninwagen</customfieldvalue>
            <customfieldvalue>mike</customfieldvalue>
            <customfieldvalue>maimonoded</customfieldvalue>
            <customfieldvalue>pablomolnar</customfieldvalue>
            <customfieldvalue>digitala</customfieldvalue>
            <customfieldvalue>rama</customfieldvalue>
            <customfieldvalue>underhillt</customfieldvalue>
            <customfieldvalue>tshawkins</customfieldvalue>
            <customfieldvalue>travislaborde</customfieldvalue>
            <customfieldvalue>kayru</customfieldvalue>
            <customfieldvalue>zephw</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpwvb:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9438</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_10166" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Tests Written</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10154"><![CDATA[Complete]]></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|hs2w2n:</customfieldvalue>

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