<!-- 
RSS generated by JIRA (5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9) at Tue May 21 01:07:07 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-6392/MB-6392.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-6392] Indexing 11 ddocs might push system into swap pretty quickly </title>
                <link>http://www.couchbase.com/issues/browse/MB-6392</link>
                <project id="10010" key="MB">Couchbase Server</project>
                        <description>1 bucket. &lt;br/&gt;
6 GB bucket, 8 gb system ram, &lt;br/&gt;
10M items&lt;br/&gt;
40% active and resident ratio. &lt;br/&gt;
&lt;br/&gt;
It seems like that indexing 11 ddocs with 2 views each, seems to push the system into swap, pretty fast. &lt;br/&gt;
Seeing this on 2.0 large cluster, with similar setup as well. &lt;br/&gt;
What are the bounds for 2.0 when someone wants to use indexes and upto how many?&lt;br/&gt;
&lt;br/&gt;
See the screenshot attached for what we are seeing, in the functional tests.&lt;br/&gt;
&lt;br/&gt;
Views:-&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d1&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.key_num);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,doc.key);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d2&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.name);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.key_num]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d3&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.email);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.name]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d4&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.city);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.email]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d5&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.country);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.city]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d6&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.realm);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.country]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d7&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.coins);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.realm]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d8&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.category);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.coins]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d9&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.achievements);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.category]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d10&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.body);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.achievements]);\n}&amp;quot;} }}&amp;#39;&lt;br/&gt;
curl -v -X PUT -H &amp;#39;Content-Type: application/json&amp;#39; &amp;#39;&lt;a href=&quot;http://saslbucket:&quot;&gt;http://saslbucket:&lt;/a&gt;&lt;a href=&apos;mailto:saslpass@localhost&apos;&gt;saslpass@localhost&lt;/a&gt;:8092/saslbucket/_design/d11&amp;#39; \&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-d &amp;#39;{&amp;quot;views&amp;quot;: { &amp;quot;v1&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc){\nemit(doc.key,doc.city+doc.country);\n}&amp;quot;}, &amp;quot;v2&amp;quot;:{&amp;quot;map&amp;quot;:&amp;quot;function(doc,meta){\nemit(meta.id,[doc.key_num,doc.body]);\n}&amp;quot;} }}&amp;#39;</description>
                <environment>1617&lt;br/&gt;
Centos 64 bit. &lt;br/&gt;
</environment>
            <key id="19282">MB-6392</key>
            <summary>Indexing 11 ddocs might push system into swap pretty quickly </summary>
                <type id="1" iconUrl="http://www.couchbase.com/issues/images/icons/issuetypes/bug.png">Bug</type>
                                <priority id="3" iconUrl="http://www.couchbase.com/issues/images/icons/priorities/major.png">Major</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="karan">Karan Kumar</assignee>
                                <reporter username="karan">Karan Kumar</reporter>
                        <labels>
                        <label>2.0-beta-release-notes</label>
                        <label>system-test</label>
                    </labels>
                <created>Wed, 22 Aug 2012 20:45:09 -0500</created>
                <updated>Sun, 30 Sep 2012 00:50:36 -0500</updated>
                    <resolved>Sun, 30 Sep 2012 00:50:33 -0500</resolved>
                            <version>2.0-beta</version>
                                <fixVersion>2.0</fixVersion>
                                <component>view-engine</component>
                                <votes>0</votes>
                        <watches>1</watches>
                                                    <comments>
                    <comment id="36627" author="karan" created="Wed, 22 Aug 2012 20:45:42 -0500"  >The views dont emit lot of stuff, some small properties of the document.</comment>
                    <comment id="36716" author="karan" created="Thu, 23 Aug 2012 12:48:34 -0500"  >We are going to run some more experiments to understand this better. &lt;br/&gt;
&lt;br/&gt;
All these test have been run on centos 5.6&lt;br/&gt;
Run on ubuntu 10.04. Different scheduler/filesystem?&lt;br/&gt;
&lt;br/&gt;
Run with nobarrier mount option. </comment>
                    <comment id="37260" author="karan" created="Wed, 29 Aug 2012 14:22:16 -0500"  >From Alk:&lt;br/&gt;
Even more than that (assuming I&amp;#39;m not insane) is O(N^2) external sorting algorithm that we accidently implemented in couch_set_view_updater. Basically it keeps up to 16 1 meg files, then merges them to 1. Then continues with creating 15 1 meg files and merges everything together again. Then again, etc... It can be seen that this is quadratic behavior.</comment>
                </comments>
                    <attachments>
                    <attachment id="14545" name="Screen Shot 2012-08-22 at 6.40.45 PM.png" size="25871" author="karan" created="Wed, 22 Aug 2012 20:45:09 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                                                            <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>4204</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>