Permalink
Commits on Sep 14, 2018
  1. Start 1.6.3 Development

    daschl committed Sep 14, 2018
    Change-Id: I04d7831c163d8d095c6e26c980375854a75b6410
    Reviewed-on: http://review.couchbase.org/99591
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Sep 4, 2018
  1. Prepare 1.6.2 Release

    daschl committed Sep 4, 2018
    Change-Id: I26a4b85dd9e3cbebd00d47876fadcdb444db7505
    Reviewed-on: http://review.couchbase.org/99158
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Aug 31, 2018
  1. JVMCBC-564: Make sure kv service is only enabled if in nodes list.

    daschl committed Aug 29, 2018
    Motivation
    ----------
    The SDK needs to iterate the nodesExt as part of the config because
    some global services (i.e. N1QL) are not to be found in the
    traditional "nodes" list of the config. With KV, this turns out
    to be a problem during rebalance-in scenarios.
    
    Especially during delta-node recovery and memcached buckets, the
    problem amplifies because nodesExt holds all nodes that are part
    of the cluster with their services, while the nodes list only
    holds the nodes that are currently active for the given bucket.
    
    If the SDK only uses nodesExt (which it does now), it tries to
    connect to kv buckets immediately as they become available, even
    if they are not active for this bucket yet. For couchbase and
    ephemeral buckets this is not a big issue because there the
    movement of vbuckets gradually moves over the load, but with
    memcache buckets as soon as the node pops up in the config
    it is part of the ketama ring and ops are dispatched to it
    right away.
    
    Modifications
    -------------
    To remedy this situation, and also to keep the change scope
    as minimal as possible, the part of the config loading where
    we iterate nodesExt now explicitly checks if a corresponding
    entry in the nodes list is available - and if not, it removes
    the KV service from the service list. This will make sure that
    only nodes that are also in the nodes list will end up in the
    ketama ring and therefore not have ops dispatched too early.
    
    The astute reader might immediately ask him/herself if the
    view service should also be disabled because it is colocated
    with kv. And the answer is - it likely should, but to keep the
    scope small this change is not made. The good news is that
    this doesn't really matter because the code somewhere else
    only dispatches the op to a view node if there is at least
    one vbucket active on that node, so views won't be affected
    by this issue (and memcached buckets do not have views
    anyways).
    
    A test config has been added from the reproduction system
    to make sure this won't surface again.
    
    Result
    ------
    This changeset avoids connecting to kv nodes too early
    (both memcache and couchbase, but much more important
    for the former) which in turn prevents INVALID_ARGUMENTS
    responses, failing ops and disconnects.
    
    Change-Id: I844c0ec2d95701a869b14f811034b6e7bd0f4eae
    Reviewed-on: http://review.couchbase.org/99089
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
Commits on Aug 20, 2018
  1. JVMCBC-563: Add support for analytics priority param.

    daschl committed Aug 16, 2018
    Motivation
    ----------
    This changeset adds the underlying support for the "priority"
    analytics request param, which is supplied via a http header
    if it is not 0.
    
    Change-Id: I3d3db6a8bb6cdc8f960a6caef90ecc1d17e483e4
    Reviewed-on: http://review.couchbase.org/98367
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Graham Pople <grahampople@gmail.com>
Commits on Jul 27, 2018
  1. JVMCBC-561: Allow to disable compression on the environment.

    daschl committed Jul 26, 2018
    Motivation
    ----------
    We always had the system property to disable, but it makes sense to expose
    this on the environment directly. We also keep the old one around for
    backwards compatibility since it doesn't do any harm.
    
    Change-Id: I96a60178a6379053dc8ebab225afec8fc62324ca
    Reviewed-on: http://review.couchbase.org/97426
    Reviewed-by: David Nault <david.nault@couchbase.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jul 25, 2018
  1. Start 1.6.2 Development

    daschl committed Jul 25, 2018
    Change-Id: Iadb2a31de313a49c06de3a6a162ce417a7ccb89d
    Reviewed-on: http://review.couchbase.org/97386
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jul 23, 2018
  1. Prepare 1.6.1 release

    subalakr committed Jul 23, 2018
    Change-Id: I70d8441335d5a59c450a3f6988037c83162d3ad8
    Reviewed-on: http://review.couchbase.org/97297
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
Commits on Jul 20, 2018
  1. JVMCBC-560: Do not mark Node as disconnected if service is degraded

    daschl committed Jul 20, 2018
    Motivation
    ----------
    Before this change, if a Node has a service pool that is degraded
    (and no other service in a non-idle state), then the Node would
    mark itself in a DISCONNECTED state which also would cause a
    NodeDisconnectedEvent to be sent into the event bus.
    
    The node might end up in a situation like the following: the node
    only has the config service and a query service enabled. The
    config service is idle since it is not used, and if the query
    pool goes from 1 to 2 endpoints it might temporarily go into
    a degraded state until the endpoint is connected as well. Since
    the service is now degraded and the other service is idle, without
    any changes the node ends up in a DISCONNECTED state.
    
    Modifications
    -------------
    The ServiceStateZipper did not take the degraded state into account,
    which caused it to switch into the disconnected branch and this
    is not correct.
    
    This change makes the zipper recognize the degraded state from the
    upstream components and it will put the Node into a degraded
    state as well - this is largely an internal state and does not
    emit a disconnected event.
    
    Result
    ------
    The SDK does not emit a NodeDisconnectedEvent if the node isn't
    actually disconnected.
    
    Change-Id: I7341e02d7c4fbfa81122e100855718b072838d3c
    Reviewed-on: http://review.couchbase.org/97197
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Graham Pople <grahampople@gmail.com>
  2. [gardening] Clean up test errors

    daschl committed Jul 18, 2018
    Change-Id: Id421d13b4a7c600b6a341c05f6fb6df6bcc629ac
    Reviewed-on: http://review.couchbase.org/97050
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Graham Pople <grahampople@gmail.com>
  3. JVMCBC-556: Distinguish between nodes on the same physical host.

    daschl committed Jul 17, 2018
    Motivation
    ----------
    This changeset makes it possible that multiple nodes are exposed
    via the same physical host, but just on different port ranges.
    
    This is only possible right now via the alternate names config.
    
    Modifications
    -------------
    To make this work, we need to distinguish between the logical
    node and the physical host name which is used to actually connect
    the socket.
    
    So throughout the code we still everywhere work with the logical
    hostname (the "internal" one) but iff the alternate config is used
    we pass this alternate into the node layer so it can propagate
    down through the service and the endpoint.
    
    Since at the node layer this "shift" happens from logical
    to physical the node code is extended to log both so it's
    easier to debug down the road.
    
    Also note that this changeset reverts changes to the NodeInfo
    which have been made previously but are actually not working
    as expected. We also feed the proper service ports down so
    that the correct ports are used only when alternate names
    are actually used.
    
    Result
    ------
    If an alternate hostname should be used it is now propagated
    down into the service and endpoint layer but the logical
    hostname is still used to manage the nodes themselves and
    to lookup vbuckets and so forth.
    
    Change-Id: I040862e26e5c2ad41deac0e3a26d7b7e885a9b2b
    Reviewed-on: http://review.couchbase.org/97006
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: David Nault <david.nault@couchbase.com>
Commits on Jul 17, 2018
  1. JVMCBC-559: Improve *ServiceConfig and related javadoc.

    daschl committed Jul 13, 2018
    Motivation
    ----------
    The service configs themselves and the API in the environment was
    lacking proper javadoc for the functionality which led to some
    confusion. This changeset substantially extends the javadocs in
    this area.
    
    Change-Id: Ia0857349935eb2f6a1684cdac7b3c54fac07f8a0
    Reviewed-on: http://review.couchbase.org/96855
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: David Nault <david.nault@couchbase.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
Commits on Jul 16, 2018
  1. JVMCBC-556: Store proper alternate name in config if AUTO

    daschl committed Jul 13, 2018
    Motivation
    ----------
    This is a leftover bug from the last refactoring, where if AUTO
    is used the name of the selected alternate namespace should be
    used. Right now "auto" would be stored instead which can then
    not be extracted from the config.
    
    Change-Id: Iec61392da0dc7dd25a5686d3ea95adadd1dec3b6
    Reviewed-on: http://review.couchbase.org/96852
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: David Nault <david.nault@couchbase.com>
Commits on Jul 11, 2018
  1. JVMCBC-552 Improve ring buffer diagnostics

    programmatix committed Jul 9, 2018
    Motivation
    ----------
    Recently added diagnostics on the internal ring-buffer used in the Java
    client.  These are currently only available through a thrown
    BackpressureException, so this change gives access to these useful
    diagnostics through an API.
    
    Modifications
    -------------
    Added RingBufferDiagnostics into the current diagnostics API.
    Fixed a typo.
    
    Change-Id: I0a19848de156e82f32c3589f4a2d6b2409fe26ec
    Reviewed-on: http://review.couchbase.org/96724
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: David Nault <david.nault@couchbase.com>
Commits on Jul 10, 2018
  1. Start 1.6.1 Development

    daschl committed Jul 10, 2018
    Change-Id: I5b21ba82380ed9299f66ff0903003cf1cdd3054e
    Reviewed-on: http://review.couchbase.org/96736
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jul 5, 2018
  1. Prepare 1.6.0 Release

    daschl committed Jul 5, 2018
    Change-Id: I32578c596e24150e5189fca49420589d9d4b602a
    Reviewed-on: http://review.couchbase.org/96544
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jul 4, 2018
  1. JVMCBC-558: Revert JVMCBC-535.

    daschl committed Jul 4, 2018
    Motivation
    ----------
    During system testing it has been found that CRAM-MD5 and
    earlier on PLAIN had troubles with those changes so to not
    destabilize the release these changes are reverted for now.
    
    We need to revisit them later once we have a better picture
    of their implications.
    
    Revert "JVMCBC-535: Make sure PLAIN is bailed out early."
    
    This reverts commit 8bdfe36.
    
    Revert "JVMCBC-535: SDK should validate final SASL response"
    
    This reverts commit 254a160.
    
    Change-Id: Ic1508d7664d6350bc80789bf3c09b828892c3d4a
    Reviewed-on: http://review.couchbase.org/96507
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>
Commits on Jul 3, 2018
  1. JVMCBC-557: Avoid accessing event loop for failed channel

    daschl committed Jul 3, 2018
    Motivation
    ----------
    This is a regression from JVMCBC-500, which only affected
    the 2.6 prerelease branch and no stable releases.
    
    With the netty upgrade we had to introduce a FailedChannel
    sine null was no longer accepted. The FailedChannel though
    does not have an event loop attached to it. As a result the
    if check in the reconnect logic returned true since there
    was a channel, but it had no event loop attached and as a result
    the reconnect attempt failed.
    
    Modifications
    -------------
    To remedy this situation, this changeset avoids the overly
    complicated if/else logic on using the event loop of the current
    channel and right away always picking a new one from the IO pool.
    
    This makes this codepath in general cleaner and less error prone.
    
    Result
    ------
    The retry attempts are not disrupted by a null event loop if the
    safeguard triggers on a connect attempt.
    
    Change-Id: I4224f243fe8e876e3c332474ba24c69e654cf8cb
    Reviewed-on: http://review.couchbase.org/96435
    Reviewed-by: Graham Pople <grahampople@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jul 2, 2018
  1. JVMCBC-542: Only use nodesExt to fetch alternates

    daschl committed Jul 2, 2018
    Motivation
    ----------
    Previously the nodes part of the config was used to
    pick up alternate addr hostname and port, but nodesExt
    needs to be used in order to also pick up SSL ports.
    
    Modifications
    -------------
    This changeset adapts the PortInfo section (which represents
    nodesExt) to also include the alternate address portion and
    then modifies the config to set it directly from there rather
    from the pure nodes section. The test case has been adapted
    to also verify SSL ports are loaded since they are already
    also part of this config.
    
    Result
    ------
    For alternate addresses, SSL ports are now also picked up
    properly and the SDK in general looks in the right spot.
    
    Change-Id: Ic518aedbc5216ab91ee8556adf58b875d692c94e
    Reviewed-on: http://review.couchbase.org/96370
    Reviewed-by: Graham Pople <grahampople@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jun 29, 2018
  1. JVMCBC-555: Expose Analytics IO Pool config

    daschl committed Jun 29, 2018
    Motivation
    ----------
    For other services it was possible to configure a custom isolated
    IO pool but analytics was using the one from query. This changeset
    fixes this so that its also possible to configure a custom IO
    pool just for analytics.
    
    Change-Id: I76cec79a6ccd4629e144cd7781b56ed806325b03
    Reviewed-on: http://review.couchbase.org/96319
    Reviewed-by: Graham Pople <grahampople@gmail.com>
    Reviewed-by: Subhashni Balakrishnan <b.subhashni@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  2. JVMCBC-549: Fix orphan enable flag.

    daschl committed Jun 29, 2018
    Motivation
    ----------
    As an oversight when extracting the orphan bits it was still going
    to be enabled with tracing enabled but it needs to listen to its
    own builder flag.
    
    Change-Id: Ia06429e872ff92a55e063616132811e432c97d58
    Reviewed-on: http://review.couchbase.org/96320
    Reviewed-by: Graham Pople <grahampople@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  3. JVMCBC-554: Expose AnalyticsServiceConfig

    daschl committed Jun 29, 2018
    Motivation
    ----------
    Up until now the analytics service used the query service
    configuration for its pool setting, but going forward it should
    have its own configuration like any other service.
    
    Modifications
    -------------
    Cloned the analytics service config from the query one and modified
    the environment to expose it accordingly. The AnalyticsService
    now picks up this config instead of the query one.
    
    Change-Id: I91f9305458d5319494678dd7578d6254c0655db9
    Reviewed-on: http://review.couchbase.org/96316
    Reviewed-by: Graham Pople <grahampople@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  4. Improve debug log for PooledService

    daschl committed Jun 29, 2018
    Motivation
    ----------
    Some debug log messages were missing the hostname context under
    which they are logged - this changeset improves the situation
    by adding the identifier logging.
    
    Change-Id: I72d1ade56c29bc23ec28b75b0e9291804051e692
    Reviewed-on: http://review.couchbase.org/96317
    Reviewed-by: Graham Pople <grahampople@gmail.com>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jun 28, 2018
  1. JVMCBC-551 Fix http config loader on terse bucket config

    subalakr committed Jun 26, 2018
    Http terse config fetch could fail due to malformed url. Verified with
    unit test.
    
    Change-Id: I9d9c823d63534421ef1cdbac2a74c6e5b793740d
    Reviewed-on: http://review.couchbase.org/96125
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: David Nault <david.nault@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
  2. JVMCBC-552: Improve ring buffer diagnostics

    programmatix committed Jun 5, 2018
    Motivation
    ----------
    When core-io's ringbuffer is filled, a BackpressureException is thrown
    to the app.  This change is to provide some additional helpful
    diagnostics in the exception.
    
    Modifications
    -------------
    On adding a request to the ringbuffer, it's stored in the new
    RingBufferMonitor class.  For lock-free performance, this class uses
    a very simple approach of storing one AtomicInteger counter per
    query type.
    
    When requests are pulled from the ringbuffer, they are also removed
    from the RingBufferMonitor.
    
    If the ringbuffer ever fills, the BackpressureException raised now
    contains additional diagnostics from RingBufferMonitor.
    
    If this change is ok, I'll look at adding an API so that apps can query
    the RingBufferMonitor at any point, and so monitor how close to
    backpressure they are.
    
    Special considerations for review:
    - Is there a good place for the RingBufferMonitor to go, rather than
      having to be a singleton.
    - I've had to not use the statically created BackpressureException,
      including some code that sets its stacktrace.  Unsure of the implications.
    - Are the QueryTypes granular enough?
    - Does it also need to be added to RetryHelper?  I think this is after the
      ringbuffer, but please confirm.
    
    Result
    ------
    Tested manually, as wasn't sure how to unit test this.  Counts are
    increased and decreased as expected.
    
    Change-Id: I03ba2f5e949c83b5c0b5441df901b7c414107429
    Reviewed-on: http://review.couchbase.org/95183
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: David Nault <david.nault@couchbase.com>
Commits on Jun 27, 2018
  1. Remove couchbase snapshots maven repo

    daschl committed Jun 27, 2018
    Change-Id: I2cc1fed80552ca1b9bbad1962474863047255e00
    Reviewed-on: http://review.couchbase.org/96166
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  2. Update mockito for testing.

    daschl committed Jun 27, 2018
    Motivation
    ----------
    When the tests are run with jdk 9+ the runtime complains about
    illegal reflective access with our outdated version of mockito,
    so this changeset upgrades it to the latest version.
    
    Note: tests had to be modified because in mockito 1.x the anyString
    matcher included null values while in 2.x it does not anymore.
    the equivalent to this is nullable(String.class) which makes the
    tests pass without changing its semantics.
    
    Change-Id: I261a896faedf7b1bcdad616c9ae04871bf4f608e
    Reviewed-on: http://review.couchbase.org/96144
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  3. Sort Orphans by insertion order.

    daschl committed Jun 27, 2018
    Since not all responses do have a server duration that can be used,
    just sort the orphans by insertion order and cut them off once the
    set size is reached.
    
    Change-Id: I4ba29724b5fa9f1faccf59c8fabbb76c4be3b1c2
    Reviewed-on: http://review.couchbase.org/96161
    Reviewed-by: Mike Goldsmith <goldsmith.mike@gmail.com>
    Tested-by: Build Bot <build@couchbase.com>
  4. JVMCBC-521: Use origin instead of localhost for nodesExt

    daschl committed Apr 10, 2018
    Motivation
    ----------
    If the hostname from nodesExt is missing, the code should not
    use the hardcoded localhost but rather the origin (similar to
    the replace ops already in place).
    
    Modifications
    -------------
    This changeset propagates the origin from the outer layers through
    the json config deserialization and then applies it to the abstract
    bucket decoding.
    
    Result
    ------
    The proper origin hostname is used and not the hardcoded localhost.
    
    Change-Id: If8547fc69f911da00784b98bbcff29c8d4b09749
    Reviewed-on: http://review.couchbase.org/96149
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  5. JVMCBC-521: Wrap raw config into context.

    daschl committed Apr 10, 2018
    Motivation
    ----------
    As a first step of fixing JVMCBC-521, the code needs to be prepared
    to send around not the raw config alone but more information
    associated.
    
    Modifications
    -------------
    A new ProposedBucketConfigContext is added as a value object which
    contains the bucket name and its origin apart from the actual raw
    config.
    
    The rest of the changes is just passing around the value object
    instead of the raw config and adapting tests for the new
    signature.
    
    Result
    ------
    More flexibility when passing around a raw, proposed config.
    
    Change-Id: I10c5a3978fc57db0cd5a460539486d3fcdfbe4cf
    Reviewed-on: http://review.couchbase.org/92512
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
Commits on Jun 26, 2018
  1. JVMCBC-542: Add support for multi network configurations.

    daschl committed Jun 11, 2018
    Motivation
    ----------
    This changeset adds support for multi network configuration,
    which is especially needed in cloud environments where a
    kubernetes setup or similar is required. The associated
    SDK-RFC is #39.
    
    Modifications
    -------------
    This changeset is made up of basically two changes:
    
     - first, the config parsing logic has been extended to understand
       the optionally available externalAddresses and if found in the
       config they are now exposed for usage.
     - the bootstrap workflow has been adapted to accomodate the different
       configurations for auto-pickup or external override.
     - finally, the NodeInfo has been modified to dynamically provide the
       external info so we only have to toggle in one place and not fix
       up all kinds of code paths which may access the node info.
    
    Test cases have been added.
    
    Result
    ------
    core-io now supports multi network configurations as outlined in
    the SDK RFC #39.
    
    Change-Id: Ie90858e213f523a00599184c4297fb6ce92f26c1
    Reviewed-on: http://review.couchbase.org/95413
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  2. JVMCBC-550: Fix reporter log intervals.

    daschl committed Jun 26, 2018
    Motivation
    ----------
    The two reporters had a flaw in their delay algorithm which made
    them emit logs much more often than actually configured.
    
    Change-Id: Ie49180cdcb7ceddde11369f8c75b8ff4bd707a7c
    Reviewed-on: http://review.couchbase.org/96099
    Reviewed-by: Mike Goldsmith <goldsmith.mike@gmail.com>
    Tested-by: Build Bot <build@couchbase.com>
Commits on Jun 21, 2018
  1. JVMCBC-549: Rename Zombie* to Orphan*

    daschl committed Jun 21, 2018
    Both names have been used internally, but we settled on orphan
    reporting instead of zombie reporting so this changeset renames
    the appropriate classes and log messages.
    
    Change-Id: I902db7a8e25b8923b87466ad0210279dcc33cf50
    Reviewed-on: http://review.couchbase.org/95939
    Reviewed-by: Mike Goldsmith <goldsmith.mike@gmail.com>
    Tested-by: Build Bot <build@couchbase.com>
Commits on Jun 20, 2018
  1. JVMCBC-549: Separate tracing from zombie response logging

    MikeGoldsmith authored and daschl committed Jun 18, 2018
    Change-Id: I94815f1a2a476214fe8c8f03d734c3d4c08d08c8
    Reviewed-on: http://review.couchbase.org/95759
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Mike Goldsmith <goldsmith.mike@gmail.com>
Commits on Jun 19, 2018
  1. cleanup: remove single use method

    daschl committed Jun 19, 2018
    Change-Id: I29a12d465eb702922d0e05814d80c70f28c50339
    Reviewed-on: http://review.couchbase.org/95800
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>
    Tested-by: Michael Nitschinger <michael@nitschinger.at>
  2. JVMCBC-541: Add threshold / orphan counters

    MikeGoldsmith authored and daschl committed May 25, 2018
    Motivation
    ----------
    The count property when processing threshold and orphans is meant to
    represent the total number of spans that were reported during a given
    interval. However, the current implementation uses the current service
    set size, which is limited to the the sample size.
    
    Modifications
    -------------
    - add counters for each set service set
    - increment counter when processing new span
    - use counter when generating JSON
    - reset counters when clearing sets
    
    Result
    ------
    Threshold and orphan counts are accurate and not restricted to the size
    of the span set.
    
    Change-Id: I1a5fd984024268eafa934e516f2d7ef4620713b7
    Reviewed-on: http://review.couchbase.org/94768
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Michael Nitschinger <michael@nitschinger.at>