Permalink
Commits on May 10, 2017
  1. MB-24159: Fix segfault in ephemeral backfill

    jameseh96 committed with daverigby May 3, 2017
    DCPBackfillMemory::run would segfault if the underlying rangeRead
    returned no items.
    
    This was because the front and back of the UniqueItemPtr vector were
    unconditionally dereferenced even if non-existent. This was to call
    getBySeqno().
    
    This patch replaces these calls with the startSeqno and endSeqno
    specified when the DCPBackfillMemory task was created. This is
    consistent with the behaviour of DCPBackfillDisk.
    
    Change-Id: I952a78ef3d931bc0832cfffb9e392b394d412fb3
    Reviewed-on: http://review.couchbase.org/77780
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  2. MB-24246: update highestDedupedSeqno when an existing value is changed

    jameseh96 committed with daverigby May 5, 2017
    Without this, rangeReads are allowed to stop "too early" - potentially
    missing out on items that have been updated, i.e.,
    
    ^ = HDDS (HighestDedupedSeqno)
    
     A₁   B₂   C₃            Initial items
    [A₁   B₂   C₃]           rangeRead 1-3
    [A₁   B₂   C₃]  B'₄       Update B
     A₁   B₂   C₃   B'₄       RR ends
    [A₁   B₂   C₃]  B'₄       new rangeRead, still consistent
     A₁   B₂   C₃   B'₄       RR ends
     A₁        C₃   B'₄       purger removes stale B
    !A₁        C₃!  B'₄       RR 1-3 could be requested, but would be
    inconsistent. The HDDS serves to extend the end of a rangeRead to the
    most recently deduped item, in this case B' replaced an older B.
    
    Currently, this updates the HDDS too soon in the case of a stale item,
    forcing the rangeRead to include the new version immediately even though
    the stale item is still present and would still allow a valid range.
    This is to be improved in a coming patch, in which the TombstonePurger
    will update the HDDS when removing the stale item.
    
    Change-Id: If6c57a86bab56ccc007b0fe17c9229218bb0c2c7
    Reviewed-on: http://review.couchbase.org/77779
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  3. MB-16181: Minimal update to the DCP engine methods

    jimwwalker committed May 8, 2017
    Update the DCP methods to pass/accept a new collection length
    parameter.
    
    This is a minimal update as this patch needs to be linked to the
    memcached change to pass CV.
    
    Change-Id: Ied8d0eea1b4d0c17004aa606f96a427d184c1495
    Reviewed-on: http://review.couchbase.org/77835
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  4. Reduce EphTombstoneTest/ConcurrentPurge runtime

    jameseh96 committed with daverigby May 9, 2017
    Reduced the number of documents used, and inserted a yield.
    
    Change-Id: I54b787110e2195b52ec2576c1a4d49cfffc73355
    Reviewed-on: http://review.couchbase.org/77894
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
Commits on May 9, 2017
  1. Merge branch 'watson'

    daverigby committed May 9, 2017
    * watson:
      MB-24066/MB-22178: Set opencheckpointid to 1 after rollback
      MB-24066: Partial revert "MB-22178: Don't use opencheckpointid to determine if in backfill phase"
    
    Change-Id: If7d42bd933abf24a737d2718a4056e4536df2fd8
  2. Merge branch 'watson'

    daverigby committed May 9, 2017
    * watson:
      MB-23591: Re-instate isBucketDeletion check for flusher
    
    Change-Id: I03b313a511ca9b8745213e89edb7d2efb0b964bc
  3. Doxygen: Include all source files in documentation

    daverigby committed May 4, 2017
    The Doxygen configuration explicilty listed specific subdirectories of
    src/ to index. These were (a) outdated and (b) unnecessarily specific
    - anything under src/ we want to index.
    
    Update the Doxyfile to recusrively index all of src/
    
    Change-Id: I5ab083c1ffc50d0ae44ae0fefdb0bbffa09fba1e
    Reviewed-on: http://review.couchbase.org/77712
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Jim Walker <jim@couchbase.com>
  4. MB-24055: Allow HashtableResizerTask interval to be customized

    daverigby committed May 4, 2017
    Add a new entry to configuration.json: ht_resize_interval. This
    controls how often the HashtableResizerTask should be scheduled to
    check if the HashTables need resizing.
    
    Change-Id: Icf312269079956a52bbe1ccdce358804839c4ff9
    Reviewed-on: http://review.couchbase.org/77711
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Jim Walker <jim@couchbase.com>
  5. DefragmenterTask: Don't wait task to complete before shutdown

    daverigby committed Apr 7, 2017
    Fix a bug in the constructor arguments which would mean that the
    DefragmenterTask::completeBeforeShutdown was incorrectly defaulted (to
    true).
    
    Change-Id: I2e994d02f231ef5e19dddb9b1e8543329da8e4b7
    Reviewed-on: http://review.couchbase.org/76486
    Reviewed-by: Daniel Owen <owend@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Jim Walker <jim@couchbase.com>
Commits on May 8, 2017
  1. MB-24066/MB-22178: Set opencheckpointid to 1 after rollback

    owendCB committed with daverigby May 8, 2017
    An opencheckpoint of 0 has the special meaning of being in a backfill
    phase.
    
    Therefore after performing a rollback we must ensure the
    opencheckpointid is reset to 1.  This is the value used when the
    vbucket is originally intialised.
    
    Change-Id: I6b97faa7b502406961a4b48ad7affdbf6bc30512
    Reviewed-on: http://review.couchbase.org/77837
    Well-Formed: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  2. MB-24066: Partial revert "MB-22178: Don't use opencheckpointid to det…

    owendCB committed with daverigby May 2, 2017
    …ermine if in backfill phase"
    
    Revert functional changes in
    Change-Id: Ia977d6bf90e54fd1ceb8db4a9088b19d94d4bc8c,
    which although addressed the rollback bug described in MB-22178, caused
    the bug described in MB-24066.
    
    The tests added in Ia977d6bf90e54fd1ceb8db4a9088b19d94d4bc8c remain but
    the rollback test has been disabled as it attempts a streamRequest when
    the vbucket has a opendcheckpointid of 0.
    
    The test will be re-enabled and modified with a follow-up patch that
    addresses the bug described in MB-22178.
    
    Change-Id: Ifd11c77a10e4ebe571c50e5d518403b423c3dfa5
    Reviewed-on: http://review.couchbase.org/77604
    Well-Formed: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  3. MB-23714: Move new task so it's in priority order

    jimwwalker committed with daverigby Apr 27, 2017
    A related commit added a new task, but not in the correct order.
    
    Change-Id: Ic95b10eb8bb4563cbb5dfc9ce35e4fd808158755
    Reviewed-on: http://review.couchbase.org/77458
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  4. MB-24221: Don't fetch deleted values as part of get_if

    sriganes committed with daverigby May 4, 2017
    The get_if doesn't support deleted values. Hence, it shouldn't be
    part of the options.
    
    Change-Id: I12270a8e61ec7a04b3d166626eb534736e7e403e
    Reviewed-on: http://review.couchbase.org/77746
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
Commits on May 4, 2017
  1. Fix cbstats tasks incorrect key

    jameseh96 committed with daverigby May 3, 2017
    Change-Id: I4c2d3551a2b2a3f1ca213bf3cd9b067140f6e67a
    Reviewed-on: http://review.couchbase.org/77657
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
Commits on May 3, 2017
  1. MB-23211: Allow the expiry callback to carry full item

    sriganes committed Mar 28, 2017
    The expiry callback needs to carry the whole item so that in the
    case of full eviction, the system xattrs can be retained in the
    body after deleting the rest of the body
    
    Change-Id: Id3cb613217f4882a0f0400c01318bb2efc58b8aa
    Reviewed-on: http://review.couchbase.org/75861
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
Commits on May 2, 2017
  1. Remove unnecessary #include "tasks.h"

    daverigby committed Apr 28, 2017
    tasks.h is a relatively expensive header to include, as it contains
    the definitions of various disjoint Task types, so in turn it includes
    a large proportion of ep-engine headers.
    
    However, it is unneessarily included in a large number of places. This
    is probably at last in part due to the fact that globaltask.h didn't
    used to be it's own header, and hence to get the GlobalTask definition
    one needed to include tasks.h
    
    Change-Id: I0971eab4808ce51d470fe061c13796d18b444234
    Reviewed-on: http://review.couchbase.org/77498
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
Commits on Apr 28, 2017
  1. MB-24089: Handle DCP backfill buffers smaller than item size correctly

    manudhundi committed Apr 26, 2017
    When items are drained from DCP readyQ, we free up the DCP backfill
    buffer (that is, we decrement its memory usage). This commit addresses
    2 bugs in that:
    1. We never set the backfill buffer full status to false when the
       next read size is larger than max buffer size. This can result in
       backfill hangs with items larger than backfill buffer size.
    2. We may never set the backfill buffer full status to false when
       buffer.bytesRead == (buffer.maxBytes * 3 / 4) == 0. In practice
       this may never happen as buffer.maxBytes is generally > 4 :).
    
    This commit has fix for both 1 and 2. Also adds a functional test
    and a unit test reproducing the bug 1.
    
    Change-Id: Icf9512bbe6f21296374958b69cfbe851ec8873b3
    Reviewed-on: http://review.couchbase.org/77304
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  2. MB-23885: Add RBAC auth to cbcompact

    jameseh96 committed with daverigby Apr 13, 2017
    Change-Id: Icd2bf20a7cae844363418ee12d46c1bc56f74372
    Reviewed-on: http://review.couchbase.org/76781
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Matt Carabine <matt.carabine@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
  3. Enable xerror in python tooling

    jameseh96 committed with daverigby Apr 27, 2017
    A number of errors are explicitly handled and give reasonable errors,
    but the remaining exceptions will now print the associated message from
    the error map too. Errors which would previously lead to being
    disconnected as the client would not understand are now received and
    raised appropriately.
    
    Change-Id: I69205b105d066f2899f7152969e96065682b0708
    Reviewed-on: http://review.couchbase.org/77450
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: James Harrison <james.harrison@couchbase.com>
Commits on Apr 27, 2017
  1. MB-24141: Use correct unit for slowTask recording

    daverigby committed Apr 27, 2017
    Change-Id: I388eb43fea01f8b79f5a122afa2c68757736fb81
    Reviewed-on: http://review.couchbase.org/77448
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
  2. BasicLinkedList::operator<<: Count elements in seqlist

    daverigby committed Apr 21, 2017
    Change-Id: I3b66dee8122d54aa328941982700b6d07e5daa99
    Reviewed-on: http://review.couchbase.org/77265
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
  3. MB-23734: Do memory mgmt across backfills in Ephemeral backfills

    manudhundi committed Apr 26, 2017
    In Ephemeral buckets we currently do not have backfill memory mgmt.
    Mainly because upon increased memory usage by backfill items we cannot
    easily pause the backfill midway because pausing a backfill will
    increase the duplicate items in the ephemeral sequential data structure.
    
    This commit adds memory mgmt across backfills (each vbucket is an
    individual backfill). Upon full usage of the backfill buffer we stop
    running other backfills until the backfill buffer is empty again.
    
    However once a backfill starts it runs till completion even if its
    memory usage goes beyond the buffer size.
    
    Benefit: We will not run new backfills once backfill buffer is full.
    
    Known limitation: We don't stop the currently running backfill even
                      if the backfill buffer is full.
    
    We plan to address this limitation soon.
    
    Change-Id: If5f77561a856b5001de159cd4655eb30c71e222c
    Reviewed-on: http://review.couchbase.org/77402
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  4. MB-23714: Make VBucketPtr deletion schedule the delete of the VBucket

    jimwwalker committed with daverigby Apr 20, 2017
    Using the std::shared_ptr Deleter this patch hooks into the deletion
    of the VBucket so that a specific AUXIO (for persistent buckets) or a
    NONIO (for ephemeral buckets) task performs the removal of VBucket
    resources. This to ensure that no front-end thread runs the removal of
    memory and more specifically the deletion of the disk data.
    
    The aim of this commit is also to ensure there's no "race" between a
    background task deleting the VB disk file when the VB has itself been
    recreated. This is achieved now by having the creation of a VB to
    increment the revision of the file and ensuring a delete can only
    delete the older revision of the VB.
    
    This has a few subtle changes, as only compaction or creation are
    moving the revision forward, no code paths move the revision back.
    
    1. A flush of the bucket which calls KVStore::reset would previously
    return all vbuckets to a revision of 1. Again to ensure a delete task
    cannot delete a "live" file, the flush doesn't reset the revision
    number. So a flush of the bucket will result in deleted data, but
    with x.couch.4 etc...
    
    2. A delete of an individual vbucket has the same change. Previously
    after a delete, the revision was reset to 1. This is no longer the
    case and after the delete completes the revision is left unchanged.
    
    Change-Id: I40d2f5fd658d9f8dd28a671028544831518a90d0
    Reviewed-on: http://review.couchbase.org/77100
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
Commits on Apr 26, 2017
  1. [Test Code]: Teardown StreamTest class correctly

    manudhundi committed Apr 25, 2017
    During the teardown, only cleanup the objects that were created.
    
    Change-Id: I065ee367013d9f9c8faafe484c13de34003fb8c5
    Reviewed-on: http://review.couchbase.org/77344
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  2. [Test Code]: Run basic backfill unit test for persistent bucket as well

    manudhundi committed with daverigby Apr 26, 2017
    The test code was trying to run flush vbucket for persistent buckets
    while a flusher task was already running and hence resulting in a
    temp fail of flusher.
    
    This has been fixed by not running the flusher by explicit call.
    Rather the test waits for the flusher to complete.
    
    Change-Id: Ic77cdb518aae388baa24187ee2cf588c6bb1a609
    Reviewed-on: http://review.couchbase.org/77340
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
  3. MB-24034 [Ephemeral]: Fix incorrect NumDeletedItems after un-delete

    daverigby committed Apr 21, 2017
    In an Ephemeral bucket, if an item is created, deleted, and then
    re-created, the numDeletedItem count in the SeqList is incorrect - we
    fail to decrement the deleted item count when it's re-created.
    
    Change-Id: Iba9b77be4814ebd81f252c37e4c934c65965532f
    Reviewed-on: http://review.couchbase.org/77186
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Jim Walker <jim@couchbase.com>
  4. MB-23936: Use Threadlocal variables to accumulate stats

    premkumr committed with daverigby Apr 25, 2017
    Currently when we allocate/deallocate memory, we update the per bucket
    variable `totalMemory`. Mutiple threads contend on this variable heavily
    as mem allocation/deallocation happen often. The primary idea of
    this commit is to maintain threadlocal mem counters for each bucket and
    merge it to the `totalMemory` once the local counter reaches a threshold
    either based on size or no.of times the local counter has been updated.
    
    Performance Improvement (30%-35%):
    --------------------------------
    - Tests were run on a cluster of 2 nodes spec: 40 core/2.2 Ghz/64G memory
    - On a high throughput read heavy test of 256B values we noticed a
      [30%] increase in total ops (3.5M ops/s)
    - On a similar write heavy test, we noticed a [35%] increase in ops (1.9M ops/s)
    
    Limitations:
    -----------
    - We create one thread local variable per bucket. Different OS'es seem
      to enforce different limits on the no.of tlv. Although we have a hard
      limit of 10 buckets, I'm noting this here for future reference.
      -> [NetBSD:256 Linux:1024 OSX:512 Windows:1088]
    
    - Because we merge local mem stats after certain thresholds are reached, there
      might be some small delays in reflecting the precise memory usage of a
      bucket. On an active system, the delay should be minimal and not noticeable.
    
    - Windows does not seem to provide an api for releasing the mem
      allocated for a thread-local on thread exit in a way like pthreads do.
      So there will be a small leak of about (3*long) on every bucket
      unload on each thread.
    
    - Valgrind might say that the unit tests have leaks on the
      threadlocals. This is because, in the tests, bucket init happens on
      the main thread & when main thread exits the program it does not
      call pthread_exit, so the dtors are not called.
    
    Change-Id: Id14ced2776a29afae18831b372140dd028136b32
    Reviewed-on: http://review.couchbase.org/76854
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Dave Rigby <daver@couchbase.com>
  5. MB-16181: Make ActiveStream track the current collections separator

    jimwwalker committed with daverigby Apr 21, 2017
    This patch updates the ActiveStream so that it stores a copy of the current
    separator and tracks changes to as they are transmitted through the checkpoint
    via the separator changed SystemEvent.
    
    Change-Id: Ie3ea87d006b0bbab3e0edd8895a4756c7c5d9fe8
    Reviewed-on: http://review.couchbase.org/75502
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
Commits on Apr 25, 2017
  1. MB-24034: VBucketTest: addOne/setOne to return Add/MutationStatus

    daverigby committed with manudhundi Apr 21, 2017
    Change VBucketTest::addOne() & setOne() to return the result of the
    operation, instead of passing in the expected value and having the
    function itself (addOne/setOne) check it.
    
    This was done for two reasons:
    
    1. Sometimes addOne() is used in setup code, where an ASSERT_EQ() is
       more appropriate to check the result.
    
    2. If the EXPECT does fail, then in the previous code the GTest error
       message would point at the implementation of addOne(), which
       generally isn't very helpful - normally you want to see the
       call-site of addOne.
    
    Change-Id: Id478fdf2a96002503b75d6bd40edb62d869d46bc
    Reviewed-on: http://review.couchbase.org/77185
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  2. MB-23994: Update deletedTime when deleted SV is re-deleted

    daverigby committed with manudhundi Apr 7, 2017
    When re-deleting an already deleted item (for example when the deleted
    item has a body and that body is changed), the DeletedTime was not
    updated.  As such, it may be purged too early - the purge age should
    be based on the last modification of the item.
    
    Fix by ensuring the deletedTime is updated whenever the item is
    (re)deleted, not just the first time.
    
    Change-Id: I8d901cd82720597235f1400dcb2c88643ff7ed10
    Reviewed-on: http://review.couchbase.org/76488
    Tested-by: Build Bot <build@couchbase.com>
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
  3. MB-24055 [Ephemeral]: disable Bloom filter

    daverigby committed Apr 24, 2017
    The Bloom filter is still enabled for Ephemeral buckets, however this
    is a waste of memory; as it serves no purpose for Ephemeral buckets.
    
    Disable it - as well as saving any maintenance cost, it also reduces
    the RSS of an empty Ephemeral bucket from:
    
        57800 KB
    to:
    
        44632 KB
    
    Change-Id: I430ec84dbb7ff795141500aa76329b7ae5f5cd17
    Reviewed-on: http://review.couchbase.org/77269
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  4. MB-23999: Perform CAS check only if item being stored is alive

    sriganes committed Apr 21, 2017
    If the existing document is expired, then storing another
    deleted document with a CAS results in a ENOENT instead of
    returning EEXISTS. The CAS check on an expired document is only
    applicable if the incoming document is not in Deleted state
    
    Change-Id: Ib6b78dd50236770a6be27a5fe341e321ef4eaec2
    Reviewed-on: http://review.couchbase.org/77217
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  5. MB-24055: Reduce HashTable::defaultNumBuckets from 1531 to 3

    daverigby committed Apr 24, 2017
    The variable HashTable::defaultNumBuckets configures the number of
    HashTable slots to use by default; assuming ns_server doesn't specify
    a value in the bucket config. This was previously 1531. Given we
    normally have 1024 vBuckets, this creates 1.51M slots in all the
    HashTables (assuming no value from ns_server).
    
    For small buckets this adds a lot of unnecessary overhead -
    particulary comparing Ephemeral to memcache buckets, where their empty
    size (single node) is:
    
        Bucket             RSS (KB)
        <none>             40096
        memcache           40260
        Ephemeral          87504
    
    This first needs to be changed in ns_server (see linked patch) so it
    no longer specifies the default (previously 3079); however once that
    is done we still need to reduce the ep_engine default.
    
    This patch reduces it down to the minimum of 3. Note that's still 3072
    slots by default per bucket; and:
    
    a) This doesn't limit how many Docuements can be stored, on Hash
       collision we simply use internal chaining.
    
    b) The HashTableResizer task runs periodically to select the the
       'optimum' size, so we'll quickly adjust to larger sizes.
    
    After this change, the empty size of an Ephemeral bucket is reduced by
    30MB:
    
        Bucket             RSS (KB)
        Ephemeral(size 3)  57800
    
    Change-Id: I94ce68cf3fbc2dfe70690fe8b18fc0dbada0848d
    Reviewed-on: http://review.couchbase.org/77266
    Reviewed-by: Manu Dhundi <manu@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
Commits on Apr 24, 2017
  1. MB-23711: [Ephemeral] Allow pageOut of Deleted-with-value document

    daverigby committed Mar 31, 2017
    A Deleted-with-value should be able to be paged out under Ephemeral
    buckets (if we're low on space we should be able to remove the deleted
    body), however this currently fails as it is not permitted to delete
    an item which is already marked as deleted.
    
    Given the semantics of Deleted documents are slightly different now we
    have Deleted Bodies, we /should/ be able to delete something which has
    a deleted value.
    
    Update StoredValue and HashTable to correctly set the deleted flag in
    this case, and correct the count of items in the HashTable.
    
    Change-Id: I9bba6fb5779b82b16fa0a6b3bac7ccf468c4c47f
    Reviewed-on: http://review.couchbase.org/76128
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>
  2. DCP Backfill: Use size_t instead of uint32_t to record mem usage

    manudhundi committed Apr 24, 2017
    We keep a record of DCP backfill memory usage to ensure that backfill
    memory usage is bounded by a finite size (backfill buffer size).
    
    We must consistently use size_t instead of uint32_t so that there is
    no overflow error.
    
    Change-Id: I01d0548b7d1cf3081b11bf96aec7868956c0bb6f
    Reviewed-on: http://review.couchbase.org/77270
    Reviewed-by: Dave Rigby <daver@couchbase.com>
    Tested-by: Build Bot <build@couchbase.com>