Uploaded image for project: 'Couchbase Documentation'
  1. Couchbase Documentation
  2. DOC-8476

SDK Bootstrapping and clustermap explanations

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Won't Fix
    • Major
    • None
    • tech-debt
    • Client SDK cluster map updates and bootstrapping

    Description

      It may be beneficial to improve the documentation providing some level of technical detail for how bootstrapping and clustermap updates are performed:

      1) How the client and cluster behave in the event of topology changes and how the cluster map is updated.

      2) How seed nodes are used during the bootstrapping process what happens to that list of seed nodes once the client has connected to the cluster and received a clustermap update

      3) The various Current ConfigurationProvider and Loaders that will be used to connect to the cluster (CarrierLoader, HttpLoader,...) and how they are used. 

      4) Highlighting any major differences if they exist for a specific SDK.

      5) Highlight any supported method of supplying the seed nodes:

      • static string with the IP,
      • DSN SRV records,
      • Load Balancers such as AWS ELB - if supported to be used as a proxy to discover the active nodes in the cluster.
        ___________________________________________

      Currently bootstrapping is best explained by consuming information from a combination of different sources. 

      source 1.) This Blog Post which is somewhat old and centers the discussion around the Java SDK.

      https://blog.couchbase.com/inside-the-java-sdk-bootstrap/

      While the information contained within the blog post is very helpful since it is removed from the actual product documentation some people may approach the information with caution since it is centered around Java and somewhat dated. It is much more difficult to be sure of where things are with the current versions of the various SDK's. 

      source 2.) The  connectivity phases documentation here: 

      https://docs.couchbase.com/server/6.5/learn/clusters-and-availability/connectivity.html#connectivity-phases 

      Which outlines the process at a very high level but maybe this could be expanded or link to a more verbose set of documentation. 

      source 3.) Managing connections (using the PHP sdk as an example):  https://docs.couchbase.com/php-sdk/current/howtos/managing-connections.html 

      This outlines many aspects of PHP connections for the SDK but might be able to be expanded some. It includes the following "Tip" which might be a good place to link from the PHP documentation to a more general explanation of how seed nodes are used to bootstrap to the cluster. 


      You don’t need to include the address of every node in the cluster. The client fetches the full address list from the first node it is able to contact.
      "

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            hakim.cassimally Hakim Cassimally
            brian.powers Brian Powers
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty