<!--
RSS generated by JIRA (5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9) at Thu Jun 20 03:17:35 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/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+10080+AND+labels+%3D+queueing&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://www.couchbase.com/issues/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Couchbase</title>
        <link>http://www.couchbase.com/issues/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+10080+AND+labels+%3D+queueing</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="1" total="1"/>
                <build-info>
            <version>5.2.4</version>
            <build-number>845</build-number>
            <build-date>26-12-2012</build-date>
        </build-info>
<item>
            <title>[JCBC-220] Spymemcached doesn&apos;t flush the queues correctly during bulk loads</title>
                <link>http://www.couchbase.com/issues/browse/JCBC-220</link>
                <project id="10080" key="JCBC">Couchbase Java Client</project>
                        <description>CB:2.0&lt;br/&gt;
Library: 1.1.1&lt;br/&gt;
There is data loss in couchbase 2.0 when using the set command and the couchbase bucket . Loss seem to be severe the longer away the servers are from the client. Same java client works well with memcached buckets in 2.0, and both couchbase and memcached buckets in 1.8.1. See screenshots below. Note the item count in the couchbase bucket which is missing 24% of the data.&lt;br/&gt;
Attached Image for the total items stored in the couchbase bucket. Only 750K items stored for 1M inserts.&lt;br/&gt;
&lt;br/&gt;
On bulk loads using the 1.1.1 library, the customer is seeing data loss for the items that have been set.&lt;br/&gt;
&lt;br/&gt;
The customer tried to set 1M items using the latest Java Client 1.1.1 and figured out that all the items are getting persisted.&lt;br/&gt;
&lt;br/&gt;
An update from the customer.......&lt;br/&gt;
&lt;br/&gt;
I have rewritten it a bit and reproduced the problem here. Find the updated version enclosed where you can see the issue being reproduced. You will see that the number of keys reported by couchbase is not the number of keys that we have inserted.&lt;br/&gt;
&lt;br/&gt;
It seems that the problem is in the handling of queueing the set calls internally in the driver. I.e, if we don&amp;#39;t actively force the &amp;quot;async&amp;quot; queues to flush (by calling the future get()), data on the queues could be discarded. So this sounds like a spymemcached bug where it does not correctly flush the queues during high loads? According to the javadoc we should have seen the below, and if not, we should have assumed that all operations were properly processed?&lt;br/&gt;
&lt;br/&gt;
java.lang.IllegalStateException - in the rare circumstance where queue is too full to accept any more requests&lt;br/&gt;
&lt;br/&gt;
Attache code using which we were able to reproduce this error on bulk loads.&lt;br/&gt;
</description>
                <environment></environment>
            <key id="21990">JCBC-220</key>
            <summary>Spymemcached doesn&apos;t flush the queues correctly during bulk loads</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="5" iconUrl="http://www.couchbase.com/issues/images/icons/statuses/resolved.png">Resolved</status>
                    <resolution id="5">Cannot Reproduce</resolution>
                    <security id="10011">Public</security>
                        <assignee username="daschl">Michael Nitschinger</assignee>
                                <reporter username="mkumar">Muthu Kumar</reporter>
                        <labels>
                        <label>1.1.1</label>
                        <label>bulk</label>
                        <label>clients</label>
                        <label>issue</label>
                        <label>java</label>
                        <label>memcached</label>
                        <label>queueing</label>
                        <label>sets</label>
                    </labels>
                <created>Fri, 25 Jan 2013 09:05:52 -0600</created>
                <updated>Mon, 28 Jan 2013 05:51:52 -0600</updated>
                    <resolved>Fri, 25 Jan 2013 11:03:52 -0600</resolved>
                            <version>1.1.1</version>
                                                <component>library</component>
                                <votes>0</votes>
                        <watches>0</watches>
                                                    <comments>
                    <comment id="48621" author="mkumar" created="Fri, 25 Jan 2013 09:13:31 -0600"  >The customer is also interested to know as below.&lt;br/&gt;
&lt;br/&gt;
Just a side note - could it be that the:&lt;br/&gt;
net.spy.memcached.DefaultConnectionFactory# createOperationQueue&lt;br/&gt;
need to be configured differently? From what I can see spymemcached provides two different operation queues, and it seems that it should either block the add of the async call or just let the queue keep growing (array versus linked queue).&lt;br/&gt;
Looking forward to engineering response.&lt;br/&gt;
</comment>
                    <comment id="48624" author="mkumar" created="Fri, 25 Jan 2013 10:08:34 -0600"  >No Michael - Can I close this and raise a CBSE ?</comment>
                    <comment id="48625" author="daschl" created="Fri, 25 Jan 2013 10:33:55 -0600"  >Yes please!</comment>
                    <comment id="48628" author="ingenthr" created="Fri, 25 Jan 2013 11:03:52 -0600"  >I&amp;#39;m sorry to say, the test is wrong.  The client&amp;#39;s shutdown method is never called, and that would allow the IO thread to complete work before shutting down.  &lt;br/&gt;
&lt;br/&gt;
The get() method on the OperationFuture never does flush a queue.  You&amp;#39;re just killing the IO thread with a System.exit(0) from the main thread before the IO thread gets to complete its work.</comment>
                    <comment id="48728" author="mkumar" created="Mon, 28 Jan 2013 05:27:15 -0600"  >Thanks Michael and Matt - I have updated the ticket with your comments and will raise a CBSE if the customer comes back with an issue.</comment>
                    <comment id="48731" author="mkumar" created="Mon, 28 Jan 2013 05:51:52 -0600"  >Raised this &lt;a href=&quot;http://www.couchbase.com/issues/browse/CBSE-366&quot;&gt;http://www.couchbase.com/issues/browse/CBSE-366&lt;/a&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="16301" name="2.0-couchbase.png" size="29167" author="mkumar" created="Fri, 25 Jan 2013 09:05:52 -0600" />
                    <attachment id="16300" name="Couch1234.java" size="2195" author="mkumar" created="Fri, 25 Jan 2013 09:05:52 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                                                                                                                                                    <customfield id="customfield_10081" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Rank</customfieldname>
                <customfieldvalues>
                    <customfieldvalue>8792</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>