New Features and Behaviour Changes in 1.1.0
With the usage of the URI parser from stdlib it is possible to
validate the bucket URI more strictly. Also, it is possible to
specify credentials in the URI like:
http://username:password@example.com:8091/pools/default/buckets/custom
The "default" connection is available in thread local storage.
This mean that using the Couchbase.bucket
method it is possible to get access to current connection and
there is no need to share connections when running in
multi-thread environment. Each thread has its own connection
reference.
The direct dependency on libevent and sasl has been removed. Now the library doesn't require libevent headers installed.
The disconnect and reconnect interfaces are implemented which
provide routines for explicit resource management. Connections
were freed only when the Garbage Collector found that the
connection was not being used. Now it's possible for the client
to check if the bucket was connected using
'connected?' or
'disconnect' it manually or
'reconnect' using old settings.
It is not required to install libcouchbase or
libvbucket on windows.
Based on the time out fix (CCBC-20),clients will be notified when the connection was dropped or host isn't available.
It is possible to store nil as a value. It is possible to distinguish a nil value from a missing key by looking at at the value returned and the flags and CAS values as well.
There were spurious timeout issues with a compound statement like below.
connection.run do connection.get("foo") {|ret| puts "got foo = #{ret.value}"} sleep(5) end
No timeout will occur unless there is a problem with the connection.