+1 on the JDBC format:

http://lists.mysql.com/cluster/249

MySQL cluster does this as well.

I'd also like to mention that libcouchbase will be included in this spec. 
Client libraries wrapping libcouchbase will be responsible for parsing out any 
client-specific settings in the string, and then passing the rest of the string 
to libcouchbase, which will then go ahead and parse it.

Just a note though; you don't actually need a URI scheme here JDCB and friends 
use the URI scheme to locate the driver to load. However the couchbase:// stuff 
is implicit.

I think all properties related to bootstrapping, connection, etc which are 
immutable once the instance has been created should be specified inside the 
connection string.

I do think something like:

host1,host2,host3,host4/bucketname?ssl=force&bootstrapOver=http&commandTimeout=2500000&bootstrapTimeout=5000000

is much simpler and freely convertible between client. It's also simple to 
parse and construct

Now there's the problem of specifying the actual ports for each host (which 
normally would not be required but may be a use case for some folks):

host1:8091=HTTP:11210=MCD:11207=MCDS,host2=18091=HTTPS, etc.

I honestly don't think there any nice way to specify a host and a protocol, and 
most users shouldn't care; but we should make it possible to do.

Note that the '?' tokens can be replaced by ';'. The bucketname could be 
specified as an option rather than a path spec, etc. -- however those are all 
minor details which IMO should be decided if and when we pick JDBC/DSN style 
strings.

Mark

On May 24, 2014, at 1:14 PM, Aliaksey Kandratsenka <[email protected]> 
wrote:

> 
> 
> 
> On Fri, May 23, 2014 at 10:43 PM, Brett Lawson <[email protected]> wrote:
> Good Afternoon All!
> 
> Over the past month, we have been working on defining a set of semantics 
> which describes a canonical connection string format for connecting to a 
> Couchbase Cluster.  In addition to this, we have attempted to explicitly 
> define the semantics which drive behaviour undertaken by the various client 
> libraries when establishing this initial 'bootstrap' connection.  The 
> following document is a result of this discussion.  Any and all input is 
> welcome, specifically in regards to the Open Questions which are described in 
> the document.
> 
> Project Common Connection String!
> https://docs.google.com/document/d/172ausWsYt3eYYOZ1lYHVS8ccbrrVJaGwHIRsf_O_Hyc
> 
> My feedback is: please strongly consider going towards jdbc-style 
> configuration. If gives you far more freedom to evolve actual bootstrap 
> without breaking any apis.
> 
> For example there's no need for any separate ssl flags. There's no need to 
> insist on always needed both memcached and mgmt ports. It allows for no end 
> of other options, like getting actual config information from ldap, dns etc.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to