[NCBC-520] GetView returns IVIEW with IVIEWROWS which are NULL Created: 18/Jun/14  Updated: 18/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: process
Affects Version/s: 1.3.4, 1.3.5
Fix Version/s: None

Type: Bug Priority: Major
Reporter: douwequerty Assignee: Jeff Morris
Resolution: Unresolved Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Couchbase 2.2 server on unbuntu, dot net website running in ISS.


 Description   
We use couchbase views to retrieve some keys which worked fine in 1.2.9. However we upgraded to 1.3.6 in which we found view errors (See NCBC-507). Hence we reverted back to 1.3.5 and 1.3.4 which contained the following view error:

Code:
var itemtoremove = CouchbaseWrapper.Client.GetView("search", "customerid_productid").Key(new object[] { Obj.Customer_ID.ToString().ToLower(), row["ProductID"].ToString().ToLower() });

Returns an IView of IViewRows over which we enumerate. However some rows have the value null (not the properties of IViewRow but the reference to IViewRow itself is null). Which results in object reference not set exception when trying to handle the IViewRows. Which we ofcourse don't expect when processing the results of a view.
Currently I reverted back to 1.2.9 in which our code executes without any problems.

 Comments   
Comment by Jeff Morris [ 18/Jun/14 ]
Is this deterministic? Would you mind attaching a simple sample app illustrating the issue plus data and your view definitions in a separate file?




[NCBC-438] CouchbaseClient has no destructor so SocketPool and sockets are often not cleaned/closed Created: 25/Apr/14  Updated: 02/Jun/14  Resolved: 02/Jun/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.3.4
Fix Version/s: 1.3.5

Type: Bug Priority: Major
Reporter: Jim Walker Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: .NET 4 used in testing

Attachments: Text File CouchbaseClient.cs.patch     File Program2.cs    
Issue Links:
Dependency

 Description   
Investigating a client issue I spotted that the CB server node sometimes still had 11210 connections open even though a .NET test application had cleanly terminated.

Instrumentation of SocketPool.cs showed that there was unreliable clean-up of the sockets and this was tracked down to the lack of a destructor/dispose path from CouchbaseClient.

The instrumentation added "print" statements to the socket creation and socket deletion paths. Even with explicit GC.collect calls the deletion prints were very unreliable. I.e. 30 socket created, but variable amounts get closed, sometimes even none.

A simple patch is soon to be uploaded which made a significant difference to the deletion print statements and has been tested using a simple test program. With the patch I saw reliable socket closure. E.g. 30 created, 30 deleted/closed.

Attached to this are.

1) Test program (Program2.cs) which creates CouchbaseClient, allows objects to become out-of-scope and exits cleanly.
2) A patch against CouchbaseClient.cs which drives the destruction path to Dispose the Pool (to be committed).

Without my CouchbaseClient fix I would see the number of sockets created frequently be more than the count of items disposed.


(need to figure out how to push code to gerrit??)

 

 Comments   
Comment by Jeff Morris [ 30/Apr/14 ]
Change set is here: http://review.couchbase.org/#/c/36407/2
Comment by Jeff Morris [ 02/Jun/14 ]
Released in 1.3.5.




[NCBC-343] getting-started release notes link needs to be updated to point to 1.3 Created: 12/Dec/13  Updated: 09/Jan/14  Resolved: 09/Jan/14

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.3.0
Fix Version/s: None

Type: Task Priority: Major
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer, documentation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: http://www.couchbase.com/communities/net/getting-started


 Description   
The Release notes link in the "Getting started" page currently points to http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-rn.html.

It should point to http://docs.couchbase.com/couchbase-sdk-net-1.3/#release-notes-for-couchbase-client-library-net-130-ga-3-december-2013


 Comments   
Comment by Jeff Morris [ 12/Dec/13 ]
Updated all of the urls to 1.3.0 documentation.
Comment by Patrick Varley [ 03/Jan/14 ]
There are still a number of links on the getting started page that points to the 1.2 .Net manual.
Comment by Patrick Varley [ 03/Jan/14 ]
I have stared the links that need changing

Under "step 1":

In addition to the library itself, there is also the **Getting Started Guide** which is on this page and in the manual for the .NET client. The SDK manual also contains a **Tutorial including a sample application**, an **API Reference** and current **Release Notes**.


Then again at the end of the page under "Then Learn More":

The full **getting started guide** covers additional getting started information. From there, move on to the **tutorial**, which shows how to build an application on Couchbase Server with a JSON dataset, sample views, and modifying data. Refer to the **API Reference** for a guide to all functionality of the client library in the SDK.
Comment by Jeff Morris [ 04/Jan/14 ]
Thanks, I'll fix this while I am doing the 1.3.1 release notes.
Comment by Jeff Morris [ 09/Jan/14 ]
All should be fixed.




[NCBC-293] enhance or create new multiget to allow getting details on missing items Created: 27/Aug/13  Updated: 04/Dec/13  Resolved: 04/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.6
Fix Version/s: 1.3.0

Type: New Feature Priority: Major
Reporter: Matt Ingenthron Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Currently, when a multiGet() is issued, it is not possible to get details on which of the items requested are returning NOT_FOUND, which ones have erred, say with TMPFAIL, or other.

This enhancement request is to either enhance the current multi operations to provide access to that information or add a new method of getting that information.

 Comments   
Comment by Ivars Auzins [ 04/Oct/13 ]
I added pull request in github that would fix this: https://github.com/couchbase/couchbase-net-client/pull/8
Comment by Jeff Morris [ 04/Oct/13 ]
Thanks Ivars! This will go into the 1.3.0 release.
Comment by Jeff Morris [ 09/Oct/13 ]
Ivars -

Can you create a gerrit code review accout and sign the Contributor License Agreement (CLA)?

1-http://review.couchbase.org
2-Login in and select your username on the top right hand side and then "settings"
3-The last item on the left in the settings view is an "Agreements" menu tab, select that an then
select the "New Contributor Agreement"

Thank you very much for your contributions!
Comment by Jeff Morris [ 04/Dec/13 ]
Included in 1.3.0 release




[NCBC-289] Does not return errors object on view operation Created: 14/Aug/13  Updated: 10/Dec/13  Resolved: 10/Dec/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2.7
Fix Version/s: 1.3.1

Type: New Feature Priority: Blocker
Reporter: Patrick Varley Assignee: Jeff Morris
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The couchbase maunal shows the JSON for view responses:
http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-querying-errorcontrol.html

The Java and python SDK have ability to access errors .net does not.

Looking at CouchbaseViewHandler. It looks like its meant to be throwing an exception when it gets errors in the JSON. However that exception will never happen as there is a bug on lines 95 to 101 (code below). The two if statements counter each other. You can fix it via calling jsonReader.Read() after the 1st if statement however I believe that is not the correct solution. We should return an error object. I think the whole IEnumerator<T> TransformResults<T>(Func<JsonReader, T> rowTransformer, IDictionary<string, string> viewParams) needs looking at.

if (jsonReader.TokenType == JsonToken.PropertyName
&& jsonReader.Depth == 1
&& ((string)jsonReader.Value) == "errors")
{
// we skip the deserialization if the array is null
if (jsonReader.TokenType == Newtonsoft.Json.JsonToken.StartArray)
{

 Comments   
Comment by Matt Ingenthron [ 12/Nov/13 ]
Jeff is running with this change.
Comment by Patrick Varley [ 18/Nov/13 ]
Jeff,

From what I remember looking at the code it look like the error object would only get initialised once the JSON respond was full parsed.
There were some operations that did not parsed the JSON to the end.

Please let me know if the method I created in http://review.couchbase.org/#/c/29173/ will be changed.

I know you been busy and this can wait until the December release.

Thanks,
Patrick
Comment by Jeff Morris [ 18/Nov/13 ]
Patrick -

I am mainly holding back on this only because we don't have valid unit tests to ensure that it works as expected. To make it easier to unit test, I am refactoring the code a bit so that any stream (not just the response from a web request) can run through that code. I started on this and then had to put it on the back burner for a bit, but will be jumping back to it as soon as 1.3.0 is released.

If anything needs to be changed, I'll let you know!

Thanks,

Jeff
Comment by Jeff Morris [ 05/Dec/13 ]
We decided to throw an exception when an error is detected for all view
error cases. In the next version (2.x) of the client will make a decision
on how we want the client to behave when an error is encountered when
processing a view. This commit makes it consistent across all error cases
and does not change the interface, which would likely impact users
requiring them to change there code from handling exceptions to checking
an errors property for failures.

This commit also adds additional unit tests and refactors the
CouchbaseViewHandler class so that we can pass streams into the
ReadResponse method that contain text resembling errors returned from the
server.
Comment by Jeff Morris [ 10/Dec/13 ]
CR & Submitted via gerrit




[NCBC-286] Accessing key data when using strongly-typed views Created: 07/Aug/13  Updated: 02/Jun/14

Status: Open
Project: Couchbase .NET client library
Component/s: None
Affects Version/s: 1.2.6
Fix Version/s: backlog-1.0

Type: Improvement Priority: Major
Reporter: David Haikney Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: customer, views
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Directly lifted from forum post here and copied and pasted below:
http://www.couchbase.com/forums/thread/net-client-accessing-key-data-when-using-strongly-typed-views


====Forum Post 1 (Simon, Requester) ====
I have a Couchbase 2.0 View that returns a projection of the underlying objects - e.g.
{
    Count: 100,
    SumPrices: 1231231.02
}
if I use a strongly typed view - e.g.
_client.GetView<MyDto>("my__dd", "my_view")
the projection is automatically deserialised to my DTO class, which is nice and easy. However, I'd also like to retrieve info from the key, which doesn't seem to be possible with this approach.
I can use the more general IView syntax, but now I have to deserialize the DTO myself which is not simple since the data is exposed as a dictionary, not a JSON string.
Perhaps I'm missing something, but it would be useful to be able to use both strong-typing and still have access to the key meta data.
The alternative would be to include the values from the key in the projection data, but this seems wrong in that the data will be repeated twice in the index?

====Forum Post 2 (John)====
As I understand your view returns.
 { Count: 100, SumPrices: 1231231.02 }
If this is correct you use reduce function that counts and summs multiple keys. And it returns 1 key-value pair where key is null and value is an object mentioned before.
So I don't understand which one key's metadata your want to see and where? If you want to see all keys metadata you can store it in reduce function into array or something:
{ Count: 100, SumPrices: 1231231.02, Keys: [key1, key2 ...] }.

====Forum Post 3 (John)====
If your DTO includes an "Id" property, it will be populated a bit magically by the generic view method. It's a little trickier than that, and I describe a solution here - http://www.couchbase.com/docs/couchbase-sdk-net-1.2/brewerycrud.html. I'm going to work on improving the JSON extensions to make this easier to use - https://www.couchbase.com/docs/couchbase-sdk-net-1.2/jsonextensions.html.

====Forum Post 4 (Simon, Requester)====
Hi yes, you are correct that this is a map-reduce scenario.
However I am using the group feature so each row returned should have a distinct key associated with it as per the IViewRow.ViewKey property (of type object[]) in the .NET Client API. I can make this work with the loosely typed version but the mapping code for the returned projection is a bit icky - e.g.
((IDictionary)(vr.Info["value"]))["Count"]
to get the Count value!

====Forum Post 5 (Simon, Requester)====
HI John - Thanks for the pointers. To clarify, this is a map-reduce view scenario. My client code is like this:
            return _client.GetView<WebsiteBrowseQuoteSummary>("browse", "ret_by_route_dow")
                .StartKey(new object[] { from, to, (int)departureDate.DayOfWeek, (int)returnDate.DayOfWeek })
                .EndKey(new object[] { from, to, (int)departureDate.DayOfWeek, (int)returnDate.DayOfWeek + 1 })
                .Group(true)
                .Reduce(true)
                .ToList();
I think the issue is that in the strongly typed approach (e.g. GetView<T>) the return type is IView<T> which is an IEnumerable<T> where T is the DTO. If there was an IViewRow<T> with a Value property of type T and a ViewKey property, I think that would do it as I could add the additional work to populate the missing params from the ViewKey.

====Forum Post 6 (John)====
Ah, didn't catch the reduce part... In the beer sample, I used the non-generic view for such queries:
https://github.com/couchbaselabs/beer-sample-net/blob/master/src/Couchba...
The limitation with the generic query is that it either a) expects to get the document JSON by its ID, where reduce won't obviously have the id, or b) it expects the value to be a JSON projection to deserialize into an instance of T.
I'd like to support generic reduce queries, so I'll give it some thought...
====End of Forum Posts====





[NCBC-209] Mistake in http://www.couchbase.com/develop/net/current document Created: 22/Jan/13  Updated: 03/Apr/13  Resolved: 03/Apr/13

Status: Closed
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.2.0
Fix Version/s: 1.2.4

Type: Bug Priority: Major
Reporter: Vijayaraghavan Mohanasundaram Assignee: Matt Ingenthron
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: Microsoft Windows, ,Net


 Description   
Hi Team,
   There is a bug in document, that needs to be corrected.

Document Link "http://www.couchbase.com/develop/net/current"

Issue reported : 'Instantiating the Client' section

    public static class CouchbaseManager
    {
    private readonly static CouchbaseClient _instance;
    static CouchbaseClient()
    {
    _instance = new CouchbaseClient();
    }
    public static CouchbaseClient Instance { get { return _instance; } }
    }

Error to be rectified : 4th line static CouchbaseClient() should be -> static CouchbaseManager()

 Comments   
Comment by John Zablocki (Inactive) [ 19/Feb/13 ]
Another fix in the latest revision for that page




[NCBC-150] Increment examples show incorrect initialization of key Created: 07/Nov/12  Updated: 06/Feb/13  Resolved: 06/Feb/13

Status: Resolved
Project: Couchbase .NET client library
Component/s: docs
Affects Version/s: 1.1.6
Fix Version/s: 1.2.1

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: John Zablocki (Inactive)
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
http://www.couchbase.com/docs/couchbase-sdk-net-1.1/couchbase-sdk-net-update-increment.html

All of the examples on this page show the default value as an integer when in reality it needs to be enclosed in quotes in order to function properly. There should also be a note/warning in the documentation warning users of this idiosyncrasy


 Comments   
Comment by John Zablocki (Inactive) [ 08/Jan/13 ]
The default value should be a ulong as shown in the docs. I've updated the docs (and sent a pull request) to note that it's not possible to use with Store.

https://github.com/enyim/EnyimMemcached/issues/86
Comment by Perry Krug [ 09/Jan/13 ]
Hey John, thanks for taking a look at this.

What do you mean that it's not possible to use with Store? Do you mean it's not supported to initialize a counter with store, or just that you can't use a ulong?
Comment by John Zablocki (Inactive) [ 09/Jan/13 ]
Well, technically (as you noted) it will work to set a string value via Store and then increment it, but I think that's unintentional behavior and works only because (as Attila pointed out in the linked issue) of the way counters are treated on the server. The correct use of the API should be to initialize a counter with Increment or Decrement by setting the default value.

Either way I think there's an intentional step imposed on the developer. I think it's better to discourage setting a value as a string to initialize a counter, since that's not very intuitive.

Thoughts?
Comment by Perry Krug [ 09/Jan/13 ]
Thanks for the clarification, makes perfect sense to me.

I do, however, think we need to make that distinction clearer in the docs, both on the increment side and the store side to let customers know what the best practices are (what to do is good, what NOT to do is even more important IMO)

Thanks
Comment by John Zablocki (Inactive) [ 05/Feb/13 ]
Released
Comment by Perry Krug [ 06/Feb/13 ]
Hey John, could you fill in the links of the areas that changed?

Thanks
Comment by Perry Krug [ 06/Feb/13 ]
Never mind, I see it now: http://www.couchbase.com/docs/couchbase-sdk-net-1.2/couchbase-sdk-net-update-increment.html




[NCBC-144] CreateDesignDocument() exception Created: 21/Oct/12  Updated: 18/Jan/13  Resolved: 18/Jan/13

Status: Closed
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2 Beta
Fix Version/s: 1.2.1

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: Perry Krug
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
On a Windows 7 x64 VM, single node cluster, Couchbase 2.0 beta, freshly downloaded and installed, I am getting the following exception:
System.Net.WebException was unhandled
  HResult=-2146233079
  Message=The remote server returned an error: (500) Internal Server Error.
  Source=System
  StackTrace:
       at System.Net.HttpWebRequest.GetResponse()
       at Couchbase.Helpers.HttpHelper.doRequest(Uri uri, String verb, String username, String password, String postData, String contentType) in c:\Cloud\Platform\PlatformSpike\Reference Assemblies\Couchbase\Couchbase\Helpers\HttpHelper.cs:line 77
       at Couchbase.Helpers.HttpHelper.Put(Uri uri, String username, String password, String postData, String contentType) in c:\Cloud\Platform\PlatformSpike\Reference Assemblies\Couchbase\Couchbase\Helpers\HttpHelper.cs:line 42
       at Couchbase.Management.CouchbaseCluster.CreateDesignDocument(String bucket, String name, String document) in c:\Cloud\Platform\PlatformSpike\Reference Assemblies\Couchbase\Couchbase\Management\CouchbaseCluster.cs:line 115
       at Platform.Data.Couchbase.Provisioning.CouchbaseProvisioning.CreateDesignDocument(String bucketName, String name, DesignDocument document) in c:\Cloud\Platform\PlatformSpike\Platform.Data.Couchbase.Provisioning\ProvisioningClient.cs:line 217
       at Platform.Data.Couchbase.Provisioning.CouchbaseProvisioning.Execute() in c:\Cloud\Platform\PlatformSpike\Platform.Data.Couchbase.Provisioning\ProvisioningClient.cs:line 56
       at CouchbaseUpdater.Program.Main(String[] args) in c:\Cloud\Platform\PlatformSpike\CouchbaseUpdater\Program.cs:line 26
  InnerException:
 
The server log contains the following entry, but I'm not sure if it is related:
Client-side error-report for user "admin" on node 'ns_1@192.168.54.178':
User-Agent:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Got unhandled error: Object doesn't support this action
At: http://192.168.54.178:8091/js/cells.js:64
Backtrace:
Function: collectBacktraceViaCaller
Args:
---------
Function: appOnError
Args:
"Object doesn't support this action"
"http://192.168.54.178:8091/js/cells.js"
64
30
---------
Function: (function () {throw e;})
Args:
---------
(repeated 1 times)
 
Those are the parameters to the doRequest() method:
uri = http://192.168.54.178:8092/tenants/_design/tenant_views
verb = PUT
contentType = application/json
username = admin
password = password
postData =
{
  "views": {
    "tenants_all": {
      "map": "function(doc,meta) \r\n{\r\n\tif (doc.Schema === \"tenant\") \r\n\t{ \r\n\t\temit(meta.id, null); \r\n\t} \r\n}"
    },
    "tenants_by_status": {
      "map": "function (doc,meta) \r\n{ \r\n\tif (doc.Schema === \"tenant\" && doc.Status) \r\n\t{ \r\n\t\temit(doc.Status, null); \r\n\t} \r\n}"
    },
    "tenants_by_user_application_instance": {
      "map": "function(doc,meta) \r\n{\r\n\tif (doc.Schema === \"tenant\" && doc.UserId && doc.TenantIdentifiers && identifier.Status === 1) \r\n\t{ \r\n\t\tfor (var i = 0; i < doc.TenantIdentifiers.length; i++) \r\n\t\t{\r\n\t\t\tvar identifier = doc.TenantIdentifiers[i];\r\n\t\t\tif (identifier.ApplicationInstanceId)\r\n\t\t\t{\r\n\t\t\t\temit([doc.UserId, identifier.ApplicationInstanceId], null); \r\n\t\t\t}\r\n\t\t}\r\n\t} \r\n}"
    }
  }
}
 
On the client I am using the compiled latest .NET source code from GitHub with no modifications.

 Comments   
Comment by John Zablocki (Inactive) [ 22/Oct/12 ]
Could we get a code snippet for the call that was made for this failure? I've used the client recently with Win7 64 and CBS Beta and haven't had any issues.

I have a partially completed demo app @ https://github.com/jzablocki/couchbase-beer.net/blob/master/src/CouchbaseBeersWeb/Models/WebRepositoryBase%271.cs#L140 that creates views.
Comment by John Zablocki (Inactive) [ 18/Jan/13 ]
Perry - haven't heard back on this issue. The 500 error was likely due to a bad view name or something similar. Closing this issue for now. The fix for NCBC-165 means better error handling.




[NCBC-143] Provide UpdateBucket functionality Created: 21/Oct/12  Updated: 21/Nov/12  Resolved: 21/Nov/12

Status: Closed
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2 Beta
Fix Version/s: 1.2 Beta-2

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: John Zablocki (Inactive)
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Customer request to enhance cluster management capabilities with UpdateBucket.

 Comments   
Comment by John Zablocki (Inactive) [ 21/Nov/12 ]
Published and tagged




[NCBC-142] ListBuckets/ListBuckets do not map the complete bucket JSON to an Object graph. Created: 21/Oct/12  Updated: 21/Nov/12  Resolved: 21/Nov/12

Status: Closed
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.2 Beta
Fix Version/s: 1.2 Beta-2

Type: Improvement Priority: Major
Reporter: Perry Krug Assignee: John Zablocki (Inactive)
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
Customer request to map the rest of the properties.

 Comments   
Comment by John Zablocki (Inactive) [ 21/Nov/12 ]
Published and tagged




[NCBC-140] .NET client unavailable to service operations without connection to streaming API Created: 25/Apr/12  Updated: 07/Dec/12  Resolved: 30/Oct/12

Status: Closed
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: None
Fix Version/s: 1.2.0

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: John Zablocki (Inactive)
Resolution: Duplicate Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
When the client is configured with just one address (an HA proxy for example), and receives a timeout. Because this is the only server in the list, the client waits a full second before attempting to reconnect. During this time, all operations fail until it reconnects. There is another enhancement pending (http://www.couchbase.com/issues/browse/NCBC-36) to improve some of that behavior.

However, this bug is for the larger problem of not being able to service requests without a connection to the streaming API even though the vbucket map is still valid.

 Comments   
Comment by John Zablocki (Inactive) [ 30/Oct/12 ]
Similar problem as described in NCBC-134.




[NCBC-44] Optimize multiple set (multi-set or mset bulk update) with setq Created: 21/May/12  Updated: 13/Jan/14

Status: Open
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 1.1
Fix Version/s: backlog-1.0

Type: New Feature Priority: Major
Reporter: Tim Smith (Inactive) Assignee: Jeff Morris
Resolution: Unresolved Votes: 1
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The Java client, and others, implement a more efficient bulk loading feature when multiple updates are sent to the cluster at one time. They use setq to send multiple requests without needing to round-trip the result after each one.

The .NET client does not implement this; it only implements a multi-get operation. The multi-set is important for efficiently loading data.

This probaby doesn't have to be Couchbase-specific, but would apply to vanilla memcached servers, too.

 Comments   
Comment by Tim Smith (Inactive) [ 21/May/12 ]
To be clear, I'm talking about the kind of optimization described here:

http://dustin.github.com/2009/09/23/spymemcached-optimizations.html

Thanks,

Tim




[NCBC-34] Separate timeouts for HTTP connections and data connections Created: 30/Mar/12  Updated: 21/Nov/12  Resolved: 21/Nov/12

Status: Closed
Project: Couchbase .NET client library
Component/s: library
Affects Version/s: 0.9
Fix Version/s: 1.2 Beta-2

Type: Bug Priority: Major
Reporter: Perry Krug Assignee: John Zablocki (Inactive)
Resolution: Fixed Votes: 0
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
The current timeout values are applied equally to both the HTTP and data connections. However, these have different performance characteristics and need to be configured separately.

 Comments   
Comment by John Zablocki (Inactive) [ 21/Nov/12 ]
Published and tagged




Generated at Fri Aug 22 04:27:49 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.