Looking at the C (libcouchbase) vs Ruby (couchbase++) client-settings pages, I see the following differences.
(NOTE, I've only looked at https://docs.couchbase.com/c-sdk/current/ref/client-settings.html and https://docs.couchbase.com/ruby-sdk/current/ref/client-settings.html
had a quick grep of code / API docs, but not full dive, and probably better for knowledgeable SDK dev to comment!)
1) 2 categories don't have any settings documented for Ruby.
- Tracing Threshold and Orphaned Logging Options
- Metrics Reporting Options
This is known issue.
2) It looks like cb++ has tcp_keep_alive_interval which doesn't have an equivalent in lcb (currently documented in .adoc)
3) lcb has features available via both Connection String and Enumeration Symbols (like LCB_CNTL_ENABLE_MUTATION_TOKENS which are handled using various lcb_cntl* functions)
cb++ has only connection string settings.
4) The following options have different names:
(Listed lcb first, then cb++)
category |
libcouchbase |
couchbase++ |
I/O Options |
dnssrv |
enable_dns_srv |
|
tcp_keepalive |
enable_tcp_keep_alive |
|
operation_timeout |
kv_timeout |
|
persistence_timeout_floor |
kv_durable_timeout |
|
views_timeout |
view_timeout |
|
http_timeout |
management_timeout |
General Options |
LCB_CNTL_ENABLE_UNORDERED_EXECUTION
(only enumeration token?) |
enable_unordered_execution |
Having discussed at docs sync, there are 2 main issues here:
- SDK RFC compliance https://github.com/couchbaselabs/sdk-rfcs/blob/master/rfc/0059-sdk3-foundation.md#configuration (raised by Matt I)
- For the Node.js SDK, users moving from former to latter might find that their existing scripts now fail to work.
Raising CBD to look into this.
These are the headings from the Ruby docs:
config_poll_interval
enable_dns_srv
enable_mutation_tokens
enable_tcp_keep_alive
enable_unordered_execution
kv_durable_timeout
kv_timeout
management_timeout
query_timeout
search_timeout
tcp_keep_alive_interval
view_timeout