Log message:
## 2.1.2 (2013-08-27)
* [major] CCBC-253, CCBC-254 Use bucket name in SASL if username
omitted. Without this fix, you can may encounter a segmentation
faults for buckets, which are not protected by a password.
* [major] Preserve IO cookie in `options_from_info` when using v0
plugins with user-provided IO loop instance. This issue was
introduced in 2.1.0.
* [minor] Display the effective IO backend in 'cbc-version'. This is
helpful to quickly detect what is the effective IO plugin on a given
system.
## 2.1.1 (2013-08-22)
* [minor] Use provided credentials for authenticating to the data
nodes. With this fix, it is no longer possible to use Administrator
credentials with a bucket. If your configuration does so, you must
change the credentials you use before applying this update. No
documentation guides use of Administrator credentials, so this
change is not expected to affect few, if any deployments.
* [major] CCBC-239 Do not use socket after failout. Fixes segmentation
faults during rebalance.
* [minor] CCBC-245 Distribute debug information with release binaries
on Windows
* [minor] CCBC-248 Do not disable config.h on UNIX-like platforms. It
fixes build issue, when application is trying to include plugins
from the tarball.
* [major] CCBC-192 Skip misconfigured nodes in the list. New
lcb\_cntl(3couchbase) added to control whether the library will skip
nodes in initial node list, which listen on configuration port (8091
usually) but doesn't meet required parameters (invalid
authentication or missing bucket). By default report this issue and
stop trying nodes from the list, like all previous release. Read
more at man page lcb\_cntl(3couchbase) in section
LCB\_CNTL\_SKIP\_CONFIGURATION\_ERRORS\_ON\_CONNECT
* [major] CCBC-246 Fallback to 'select' IO plugin if default plugin
cannot be loaded. On UNIX-like systems, default IO backend is
'libevent', which uses third-party library might be not available
at the run-time. Read in lcb\_cntl(3couchbase) man page in section
LCB\_CNTL\_IOPS\_DEFAULT\_TYPES about how to determine effective IO
plugin, when your code chose to use LCB\_IO\_OPS\_DEFAULT during
connection instantiation. The fallback mode doesn't affect
application which specify IO backend explicitly.
## 2.1.0 (2013-08-17)
* [major] New backend `select`. This backend is based on the select(2)
system call and its Windows version. It could be considered the most
portable solution and is available with the libcouchbase core.
* [major] CCBC-236 New backend `libuv`. This backend previously was
part of the `couchnode` project and is now available as a plugin.
Because libuv doesn't ship binary packages there is no binary
package `libcouchbase2-libuv`. You can build plugin from the source
distribution, or through the `libcouchbase-dev` or
`libcouchbase-devel` package on UNIX like systems.
* [major] New backend `iocp`. This is a Windows specific backend,
which uses "I/O Completion Ports". As a part of the change, a new
version of plugin API was introduced which is more optimized to this
model of asynchronous IO.
* [major] CCBC-229 Fixed bug when REPLICA\_FIRST fails if first try
does not return key
* [major] CCBC-228 Fixed bug when REPLICA\_SELECT didn't invoke
callbacks for negative error codes
* [major] CCBC-145 API for durability operations. This new API is
based on `lcb_observe(3)` and allows you to monitor keys more
easily. See the man pages `lcb_durability_poll(3)` and
`lcb_set_durability_callback(3)` for more info.
* [major] New configuration interface lcb\_cntl(3) along with new
tunable options of the library and connection instances. In this
release the following settings are available. See the man page for
more information and examples.:
* LCB\_CNTL\_OP\_TIMEOUT operation timeout (default 2.5 seconds)
* LCB\_CNTL\_CONFIGURATION\_TIMEOUT time to fetch cluster
configuration. This is similar to a connection timeout (default 5
seconds)
* LCB\_CNTL\_VIEW\_TIMEOUT timeout for couchbase views (default 75
seconds)
* LCB\_CNTL\_HTTP\_TIMEOUT timeout for other HTTP operations like
RESTful flush, bucket creating etc. (default 75 seconds)
* LCB\_CNTL\_RBUFSIZE size of the internal read buffer (default
32768 bytes)
* LCB\_CNTL\_WBUFSIZE size of the internal write buffer (default
32768 bytes)
* LCB\_CNTL\_HANDLETYPE type of the `lcb\_t` handler (readonly)
* LCB\_CNTL\_VBCONFIG returns pointer to VBUCKET\_CONFIG\_HANDLE
(readonly)
* LCB\_CNTL\_IOPS get the implementation of IO (lcb\_io\_opt\_t)
* LCB\_CNTL\_VBMAP get vBucket ID for a given key
* LCB\_CNTL\_MEMDNODE\_INFO get memcached node info
* LCB\_CNTL\_CONFIGNODE\_INFO get config node info
* LCB\_CNTL\_SYNCMODE control synchronous behaviour (default
LCB\_ASYNCHRONOUS)
* LCB\_CNTL\_IP6POLICY specify IPv4/IPv6 policy (default
LCB\_IPV6\_DISABLED)
* LCB\_CNTL\_CONFERRTHRESH control configuration error threshold
(default 100)
* LCB\_CNTL\_DURABILITY\_TIMEOUT durability timeout (default 5 seconds)
* LCB\_CNTL\_DURABILITY\_INTERVAL durability polling interval (default
100 milliseconds)
* LCB\_CNTL\_IOPS\_DEFAULT\_TYPES get the default IO types
* LCB\_CNTL\_IOPS\_DLOPEN\_DEBUG control verbose printing of dynamic
loading of IO plugins.
## 2.0.7 (2013-07-10)
* [major] CCBC-183 Improve `lcb_get_replica()`. Now it is possible
to choose between three strategies:
1. `LCB_REPLICA_FIRST`: Previously accessible and now the default,
the caller will get a reply from the first replica to successfully
reply within the timeout for the operation or will receive an
error.
2. `LCB_REPLICA_ALL`: Ask all replicas to send documents/items
back.
3. `LCB_REPLICA_SELECT`: Select one replica by the index in the
configuration starting from zero. This approach can more quickly
receive all possible replies for a given topology, but it can
also generate false negatives.
Note that applications should not assume the order of the
replicas indicates more recent data is at a lower index number.
It is up to the application to determine which version of a
document/item it may wish to use in the case of retrieving data
from a replica.
## 2.0.6 (2013-05-07)
* [major] CCBC-188 Fix segfault when rebalancing
When a (!connected) server is reconnected, the tasks in its
"pending" buffer will be moved into "output" buffer. If its
connection is broken again immediately, relocate_packets() will go
to wrong path.
* [major] CCBC-202 Don't try to switch to backup nodes when timeout is
reached
* [major] CCBC-188 Check if SASL struct is valid before disposing
* [major] Fix compile error with sun studio
"src/event.c", line 172: error: statement not reached \
(E_STATEMENT_NOT_REACHED)
* [major] Don't invoke HTTP callbacks after cancellation, because
user code might assume a previously-freed resource is still valid
* [minor] CCBC-179 Added an example to properly use the bucket
credentials for authentication instead of administrator credentials
* [minor] example/yajl/couchview.c: pass cookie to the command
Fixes coredump when executing ./examples/yajl/couchview
* [minor] CCBC-201 Add Host header in http request
http://cbugg.hq.couchbase.com/bug/bug-555 points out that Host is a
required field in HTTP 1.1
## 2.0.5 (2013-04-05)
* [minor] Try to search the --libdir for modules if dlopen
fails to find the module in the default library path
* [minor] CCBC-190 New compat mode (experimental) for configuration
caching. See man lcb_create_compat
* [minor] Manpage fixes
* [minor] Fix build on FreeBSD (http://review.couchbase.org/25289)
* [minor] Fix reconnecting issues on windows
(http://review.couchbase.org/25170 and
http://review.couchbase.org/25155)
* [minor] pillowfight example updated to optionally use threads
## 2.0.4 (2013-03-06)
* [minor] CCBC-185 The bootstrap URI is not parsed correctly
* [minor] CCBC-175 Work properly on systems where EWOULDBLOCK != EAGAIN
* [critical] CCBC-180 Segmentation fault when the hostname resolved
into several addresses and first of them reject couchbase
connections.
* [major] CCBC-182 The library stops iterating backup nodes list if
the next one isn't accessible.
* [major] CCBC-147 Fixed illegal memory access in win32 plugin
* [minor] CCBC-178 Build error on solaris/sparc: -Werror=cast-align
|