Skip to content
This repository

Jul 09, 2014

  1. nimishzynga

    MB-10921 Add a log message for couch_file delete

    Added a log message when we delete a file. This will be helpful
    to find which files are not getting cleanup after delete.
    
    Change-Id: I9c79cfbd141edf05b1bb09918dd62d9d1e547dbf
    Reviewed-on: http://review.couchbase.org/39233
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    nimishzynga authored

Jul 08, 2014

  1. Volker Mische

    Denser partition version logging

    The logging of the partition versions when the group header was
    updated was spread across several lines. That is neither useful
    when skipping over the logs, nor when grepping in the logs. Hence
    put the partition versions output into a single line.
    
    Change-Id: I19f4872c4c063b54385d86ad1258110a8a6e04d2
    Reviewed-on: http://review.couchbase.org/39206
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    vmx authored vmx committed
  2. Sarath Lakshman

    MB-11641 Update partition versions list after compaction delta is app…

    …lied
    
    When the view compactor process delta log records files, it should update
    the new index header with new partitions versions list for that delta log.
    Missing statement for updating partition versions was resulting in missing
    entries for certain partitions in partition versions list if compactor
    was triggered while new passive partitions are added.
    
    Change-Id: I3aa093699af534d6fa2ffafb3e9224109f866e69
    Reviewed-on: http://review.couchbase.org/39203
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Nimish Gupta <nimish@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Volker Mische <volker.mische@gmail.com>
    t3rm1n4l authored t3rm1n4l committed

Jul 04, 2014

  1. Sarath Lakshman

    Optimize for improving stale=false query latency

    The stale=false query triggers an updater job if the current indexed
    seqnos are less than current partition seqno if an updater is not
    already running. Otherwise, if the query's wanted seqnos is less than
    current indexed seqnos and an updater is already running, they are
    added to a waiter list. All the query requests added into a waiter
    list is only processed after completion of current updater instance.
    
    When an updater starts processing mutations, it will process in batches
    and synchronize headers to view group process frequently (Checkpointing).
    But the reply to the waiting queries are only processed after the entire
    updater instance run is complete. After each checkpointing if some of the
    currently waiting query request's wanted_seqnos is less than current indexed
    seqnos, we should be able to reply to the queries immediately.
    
    Optimized checkpointing phase to reply query waiters if wanted_seqnos
    criteria is met. This should improve query latency for stale=false queries.
    
    Change-Id: I44d7067ebc9db7ce690679095e83554dd4244277
    Reviewed-on: http://review.couchbase.org/39051
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Nimish Gupta <nimish@couchbase.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  2. Volker Mische

    MB-11636: Don't delay sending of TCP packets

    The UPR TCP connection haven't had the {nodelay, true} option set. Hence
    the sending of packets was delayed.
    
    Change-Id: I14851dfa37fba6f44809b8365d6d6c17c6b7dad1
    Reviewed-on: http://review.couchbase.org/39111
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Tested-by: Dave Rigby <daver@couchbase.com>
    vmx authored t3rm1n4l committed

Jul 03, 2014

  1. Sarath Lakshman

    MB-11505 upr client: Add time out log message for vbucket stats

    Added a log message if any of the vbucket stats requests take
    more than 2 seconds for receiving the response. Stats request
    will also block wait until response is received or the upr client
    crashes due to any internal error.
    
    Change-Id: I76992f198b7b12e758aa50a8c43b4e37d215c29f
    Reviewed-on: http://review.couchbase.org/39086
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  2. Sarath Lakshman

    upr client: Fix a race condition in print_log callback

    Stream end can happen independently at any time. Hence
    we should not assume that stream information for a request
    will be available when print log is requested.
    
    Change-Id: I2bca4cf9b70377e74a6002155604eb46f8b060c9
    Reviewed-on: http://review.couchbase.org/39091
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed

Jul 02, 2014

  1. MB-11506 Add a stat field for total sequence number difference

    This stat field displays total sequence number difference
    between KV store sequence number and View index sequence number
    summed over all vbuckets. This gives an idea of how much indexing
    is lagging behind w.r.t KV store.
    
    Vbucket partitions that are indexible are considered and other
    partitions are ignored
    
    Change-Id: Ie810edcbf2a45617307c3d7762bb6ab492a55aaa
    Reviewed-on: http://review.couchbase.org/38793
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    harsha authored t3rm1n4l committed

Jul 01, 2014

  1. Sarath Lakshman

    MB-11598 Update partition versions list correctly after compaction

    The compactor delta log files list currently does not have partition
    versions information. Hence, if the compactor and updater is running in
    parallel and additional passive partitions are added, it could end up
    in a situation where additional passive partitions information is not
    updated in the partition versions list.
    
    Fixed compactor to include partition versions list and update
    them accordingly.
    
    Change-Id: I79b8c10f4db389f5762f62e6033c28902ef04474
    Reviewed-on: http://review.couchbase.org/39015
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed

Jun 30, 2014

  1. Sarath Lakshman

    Add more details in upr stream timeout log

    Added bucket, name, start_seqno and end_seqno information in
    the stream timeout log message.
    
    Change-Id: If2e2d84d8502b1f24c96669a3a74913836ec9ec4
    Reviewed-on: http://review.couchbase.org/38733
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  2. Sarath Lakshman

    MB-11461 Use a single upr message for gathering vbucket-seqno stats

    The view engine has to get vbucket sequence numbers for all partitions
    whenever a query is processed. The time taken for requesting the stats
    and collecting partition sequence numbers affect the query latency
    during stale=update_after and stale=false queries. Currently we are
    requesting one message per partition to the EP-Engine. That means, for
    1024 partitions, we will need to process 1024 upr messages.
    
    Added support for sending single upr vbucket-seqno stats message and
    parse interested partition seqnos. This should reduce the network
    noise caused by stats requests and improve query latency.
    
    Change-Id: I602e11923fd26980e1f08dab836b4dfa19a02eb3
    Reviewed-on: http://review.couchbase.org/38691
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  3. Sarath Lakshman

    MB-11579 Use UPR_ADD_STREAM_FLAG_LATEST flag for upr stream request

    When we request a stream for the first time and rollback happens due
    to vbucket resets, there is race condition that could result in a
    stream request with endseqno > vb_high_seqno of that vbucket. This
    will cause stream to hang until more mutations are added to that vbucket.
    
    Eg:
    1. Requested stream for vb 228 for 0 - 6 and we received data
    2. Requested stream for vb 229, but server told to rollback and we rolled
       back our entire index (Now, vb 228 sequence in index = 0, vbuuid =0 because
       of rollback)
    3. To start index update, we obtained end_seqno from vbucket-seqno stats and
       say, seqno is 6
    4. EP-engine resetted vbucket 228 in between
    5. Index updater doesn't know about reset. It requested startseqno = 0,
       endseqno = 6
    
    In order prevent stream from hanging, stream is requested with a special
    flag that tells server to set endseqno. This flag needs to be set only
    when we are requesting stream for a partition first time (ie, paritition
    version is [{0, 0}]).
    
    Change-Id: I292ed61fdbfc37b3c89edf32ec22527414e36187
    Reviewed-on: http://review.couchbase.org/38954
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  4. Sarath Lakshman

    MB-11563 Add a unit test case for rollback after adding partitions

    Change-Id: I2bea97b64f99a03d5d3f369c0d0ad30323227856
    Reviewed-on: http://review.couchbase.org/38930
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  5. Sarath Lakshman

    MB-11563 Update partition versions during updater checkpointing

    The updater performs batch writes. After each short disk batch writes,
    it will synchronize new header information and partition sequence numbers
    upto which it has processed for each partitions. The view_group receives
    the new header, seqnos and update the group header. We updated partition
    versions for each partitions only after the complete updater instance run.
    
    When new passive partitions are added to the current index as part of partition
    migration from another node to current node, we have an way to notify newly
    added passive partiton list to the currently running updater. This ensures that
    updater doesn't need to be killed and restarted again with newly added passive
    partitions, thereby wasting useful indexing time. When the updater receives
    the new passive partitions list, it will start streaming changes from those
    partitions by the updater-loader. When the updater checkpoints after it
    received a new passive partition, it will be still sending a old partition
    version list as part of new header. The view_group's updater checkpoint processor
    calculates the missing partitions by checking which are the partitions which
    are not present in checkpointed group's vbucket seqnos list. Since the seqnos
    list contains the newly added passive partition, we will not be doing any
    addition of that partition's entry in the partitions versions list. So the
    view group's partitions version list has those passive partitions missing now.
    
    At this instance if a higher priority happens, the view group terminates the
    current updater instance (Remember that the correct partitions versions list
    is only updated after complete updater run.). Hence nobody is going to fix
    the partitions versions list and it can have missing passive partitions.
    
    Eg.
    Updater has partition verion list: [{1, v1}, {2, v2}]
    Added new passive partition 5 and updater processed it.
    Updater checkpointed new group,
    seqnos list: [{1, 23}, {2, 23}, {5, 10}]
    part versions list: [{1, v1}, {2, v2}]
    View group kills updater due to higher priority task and now partition versions
    list has missing entries.
    
    Fixed updater to store partition versions for newly added partitons and send
    upto date partitions versions list during checkpointing.
    
    Change-Id: Ia47417e0d37429cc22dc41d826532b71ca116471
    Reviewed-on: http://review.couchbase.org/38931
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Nimish Gupta <nimish@couchbase.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed

Jun 29, 2014

  1. Sarath Lakshman

    Disable updater writer throttling by default

    We have identified few bugs that blocked compaction performance.
    The compactor can now run as fast as updater and hence writer throttling
    is useless for now.
    
    Change-Id: I925e2d17ec6363596dd344f81933e723e08564b4
    Reviewed-on: http://review.couchbase.org/38649
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed

Jun 28, 2014

  1. Sarath Lakshman

    Fix a race condition in unit tests

    The tests 20-debug-params.t and 14-duplicated-keys-per-doc.t are not
    waiting for all running updater processes to be finished before
    shutdown of the view_group. This results in crash if the background
    updater is trying to read paritition db files while shutdown group
    command is in the process of deleting db files.
    
    Change-Id: Ide04ea61b2d05a77261fcb1a3e1be68d2ce997d4
    Reviewed-on: http://review.couchbase.org/38789
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed

Jun 27, 2014

  1. Sarath Lakshman

    MB-11176 Detect vbucket resets by checking start_seqno > end_seqno

    During special scenarios like upgrade from Couchbase 2.0 to Couchbase 3.0,
    UPR server may reset vbuckets multiple times and hence end_seqno might
    become lower than last indexed sequence number. The end_seqno is obtained
    from vbucket-seqno stats and it gets resetted when a vbucket reset happens.
    In such an event, view engine should optimistically check if a rollback is
    required and should perform index rollback.
    
    Change-Id: I6a702adb05f2207e2adcde20e7c418d00393c4cc
    Reviewed-on: http://review.couchbase.org/38876
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Nimish Gupta <nimish@couchbase.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  2. Sarath Lakshman

    MB-11563 Reset partition versions of recent partitions after rollback

    When an index rollback is performed, we restore an old index header. In an
    old index header, the partitions membership of the current index might be
    different. Some recently added partitions may not be present in the index
    snapshot pointed by the rollbacked header. Hence, we need to add entries
    for newly added partitions which are not present in the partition lists
    of old snapshot. We are currently updating seqnos list and cleanup bitmask.
    But parititions version list also has to be updated. Otherwise, when the
    updater tries to start an upr stream, it will not find the partition version
    for a newly added partition and it would crash.
    
    Change-Id: I4296cade0ff58929e4282e02ec6e154030f6205b
    Reviewed-on: http://review.couchbase.org/38878
    Tested-by: Nimish Gupta <nimish@couchbase.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored nimishzynga committed

Jun 25, 2014

  1. Sarath Lakshman

    MB-11259 Change bytes field in upr buffer ack message

    The protocol message for buffer ack is modified to have
    non-zero extlen.
    
    Change-Id: Ia5a355b55f2e27ece494983e62ac3cd04a026889
    Reviewed-on: http://review.couchbase.org/38736
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    t3rm1n4l authored mikewied committed

Jun 23, 2014

  1. Sarath Lakshman

    MB-11462 Fix flow control ack handling for remove stream message

    When a user requests remove_stream for a vbucket through upr client,
    the actual remove of internal stream queue structure is done after receiving
    reply from the server for close_stream upr command. But the flow control ack
    is perfomed before sending the close_stream message by calculating the
    current mutations bytes present in the queue. By the time actual
    server response arrive, some more mutations for that stream would have
    queued if upr server had sent them during the window of time before it
    received the close_stream request. The mutation queue gets removed when
    the server response is processed. This race condition causes few mutations
    being silently removed from the queue and unacknowledged.
    
    Eg.
    
    Time T1:
    User requests close_stream and current stream queue has 10 items
    Before sending close_stream message to upr server, upr client
    sends an flow control ack for 10 items.
    upr client sent close_stream request.
    
    Time T2:
    upr client received 5 mutations for the stream for which we requested
    close stream. The server would have sent these mutations before it received
    close_stream request.
    
    Time T3:
    upr client received close_stream response from server
    Removed the mutation queue for the stream with 5 mutations in it.
    Nobody acked for 5 mutations which were present in the queue.
    
    Change-Id: I4f0be7827c073dfd6c82b1205458a9a72608329d
    Reviewed-on: http://review.couchbase.org/38650
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  2. Sarath Lakshman

    MB-11486 Fix data corruption caused by commit d7d99

    Fix for MB-11472 had a race condition that could cause data corruption.
    The updater finish its operation when there is no id sortfile present
    as well as kvs to be flushed is empty. But there could be a native updater
    instance running in the background processing the last batch. We should
    check and wait for currently running updater to finish before declaring
    update operation as finished.
    
    Change-Id: I404da8fbe77f1d28cbf6f5058e563712e0dee455
    Reviewed-on: http://review.couchbase.org/38648
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  3. Sarath Lakshman

    Revert "MB-11472 Avoid btree update call when there is nothing to flush"

    This reverts commit d7d99c5.
    It is identified that this commit causes data corruption (MB-11486)
    
    Change-Id: I3337cd5f368853710c17bcd11ef1d85ad59daceb
    Reviewed-on: http://review.couchbase.org/38647
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  4. Sarath Lakshman

    MB-11504 Remove stale delta logs from compactor delta log list

    The index compactor can be started anytime without bothering if
    an updater is already running or not. But updater always send its
    log files to group coordinator for compactor's usage. But for a
    compactor, it is only interested in delta files which are generated
    after it is started. We should be able to discard any files created
    before it is started. If a compactor is started while an updater is
    running, it will ask for an explicit ack from updater. This ack can
    be used to flush all old delta log files.
    
    Stale files were being added to the compactor delta log list and
    updater deletes those files from disk if a compactor is currently not
    running. But log files remain in the compactor delta log list. When a
    compactor is started next time, it tries to apply log files which are
    not present on disk. This was leading failures in couch_view_file_merger.
    
    This commit might also might slow down fragmentation by eliminating
    stale delta log files being applied to the compacted index file.
    
    Change-Id: Ic100a28337edcd3156cc011fc80b5225dae5e685
    Reviewed-on: http://review.couchbase.org/38645
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  5. Sarath Lakshman

    MB-11462 Stop leftover upr streams when compactor restarts updater

    If the compactor has finished and verifies that it has caught up
    already and the currently running updater hasn't completed update of
    current delta, it stops the current updater and switches to the compacted
    index file. It has to clear active upr streams after stopping updater process.
    
    Change-Id: I8609cb241748c2c5f04518995cdcbd2f806efc54
    Reviewed-on: http://review.couchbase.org/38644
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  6. Sarath Lakshman

    Ack for unacked bytes when upr client has no active stream

    When upr client completes processing of last stream_end message
    for the last active stream, send flow control ack for the remaining
    unacked bytes. This will help tests to identify whether client has
    processed all bytes sent.
    
    Change-Id: Ic797dc0e19c5ec8e46d4c1d769e2d81359f13aff
    Reviewed-on: http://review.couchbase.org/38643
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  7. Sarath Lakshman

    MB-11462 Fix missing state assignment after flow control check

    The state variable tracks how much user has read from the buffer.
    Return value from check_and_send_buffer_ack() method has to be returned
    as the new state for handle_info callback.
    
    Change-Id: Id2f2989b1453c1edbdaa998e13e4f8ed3a4fad4f
    Reviewed-on: http://review.couchbase.org/38639
    Tested-by: buildbot <build@couchbase.com>
    Reviewed-by: Nimish Gupta <nimish@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    t3rm1n4l authored t3rm1n4l committed

Jun 21, 2014

  1. Sarath Lakshman

    MB-11462 Acknowledge bytes received for close requested streams

    When a close_stream request is send to the upr server, by that
    time upr server would have already placed some mutations in
    its network buffer for that stream. The upr client has to read
    those mutations from the socket and ignore them. But even though
    the client's user is not interested in it, since we received those
    bytes we have to acknowledge using flow control ack message.
    
    Whenever a high priority task arrives, the view engine cancels
    an updater job and sends close stream message for currently active
    upr stream. Since we did not send ack message for closed stream's
    received bytes, connection was getting stuck when upr flow control
    window gets full.
    
    Change-Id: Ieedc664c9716e5e38c00852c1c35056649e69e6c
    Reviewed-on: http://review.couchbase.org/38636
    Tested-by: buildbot <build@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    t3rm1n4l authored vmx committed
  2. Sarath Lakshman

    MB-11490 Close open tmpfile fds before starting native view updater

    All open sort tmpfile fds should be closed before starting the native
    view updater. Observed few failures recently with error codes such as
    COUCHSTORE_ERROR_OPEN_FILE, COUCHSTORE_ERROR_NO_SUCH_FILE and
    COUCHSTORE_ERROR_READ while updater operating on sort tmpfiles.
    
    Change-Id: Ia3140131b2968ab78971e3e7d4aaf899dfc40e97
    Reviewed-on: http://review.couchbase.org/38630
    Tested-by: buildbot <build@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    t3rm1n4l authored vmx committed
  3. Aliaksey Kandratsenka (aka Aliaksei Kandratsenka)

    MB-11296: don't treat empty value as valid json

    Because it's not. It was previously considered valid json due to
    "anything and not just object or array is permitted" code that wraps
    doc value with square braces. Which obviously caused empty value to be
    mis-detected as json.
    
    Change-Id: Id15621cac360047a9353ba0814cb7bbe1c5832b0
    Reviewed-on: http://review.couchbase.org/38628
    Tested-by: buildbot <build@couchbase.com>
    Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    alk authored vmx committed

Jun 19, 2014

  1. Sarath Lakshman

    MB-11472 Avoid btree update call when there is nothing to flush

    The updater writer process data in batches of certain size.
    If all kvs data is processed in last batch and current batch has
    empty kvs, this is the final batch. We do not need to execute
    btree update codepath for just updating the partition seqnos.
    
    Since kvs list is empty and there is no active flush session,
    id_btree sortfile will be nil and that case is currently unhandled
    in the btree update code.
    
    Change-Id: I9b18faf60c215560fb12c96909e83e02717c2216
    Reviewed-on: http://review.couchbase.org/38489
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  2. Sarath Lakshman

    Clear existing streams from upr client if updater crash

    If updater crash due to some reason, the next updater run
    should not be affected. If updater crashes while reading from
    a upr stream, the upr stream request will be active within the
    upr client. We need to remove the active stream if updater exits
    with an error.
    
    Change-Id: I36ee7bf3ef7673cab2547762db7e3db5ae18c355
    Reviewed-on: http://review.couchbase.org/38480
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  3. Sarath Lakshman

    MB-11387 Compute index seq nos before starting updater

    The end sequence numbers upto which the updater has to index
    should be precalculated before starting the updater. We update
    the index one partition at a time. Currently the end sequence number
    is computed just before reading from the partition upr stream.
    By the time one parition stream has been read, the next partition
    sequence would have advanced to a higher value and it accumulates
    further for each partition. This results in stale=false queries
    to wait for long time since one updater instance would take too
    much time to notify all the waiters.
    
    If a compactor process has been already started, it will have to
    chase the updater and do all the work of applying lot of deltas.
    This will also result in compactor never able to catchup and index
    files will remain fragmented all the time.
    
    Change-Id: Ib768fced2a7251d797812f3687159f2cc0e59663
    Reviewed-on: http://review.couchbase.org/38402
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  4. Sarath Lakshman

    Move get_seqs() to couch_set_view_util module

    Change-Id: I697769a9bd5d62c358a44e19d16d1eda0437fb09
    Reviewed-on: http://review.couchbase.org/38401
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Sarath Lakshman <sarath@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  5. Sarath Lakshman

    MB-11458 upr client should crash if any fatal errors happen

    upr client should not supress any erlang process crash that is happening
    to the receive worker and try restarting receive worker. The receive
    worker process should be restarted only if the upr connection is dropped.
    
    Change-Id: I3815247c9981dfeb9af51deced0ac1dffda05257
    Reviewed-on: http://review.couchbase.org/38470
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: buildbot <build@couchbase.com>
    t3rm1n4l authored t3rm1n4l committed
  6. Sarath Lakshman

    MB-11458 Fix parsing of noop message from server

    The upr server sends noop request and the upr client should
    reply as response message. Currently the message parser expects
    noop message from server to be response type. This assumption is
    wrong.
    
    Renamed no_op to noop to make it consistent in the upr client
    implementation.
    
    Change-Id: Id55ec6f483e340f2a51c1c8effe9e10e10479c3a
    Reviewed-on: http://review.couchbase.org/38421
    Tested-by: buildbot <build@couchbase.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    t3rm1n4l authored t3rm1n4l committed
Something went wrong with that request. Please try again.