Skip to content
Commits on Nov 15, 2011
  1. @aartamonau

    don't upgrade rest port config for nodes with defined port_meta

    Aliaksey Kandratsenka committed with aartamonau
    If some node already has per-node rest config with port_meta, this
    means that somebody already set right value.
    
    But most importantly because we run upgrade code for initial server
    startup, previous code always set port_meta to global (because initial
    run is always with 1 node). Breaking ./cluster_run badly.
    
    Not upgrading when port_meta is set fixes cluster_run, while
    preserving correctness for normal production upgrades.
    
    Change-Id: Iecd627a0576043c91392f111bea1f0fd7673b6ac
    Reviewed-on: http://review.couchbase.org/10863
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Commits on Oct 19, 2011
  1. @aartamonau @farshidce

    Revert "disallow rebalance for 5 minutes" changes.

    aartamonau committed with farshidce
    Revert "disallow rebalance 5 minutes after rebalance fails"
    This reverts commit 93e35a2.
    Revert "extended ServersSection#postAndReload for better error handling"
    This reverts commit 05319f7.
    Revert "pass xhr object to error callback of postWithValidationErrors"
    This reverts commit 1f1f685.
    
    Change-Id: I3b27f2ebb2db2eb5d49e4db01f250d4fdca3d673
    Reviewed-on: http://review.couchbase.org/10209
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Farshid Ghods <farshid.ghods@gmail.com>
    Tested-by: Farshid Ghods <farshid.ghods@gmail.com>
Commits on Oct 14, 2011
  1. @farshidce

    disallow rebalance 5 minutes after rebalance fails

    Aliaksey Kandratsenka committed with farshidce
    ep-engine named tap connections from failed rebalance need 5 minutes
    to die.
    
    We keep extra ns_config field with timestamp of latest rebalance
    failure and don't allow starting rebalance if that's between 0 and 5
    minutes after that time.
    
    Compatibility note: we have to check that outside of orchestrator
    process because in 1.7.x it's possible that older node will either
    request or orchestrator process may run on older node.
    
    REST API note: we're using status code 503 (Service Unavailable) with
    standard Retry-After header when we refuse rebalance due to "cool
    down" reason.
    
    Change-Id: Iae89bbfc3fd03310d4b1cf78071245739188a20c
    Reviewed-on: http://review.couchbase.org/10143
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Farshid Ghods <farshid.ghods@gmail.com>
    Tested-by: Farshid Ghods <farshid.ghods@gmail.com>
  2. @farshidce

    extended ServersSection#postAndReload for better error handling

    Aliaksey Kandratsenka committed with farshidce
    Particularly errorMessage argument can be a function that will be
    handled when post fails.
    
    Change-Id: I7451724e5663502b3d9d39863a3d5e2b89de2dca
    Reviewed-on: http://review.couchbase.org/10142
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Farshid Ghods <farshid.ghods@gmail.com>
    Tested-by: Farshid Ghods <farshid.ghods@gmail.com>
  3. @farshidce

    pass xhr object to error callback of postWithValidationErrors

    Aliaksey Kandratsenka committed with farshidce
    So that error handler can get extra headers and get detailed status
    code if needed
    
    Change-Id: Icae1d58b06963ccf7c19bec4a0dbef90455d8ccb
    Reviewed-on: http://review.couchbase.org/10141
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Farshid Ghods <farshid.ghods@gmail.com>
    Tested-by: Farshid Ghods <farshid.ghods@gmail.com>
Commits on Oct 11, 2011
  1. @aartamonau @alk

    Fix higher_priority_node function in normal mode.

    aartamonau committed with alk
    Previously it could prefer a node with lower version just because it
    has lesser node name.
    
    Change-Id: I2f2370d3bfebc83ebb7a69e8a97974b4a96365de
    Reviewed-on: http://review.couchbase.org/10072
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Sep 27, 2011
  1. @aartamonau @alk

    MB-4302 Avoid using _use_global_value in rest port configuration.

    aartamonau committed with alk
    An atom _use_global_value supposed to instruct per-node key searches
    to take global value instead. But since the changes to
    config-related functions are required this causes issues on older
    nodes trying to use such values. In particular it breaks rolling
    upgrade. Instead of using special value we now have additional rest
    property 'port_meta' which can be either 'local' or 'global'. When
    it's 'local' then a per node value must be used, when it's 'global'
    then a global value must be used. The older nodes just ignore this
    property and always see the per node value.
    
    Change-Id: I7e986e7fb92e929fe44ac3803047712510b1d16f
    Reviewed-on: http://review.couchbase.org/9815
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Sep 20, 2011
  1. @aartamonau

    Merge remote-tracking branch 'membase/branch-171' into branch-172.

    aartamonau committed
    * membase/branch-171:
      Add initial vclock to per node keys that changed since 1.6.5.
    
    Change-Id: I6d1a043b18f7e3fc251262250699ae113f0bc2a9
Commits on Sep 14, 2011
  1. @BigBlueHat @farshidce

    natural sorting of Server Nodes on Analytics screen. MB-3791

    BigBlueHat committed with farshidce
    Change-Id: I6ccbc19541812a2eb2b564147bab8d79d3fc16e9
    Reviewed-on: http://review.couchbase.org/9418
    Tested-by: Farshid Ghods <farshid.ghods@gmail.com>
    Reviewed-by: Farshid Ghods <farshid.ghods@gmail.com>
Commits on Sep 12, 2011
  1. @aartamonau

    correctly handle invalid auth_type for default bucket. MB-4260

    Aliaksey Kandratsenka committed with aartamonau
    Via our CLI it was possible to try to create default bucket as bucket
    with per-port moxi. In this case late logic to override bucket type to
    sasl and password to empty was a bit faulty. Particularly,
    sasl_password field was missing causing bucket to require admin
    password.
    
    Change-Id: If3040dddbbf6f7557c1b6d66cdd322b226c7de85
    Reviewed-on: http://review.couchbase.org/9519
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Commits on Sep 6, 2011
  1. @chiyoung @steveyen

    Disable the C++ standard memory allocator in Unix-like systems.

    chiyoung committed with steveyen
    Based on the memory profiling results, we observed that using
    tcmalloc as the memory allocator for C++ STL and string classes
    shows much better behaviors than using the default C++ memory
    pooling allcator. This option is also recommended from the
    tcmalloc official documents. This makes sense to us because
    tcmalloc actually provides the efficient memory pooling per
    thread.
    
    In addition, we saw that the tcmalloc profiler is confused by
    the default C++ memory pooling allocator.
    
    Change-Id: I5d6c64c0de275a4e0f122c8a5dab4d95cf33ce6b
    Reviewed-on: http://review.couchbase.org/9427
    Tested-by: Chiyoung Seo <chiyoung.seo@gmail.com>
    Reviewed-by: Steve Yen <steve.yen@gmail.com>
Commits on Aug 29, 2011
  1. @aartamonau @alk

    Support two modes of execution in mb_master.

    aartamonau committed with alk
    There is known problem regarding rebalance upgrade. VBucket mover spawns
    single mover processes on remote nodes using spawn_link function. For this to
    work ns_vbucket_mover modules must be absolutely the same on both nodes. This
    means that ns_vbucket_mover can't be changed at all in order to preserve
    compatibility. This commit is part of the work to resolve the issue. VBucket
    mover is always launched on a master node. The idea is to ensure that master
    node is always of the latest available version. In this case vbucket mover can
    be changed in such a way that does not require spawning on remote nodes . But
    to achieve desired master selection behavior it's insufficient to change only
    new versions of mb_master. That's why this intermediate version
    exists. Upgrades to this version from older ones work fine since vbucket mover
    is unchanged. At the same time mb_master is made to support two modes of
    execution: one that is used by older versions and one that will be used by
    newer versions. The latter mode is enabled when the cluster contains only the
    nodes that support it. And whenever some node of older version is added to a
    cluster, behavior is reverted to the old one. Once cluster contains only new
    nodes and operates in new mode, other 2.0 nodes can be connected to it. One of
    those 2.0 nodes will take over the mastership and it will be possible to
    perform rebalance upgrade even if ns_vbucket_mover will have changed.
    
    Change-Id: I3a1b3c2c8413cb04f6641b69d39203280dc74e80
    Reviewed-on: http://review.couchbase.org/9159
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
  2. @aartamonau @alk

    Helpers to get a version of certain app and to parse it.

    aartamonau committed with alk
    Change-Id: I7511e9a2a3cf6908643a96c1dfc92a2da026dfa0
    Reviewed-on: http://review.couchbase.org/9158
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
  3. @aartamonau @alk

    MB-4160 Fix changing admin port.

    aartamonau committed with alk
    Change-Id: I848d996537819581464f1e3b0ad68dbc19f3c172
    Reviewed-on: http://review.couchbase.org/9156
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
  4. @aartamonau @alk

    Allow per node config requests return global values.

    aartamonau committed with alk
    In case '_use_global_value' atom corresponds to some key or subkey in
    a config then global value will be returned by search_node and
    search_node_prop functions.
    
    Change-Id: Ic815c7658d113e9ebef746e56ad3d1db24e32a47
    Reviewed-on: http://review.couchbase.org/9155
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Aug 24, 2011
  1. @aartamonau @alk

    Add initial vclock to per node keys that changed since 1.6.5.

    aartamonau committed with alk
    This change fixes MB-4219.
    
    When config merging routines encounter two values not having vclocks
    attached to them then the value that came from remote node is
    chosen. This can cause certain races. Particularly this is the cause
    of upgrade issues seen on windows: when node is started for the first
    time it upgrades old config but then it pulls the config from other
    nodes and prefers foreign value (outdated one) to its own. This change
    introduces initial vclocks for such vulnerable keys so that new values
    will be preferred.
    
    Change-Id: Ibe85213eb8df2392f6b4b34413062c0aed19c0a1
    Reviewed-on: http://review.couchbase.org/9206
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Aug 19, 2011
  1. @aartamonau @alk

    MB-3945 Fix replicas promotion after failover.

    aartamonau committed with alk
    Since lists:splitwith was used instead of lists:partition it was
    possible to get vbucket map containing undefined in place of first
    replica even if other replicas were available after failover.
    
    Change-Id: I48289239bca035bad7ac84bf40cdf29ed31066d4
    Reviewed-on: http://review.couchbase.org/9120
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Aug 15, 2011
  1. @aartamonau @steveyen

    MB-4180 Fix grabbing diag.

    aartamonau committed with steveyen
    Before Erlang R14B02 it was possible to call restart_child on
    processes with temporary restart type though it was not something
    anyone supposed to do. R14B02 stopped saving initial arguments for
    temporary processes to save some memory. Though child specifications
    of such processes were still saved. Thus an attempt to restart_child
    temporary process would cause an error. This must be fixed in R14B03
    where child specifications of temporary processes are cleaned up
    properly and no one should see {error, already_present}.
    Some details:
      http://erlang.org/pipermail/erlang-bugs/2011-March/002273.html
    
    Change-Id: I62b6d2979e989bbd685e1029a75471e31bc5af82
    Reviewed-on: http://review.couchbase.org/8945
    Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Steve Yen <steve.yen@gmail.com>
    Tested-by: Steve Yen <steve.yen@gmail.com>
  2. @steveyen

    save config after config cas. MB-4186

    Aliaksey Kandratsenka committed with steveyen
    We need to initiate config saving after each config update. config cas was
    missing that, sadly.
    
    Change-Id: I60de70ee2674b2e73c82096604673998b263afb3
    Reviewed-on: http://review.couchbase.org/8946
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Commits on Aug 9, 2011
  1. @bcui6611

    MB-3961 Work around inet:getiflist() bug under multi-home

    bcui6611 committed
    inet:getiflist() doesn't work well if multi-ipaddress are configured.
    Both uuid.erl and addr_utils.erl depend on this function. As such,
    either we use inet:getifadrs() and reimplement uuid to remove this
    dependency.
    
    Change-Id: Ie5d4f44e9201f1bf78f4bcae6aa7472b50086d93
    Reviewed-on: http://review.couchbase.org/8653
    Tested-by: Bin Cui <bin.cui@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jul 23, 2011
  1. @steveyen

    added documentation on cluster joining sequence

    Aliaksey Kandratsenka committed with steveyen
    Change-Id: I43fc4b12860c19e04023fd5384699bead0b42c01
    Reviewed-on: http://review.couchbase.org/8289
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Steve Yen <steve.yen@gmail.com>
  2. @steveyen

    prevent 1.7.1 node joining 1.6.x cluster and vice versa

    Aliaksey Kandratsenka committed with steveyen
    Change-Id: Iaa411340d31f82de7690772c1beeb1c0e4b66570
    Reviewed-on: http://review.couchbase.org/8290
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Steve Yen <steve.yen@gmail.com>
Commits on Jul 19, 2011
  1. @steveyen

    raise ebucketmigrator's upstream timeout to 10 minutes

    Aliaksey Kandratsenka committed with steveyen
    Because it makes sense to keep trying instead of failing rebalance.
    
    Change-Id: I60f61f19230732f41960552ff6ceadb905f4207a
    Reviewed-on: http://review.couchbase.org/8084
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Steve Yen <steve.yen@gmail.com>
  2. @steveyen

    don't use best_effort option of janitor

    Aliaksey Kandratsenka committed with steveyen
    Because it can try replicating to/from not ready node. It's much safer
    to expect all nodes to be healthy.
    
    Change-Id: Ieb7ba1c3451e1dcd3589ab5af6c33840b66dcbd4
    Reviewed-on: http://review.couchbase.org/8157
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Steve Yen <steve.yen@gmail.com>
Commits on Jul 16, 2011
  1. @vmx @alk

    Display a warning when node was auto-failovered. MB-4074

    vmx committed with alk
    When a node was auto-failovered, display a warning at the server
    screen including a "reset quota" button.
    The quota can also be reset on the settings screen. It will only
    be displayed if there is something to reset.
    
    When an error occurs a popup is shown.
    
    This commit fixes MB-4074.
    
    Change-Id: Id1e4d0d559d6563577ab9fb079bed6b8919d6b0d
    [alk@tut.by: hide auto-failover warning by default]
    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
    Reviewed-on: http://review.couchbase.org/8010
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
  2. @steveyen @farshidce

    Revert "Revert "batch replication changes during rebalance""

    steveyen committed with farshidce
    This reverts commit d6663ae.
    
    Change-Id: Idd2f1d1610a25b5a94d6ec11742eb4c3890da235
    Reviewed-on: http://review.couchbase.org/8048
    Tested-by: Farshid Ghods <farshid.ghods@gmail.com>
    Reviewed-by: Farshid Ghods <farshid.ghods@gmail.com>
Commits on Jul 15, 2011
  1. @alk

    ignore memcached buckets in janitor:cleanup

    Aliaksey Kandratsenka committed with alk
    Right after bucket creation we request janitor run. Regardless of
    bucket type. This leads to janitor crash on memcached buckets.
    
    Because janitor was never intended to handle memcached bucket types it
    makes sense to cover memcached bucket types in janitor.
    
    Change-Id: Ifc3b36f9b2efbbf1e4ea47050f33e28fe393af9e
    Reviewed-on: http://review.couchbase.org/7987
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Commits on Jul 12, 2011
  1. @steveyen

    Revert "batch replication changes during rebalance"

    steveyen committed with Srinivas Vadlamani
    This reverts commit 9d821b1.
    
    When a user uses "Stop Rebalance", some replication streams
    were not correctly resumed after the stopping.
    
    Change-Id: I71ad67a5d6522cb92a57323675049d92ac026794
    Reviewed-on: http://review.couchbase.org/7925
    Tested-by: Srinivas Vadlamani <srinivas@couchbase.com>
    Reviewed-by: Srinivas Vadlamani <srinivas@couchbase.com>
  2. @steveyen

    membase/memcached bucket min RAM quota are cmd-line configurable.

    steveyen committed with Dale Harvey
    For many-bucket testing, the ability to change the minimum RAM quota
    for buckets is useful.  For example, to get a 5 MB minimum
    membase-type bucket RAM quota, append this when running the erl...
    
      erl ... -ns_server membase_min_ram_quota 5
    
    The new keys are membase_min_ram_quota and memcached_min_ram_quota.
    
    Change-Id: Ic43b0bc8b1608bb13cde8cdbfcc5152b3bc511b3
    Reviewed-on: http://review.couchbase.org/7899
    Tested-by: Steve Yen <steve.yen@gmail.com>
    Tested-by: Dale Harvey <daleharvey@arandomurl.com>
    Reviewed-by: Dale Harvey <daleharvey@arandomurl.com>
  3. @steveyen

    Command-line configurable grab_stats_every_n_ticks

    steveyen committed with Dale Harvey
    During cloud multitenancy testing of many buckets, stats gathering was
    a CPU consumption culprit.  Allow stats capture to be less often by
    command-line configuration.
    
    Change-Id: I93632ce1b6d6f96d26a78d2cf5a19a82a2c2bc60
    Reviewed-on: http://review.couchbase.org/7897
    Tested-by: Steve Yen <steve.yen@gmail.com>
    Tested-by: Dale Harvey <daleharvey@arandomurl.com>
    Reviewed-by: Dale Harvey <daleharvey@arandomurl.com>
  4. @steveyen

    Allow ns_tick interval to be cmd-line overridable.

    steveyen committed with Dale Harvey
    This allows for easier testing of different cloud configurations.
    
    Change-Id: I05b5c60243a501e46c747f6d6b447c305a4852dd
    Reviewed-on: http://review.couchbase.org/7895
    Tested-by: Steve Yen <steve.yen@gmail.com>
    Tested-by: Dale Harvey <daleharvey@arandomurl.com>
    Reviewed-by: Dale Harvey <daleharvey@arandomurl.com>
  5. @steveyen

    Removed unused defines

    steveyen committed with Dale Harvey
    Change-Id: I226b753869d25b2e2060222c4cd287aab758ed87
    Reviewed-on: http://review.couchbase.org/7894
    Tested-by: Steve Yen <steve.yen@gmail.com>
    Tested-by: Dale Harvey <daleharvey@arandomurl.com>
    Reviewed-by: Dale Harvey <daleharvey@arandomurl.com>
Commits on Jul 11, 2011
  1. @vmx @alk

    Make auto-failover common_tests work with current version.

    vmx committed with alk
    The config key changed from auto_failover to auto_failover_cfg.
    
    Change-Id: Ie7a9ab9e765280f5a148532654f5c46c6c060f95
    Reviewed-on: http://review.couchbase.org/7772
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
  2. @vmx @alk

    Always send mails when node can't be auto-failovered.

    vmx committed with alk
    If a node goes down and the maximum number of nodes
    that may be auto-failovered is already reached, a
    notification email will be send.
    
    Change-Id: I8e3cb4fc17e53fbe0292a3220bafa7ae1a4a5b1c
    Reviewed-on: http://review.couchbase.org/7770
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Jul 8, 2011
  1. @bcui6611

    log vbucket mover's pids for better rebalance logging

    Aliaksey Kandratsenka committed with bcui6611
    Currently we have quite verbose replication logging. But rebalance
    ebucketmigrators are a bit less verbose. During recent bug
    investigation lack of this information was impediment.
    
    Change-Id: I1d7d3ccbf31b76568c01c0de8e4e2e890055588d
    Reviewed-on: http://review.couchbase.org/7816
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Reviewed-by: Bin Cui <bin.cui@gmail.com>
Something went wrong with that request. Please try again.