Revision tags: v7.0.2, v6.6.3, v7.0.1, v7.0.0, v6.6.2, v6.5.2, v6.6.1, v6.0.5, v6.6.0, v6.5.1, v6.0.4, v6.5.0, v6.0.3, v5.5.4, v5.5.5, v5.5.6, v6.0.1, v5.5.3, v6.0.0, v5.1.3, v5.5.2, v5.5.1, v5.1.2, v5.1.1 |
|
#
08685a87 |
| 12-Apr-2018 |
Jim Walker <jim@couchbase.com> |
MB-29040: [1/2] Correctly strip user xattrs A bug in the expiry path means a document with user xattrs is not having the body removed. Now when we rebalance and such a deleted docume
MB-29040: [1/2] Correctly strip user xattrs A bug in the expiry path means a document with user xattrs is not having the body removed. Now when we rebalance and such a deleted document is transferred, it fails validation because the datatype is xattr and json. Change-Id: Ie5a71e6fc640bfd614c8bbd68c91b99fbdf8aed2 Reviewed-on: http://review.couchbase.org/92616 Reviewed-by: Dave Rigby <daver@couchbase.com> Tested-by: Build Bot <build@couchbase.com>
show more ...
|
#
f1bc7c68 |
| 08-Mar-2018 |
Jim Walker <jim@couchbase.com> |
MB-28773: Require UID in the Manifest Update the Manifest JSON code so that we expect a UID in the manifest The UID follows the same format as the collection UID and its purpose
MB-28773: Require UID in the Manifest Update the Manifest JSON code so that we expect a UID in the manifest The UID follows the same format as the collection UID and its purpose is to allow easy identification of a buckets collection settings. Change-Id: Ic660ae018e6782ceee07a58c14fa391741ddb4d1 Reviewed-on: http://review.couchbase.org/91176 Tested-by: Build Bot <build@couchbase.com> Reviewed-by: Dave Rigby <daver@couchbase.com>
show more ...
|
Revision tags: v5.0.1 |
|
#
dea18910 |
| 25-Oct-2017 |
Jim Walker <jim@couchbase.com> |
MB-26455: Allow correct processing of 'old' keys and separator changes The collection's separator can only be changed when 0 collections exist. However nothing stops the separator from c
MB-26455: Allow correct processing of 'old' keys and separator changes The collection's separator can only be changed when 0 collections exist. However nothing stops the separator from changing if there are deleted collections (and their keys) in play. Prior to this commit each separator change resulted in a single system event being mutated, that event had a static key. Thus a VB could have the following sequence of keys/events. 1 fruit::1 2 fruit::2 <fruit collection is deleted> <separator is changed from :: to - > <fruit collection is recreated> 6 fruit-1 7 fruit-2 <fruit collection is deleted> <separator is changed from - to # > 9 $collections_separator (the Item value contains the new separator) 10 $collections::fruit (fruit recreated) 11 fruit#1 12 fruit#2 In this sequence, some of the changes are lost historically because a static key is used for the separator change. Between seqno 2 and 6 the separator changed from :: to -, but the separator change system event is currently at seqno 9 with # as its value. With this setup a problem exists if we were to process the historical data e.g. whilst backfilling for DCP or performing a compaction collection erase. The problem is that when we go back to seqno 1 and 2, we have no knowledge of the separator for those items, all we have is the current # separator. We cannot determine that fruit::1 is a fruit collection key. This commit addresses this problem by making each separator change generate a unique key. The key itself will encode the new separator, and because the key is unique it will reside at the correct point in history for each separator change. The unique key format will be: $collections_separator:<seqno>:<new_separator> With this change the above sequence now looks as: 1 fruit::1 2 fruit::2 <fruit collection is deleted> 4 $collections_separator:3:- (change separator to -) <fruit collection is recreated> 6 fruit-1 7 fruit-2 <fruit collection is deleted> 9 $collections_separator:8:# (change separator to #) 10 $collections::fruit (fruit recreated) 11 fruit#1 12 fruit#2 Now the code which looks at the historical data (e.g. backfill) will encounter these separator change keys before it encounters collection keys using that separator. Backfill and collections-erase can just maintain a current separator and can now correctly split keys to discover the collection they belong to. The collections eraser and KVStore scanning code now include a collections context which has data and associated code for doing this tracking. A final piece of the commit is the garbage collection of these unique keys. i.e. if each separator change puts a unique key into the seqno index, how can we clean these away when they're no longer needed (i.e. all fruit:: keys purged)? Whilst the eraser runs it tracks all 'separator change' keys, because a separator change can only happen when 0 collections exist, it can assume that all but the latest separator change key are redundant once the erase has completed. This list of keys are simply deleted in the normal way by pushing a deleted Item into the checkpoint once compaction is complete. Change-Id: I4b38b04ed72d6b39ceded4a860c15260fd394118 Reviewed-on: http://review.couchbase.org/84801 Tested-by: Build Bot <build@couchbase.com> Reviewed-by: Dave Rigby <daver@couchbase.com>
show more ...
|
#
6dcad8cd |
| 07-Feb-2018 |
Jim Walker <jim@couchbase.com> |
MB-25342: Fix removeKey as value evicted items still need removing The removeKey function is only removing keys if they're resident. resident or not, if the key is found and has a matchi
MB-25342: Fix removeKey as value evicted items still need removing The removeKey function is only removing keys if they're resident. resident or not, if the key is found and has a matching seqno, delete it. Change-Id: I57b7a5c74d2185afacd1447cf8e77ca6c30dbfee Reviewed-on: http://review.couchbase.org/89001 Reviewed-by: Dave Rigby <daver@couchbase.com> Tested-by: Build Bot <build@couchbase.com>
show more ...
|
#
4730ffcf |
| 27-Oct-2017 |
Jim Walker <jim@couchbase.com> |
MB-16181: Collection separator tidy-up The default separator should be : not ::, so correct those tests which have been written using :: Change-Id: If44dc77744cb08d405092f030877
MB-16181: Collection separator tidy-up The default separator should be : not ::, so correct those tests which have been written using :: Change-Id: If44dc77744cb08d405092f030877b8b2b07386a9 Reviewed-on: http://review.couchbase.org/85980 Reviewed-by: Dave Rigby <daver@couchbase.com> Tested-by: Build Bot <build@couchbase.com>
show more ...
|
Revision tags: v5.1.0 |
|
#
ea1d84e5 |
| 20-Sep-2017 |
Jim Walker <jim@couchbase.com> |
MB-25342: Reduce map lookups by tracking the largest endSeqno To determine if a key@seqno is logically deleted we are splitting the key and looking up in the manifest map for the collect
MB-25342: Reduce map lookups by tracking the largest endSeqno To determine if a key@seqno is logically deleted we are splitting the key and looking up in the manifest map for the collection's metadata. However if we track the greatest end-seqno we can 1) Only do map lookups when the key@seqno is part of the deleted range 2) Quickly determine the key is not logically deleted when no collections are in the deleting state, no lookups at all. Change-Id: Ia9d164fc2e97dc4d23e501b4f03d9f74cff84a28 Reviewed-on: http://review.couchbase.org/83570 Reviewed-by: Dave Rigby <daver@couchbase.com> Tested-by: Build Bot <build@couchbase.com>
show more ...
|
#
37af60ff |
| 20-Oct-2017 |
Jim Walker <jim@couchbase.com> |
MB-25342: Full eviction collections eraser tests skipping item count The item count check was disabled for FE temporarily due to it mis counting, we can now remove the function and have
MB-25342: Full eviction collections eraser tests skipping item count The item count check was disabled for FE temporarily due to it mis counting, we can now remove the function and have both VE and FE tests check the final item counts. Change-Id: Ia17363f36a5a3a5f8af0d010482eb3e4908d3e16 Reviewed-on: http://review.couchbase.org/84636 Tested-by: Build Bot <build@couchbase.com> Reviewed-by: Dave Rigby <daver@couchbase.com>
show more ...
|
#
a33e0978 |
| 20-Sep-2017 |
Jim Walker <jim@couchbase.com> |
MB-25342: Erase deleted collection keys during in compaction Add a new call back (using std::function) so that the compactor can check if a key belongs to a deleted collection and should
MB-25342: Erase deleted collection keys during in compaction Add a new call back (using std::function) so that the compactor can check if a key belongs to a deleted collection and should be dropped from the database. Change-Id: Iebefd385cfcae38745c81563113c025bba90890e Reviewed-on: http://review.couchbase.org/83559 Tested-by: Build Bot <build@couchbase.com> Reviewed-by: Dave Rigby <daver@couchbase.com>
show more ...
|