[JCBC-196] append/incr/decr/add/replace should not require CAS value to be passed Created: 21/Jun/12 Updated: 20/May/13 |
|
| Status: | Open |
| Project: | Couchbase Java Client |
| Component/s: | docs, library |
| Affects Version/s: | None |
| Fix Version/s: | 1.1.7 |
| Security Level: | Public |
| Type: | Improvement | Priority: | Critical |
| Reporter: | Perry Krug | Assignee: | Michael Nitschinger |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
In the current implementation, there is no method for a non-CAS version of the append/prepend/incr/decr/add/replace operations. As per the memcached protocol, these operations do not require (but may be used with) a CAS id and requiring one greatly reduces the performance available by requiring a gets prior to the operation.
Perry |
| Comments |
| Comment by Raghavan Srinivas [ 22/Aug/12 ] |
|
The incr, decr, add and replace do have calls that do not require CAS Id. For the append and prepend methods
you could do something like this c.prepend(0, "prepend-key", "value"); which would not require a CAS to be supplied/fetched. Will this suffice for now? My suggestion would be to close this issue and open a separate issue for just append and prepend if it's still deemed a bug. |
| Comment by Michael Nitschinger [ 21/Dec/12 ] |
| http://review.couchbase.org/#/c/23486/ |
| Comment by Perry Krug [ 21/Dec/12 ] |
| This will need a docs update as well... |
| Comment by Perry Krug [ 06/Feb/13 ] |
| Michael, just to add here, I think it would be sufficient to document this rather than changing the API itself. Documenting that you can (and should!) pass 0 for the CAS value when using these operations. |