History log of /6.6.0/kv_engine/engines/ep/tests/ep_perfsuite.cc (Results 1 - 25 of 124)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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
# 55b21f4a 04-Feb-2020 Dave Rigby <daver@couchbase.com>

MB-37096: Debug CRT: Reduce ep_perfsuite workload size further

ep_perfsuite tests still runn quite slowly under Windows Debug
CRT, of the order of 600s on CV machines.

Given we

MB-37096: Debug CRT: Reduce ep_perfsuite workload size further

ep_perfsuite tests still runn quite slowly under Windows Debug
CRT, of the order of 600s on CV machines.

Given we only run this in Debug mode for functional testing, reduce the
ize of the workload (vbucket couns, iterations of stats tests) so it
runs in a more reasonable duration.

This change reduces the runtime of ep_perfsuite.value_eviction from 200s
to 20s.

Change-Id: Ib26819f013d66d0cd2dd0c36964aa1d961b26541
Reviewed-on: http://review.couchbase.org/122106
Well-Formed: Build Bot <build@couchbase.com>
Reviewed-by: Paolo Cocchi <paolo.cocchi@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# d5bf9e25 04-Feb-2020 Dave Rigby <daver@couchbase.com>

MB-37096: Debug CRT: Reduce ep_perfsuite iterations by 20x

ep_perfsuite tests run quite slowly under Windows Debug
CRT, frequently hitting the test suite timeout (1500s) when run on CV

MB-37096: Debug CRT: Reduce ep_perfsuite iterations by 20x

ep_perfsuite tests run quite slowly under Windows Debug
CRT, frequently hitting the test suite timeout (1500s) when run on CV
machines.

Given we only run this in Debug mode for functional testing, reduce the
iteration count by 20x compared to the normal number.

(Note: the code _did_ previously attempt to run at a reduced iteration
count for Debug builds, however it used an #ifdef which is not set on
Windows. Change to use folly's Portability header which handles these
differences.

With this change, ep_perfsuite completes in ~200s on Windows Debug mode.

Change-Id: I22c6fbe5a4eb2b1d877366903cb9535f9e4d027c
Reviewed-on: http://review.couchbase.org/121868
Well-Formed: Build Bot <build@couchbase.com>
Reviewed-by: Trond Norbye <trond.norbye@couchbase.com>
Tested-by: Trond Norbye <trond.norbye@couchbase.com>

show more ...


# b8209f09 04-Feb-2020 Dave Rigby <daver@couchbase.com>

MB-37096: Debug CRT: Reduce ep_testsuite default #vbuckets to 4

ep_testsuite tests run quite slowly under Windows Debug CRT, frequently
hitting the test suite timeout when run on CV mach

MB-37096: Debug CRT: Reduce ep_testsuite default #vbuckets to 4

ep_testsuite tests run quite slowly under Windows Debug CRT, frequently
hitting the test suite timeout when run on CV machines.

Profiling highlights that one reason for this is initializing and then
destroying each engine instance, specifically data for all 1024 vBuckets
which _could_ be used, however few fests use more than 1 or 2.

Change the default maximum number of vBuckets in ep_testsuite tests from
1024 to 4. This reduces the runtime of the ep_testsuite suite from 197s
to 134s under Windows Debug config.

Change-Id: I9bd656590189084f09fb3bb16b8d8efa4de31e8a
Reviewed-on: http://review.couchbase.org/121637
Well-Formed: Build Bot <build@couchbase.com>
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


Revision tags: v6.0.4, v6.5.0
# 8d8ad4cc 22-Nov-2019 Jim Walker <jim@couchbase.com>

MB-37013: Update DcpSnapShotMarker V2 to allow for an extra seqno

To address MB-36948 a new seqno is required in the snapshot marker.

This commit redefines the V2 format so that the

MB-37013: Update DcpSnapShotMarker V2 to allow for an extra seqno

To address MB-36948 a new seqno is required in the snapshot marker.

This commit redefines the V2 format so that the V2 extras is a single
version field (1 byte). The 1 byte version field is used to describe how
the packet is to be decoded, in this MB one V2 encoding is created.

V2.0: The 'value' stores all of the snapshot marker data.
* start (u64)
* end (u64)
* flags (u32)
* maxVisibleSeqno (u64)
* highCompletedSeqno (u64)

With this commit only the V1 and V2.0 encodings are transmitted, but the
V2.0 encoding is only currently transmitted for snapshots with the disk
flag set (and when a sync write has occurred in the vbucket). Because
there is no path yet for the DcpProducer to push down the
maxVisibleSeqno, with this commit V2.0 always transmits 0 for the
maxVisibleSeqno.

On the receipt of a V2.0 message, this patch does tunnel the
maxVisibleSeqno up to KV-engine DCP, this is so the consumer can
calculate the correct number of bytes for buffer acknowledgement.

Note on removal of the following from dcp_snapshot_marker_executor.cc

// HCS should never be sent as 0 or a pre-condition will throw in
// the replicas flusher
if (v2Payload->getHighCompletedSeqno() == 0) {
// Not success so just disconnect
connection.setState(StateMachine::State::closing);
return;
}

This disconnect clause is no longer required because analysis of the
ActiveStream::markDiskSnapshot shows that it would never push down a 0
HCS to the Connection::marker send code.

Extended testing of the committed patch was performed using a multi
node cluster and various failover/rebalance steps to check the
disk-snapshot with the v2.0 encoding was transmitted and successfully
received.

Note: further testing was performed where the Connection::marker local
'maxVisibleSeqno' was initialised to a value to confirm that if all
snapshots used the V2.0 encoding, there is no issue.

Change-Id: I886503d6353d01b284b04af730d581f6be6784c9
Reviewed-on: http://review.couchbase.org/118387
Well-Formed: Build Bot <build@couchbase.com>
Reviewed-by: Paolo Cocchi <paolo.cocchi@couchbase.com>
Reviewed-by: James Harrison <james.harrison@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


Revision tags: v6.0.3
# 413f71d4 11-Sep-2019 Trond Norbye <trond.norbye@gmail.com>

MB-35930: Add support for providing stat args

Allow the STAT call to contain a value containing a JSON
payload containing "arguments and options" to the given
STAT call.

It

MB-35930: Add support for providing stat args

Allow the STAT call to contain a value containing a JSON
payload containing "arguments and options" to the given
STAT call.

It is up to the stat call to define the schema for the
JSON provided to each stat group.

Change-Id: I8e88cddbcb8e7c9ceea22e368f5cc71238618f20
Reviewed-on: http://review.couchbase.org/114585
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Jim Walker <jim@couchbase.com>

show more ...


# a6c7e7be 09-Aug-2019 Ben Huddleston <ben.huddleston@couchbase.com>

MB-34017: Add HCS to SnapshotMarker

To correct the replica on disk HCS we need to tell it what pass it
the HCS value from the active when we send a disk snapshot. Add a
HCS field to

MB-34017: Add HCS to SnapshotMarker

To correct the replica on disk HCS we need to tell it what pass it
the HCS value from the active when we send a disk snapshot. Add a
HCS field to SnapshotMarker. In this patch, we should never send the
SnapshotMarkerV2 or expect to receive it.

Change-Id: I9963e49301574ee9b5ae22b043932c09e6e0ab5b
Reviewed-on: http://review.couchbase.org/113134
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


# 22e2e4de 05-Aug-2019 Dave Rigby <daver@couchbase.com>

ep_perfsuite: Reduce ITERATIONS for Debug builds

Similary to TSan / ASan, run with a reduced iteration count under
Debug builds to speed runtime.

Change-Id: Ib480dbe6b75ed02af16

ep_perfsuite: Reduce ITERATIONS for Debug builds

Similary to TSan / ASan, run with a reduced iteration count under
Debug builds to speed runtime.

Change-Id: Ib480dbe6b75ed02af1667d684c11a090cb4cf81e
Reviewed-on: http://review.couchbase.org/112924
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# 8f0647d8 18-Jul-2019 Trond Norbye <trond.norbye@gmail.com>

Include what you use: platform/platform_thread.h

Some files get this header included from other headers. Include
the file explicitly to reduce the size of the patch which cleans
up t

Include what you use: platform/platform_thread.h

Some files get this header included from other headers. Include
the file explicitly to reduce the size of the patch which cleans
up the affected header.

Change-Id: I9a3e03a54031029688db94340d2f6cde1c916dc2
Reviewed-on: http://review.couchbase.org/112158
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Trond Norbye <trond.norbye@couchbase.com>

show more ...


Revision tags: v5.5.4, v5.5.5
# 04c1c8ec 20-Mar-2019 Trond Norbye <trond.norbye@gmail.com>

Remove config.h

Change-Id: I79eb8c762971255db9d36a5f6461a8a6d0f29249
Reviewed-on: http://review.couchbase.org/106517
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave

Remove config.h

Change-Id: I79eb8c762971255db9d36a5f6461a8a6d0f29249
Reviewed-on: http://review.couchbase.org/106517
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


Revision tags: v5.5.6
# 24922815 08-Mar-2019 Trond Norbye <trond.norbye@gmail.com>

Include what you use

Include what you use, and remove the C linkage
in cbsasl/util.h (we're all C++)

(prepare to get rid of platform/platform.h)

Change-Id: I6be2912761a

Include what you use

Include what you use, and remove the C linkage
in cbsasl/util.h (we're all C++)

(prepare to get rid of platform/platform.h)

Change-Id: I6be2912761a34318163f05a1e3be38cf00909320
Reviewed-on: http://review.couchbase.org/105904
Reviewed-by: Daniel Owen <owend@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Trond Norbye <trond.norbye@couchbase.com>

show more ...


# 557d825e 27-Feb-2019 Ben Huddleston <ben.huddleston@couchbase.com>

MB-30040: Use platform_time.h in kv_engine

Change-Id: Ie1bd9deafda7362f472ab10622575c15fb9b25cc
Reviewed-on: http://review.couchbase.org/105548
Tested-by: Build Bot <build@couchbase.

MB-30040: Use platform_time.h in kv_engine

Change-Id: Ie1bd9deafda7362f472ab10622575c15fb9b25cc
Reviewed-on: http://review.couchbase.org/105548
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


# 7b389725 13-Feb-2019 Dave Rigby <daver@couchbase.com>

Audit uses of condition_variable.wait(lock) in tests

The single argument overload of std::condition_variable::wait (without
a predicate) is error-prone, as it can result in lost notifica

Audit uses of condition_variable.wait(lock) in tests

The single argument overload of std::condition_variable::wait (without
a predicate) is error-prone, as it can result in lost notifications if
the condition variable is spuriously woken up. See
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconc-wait

Audit our uses of wait() without a predicate in test code; fixing any
instances where they are incorrect, and simplifying APIs to make it
harder to use incorrectly.

Change-Id: Ic401f2d17103603c1ea1805359477a25945897f8
Reviewed-on: http://review.couchbase.org/104897
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Trond Norbye <trond.norbye@couchbase.com>

show more ...


Revision tags: v6.0.1, v5.5.3
# 9ea7ed30 26-Nov-2018 Trond Norbye <trond.norbye@gmail.com>

Refactor: Move Dcp Open Flag #defines to constants with limited scope

Change-Id: Ie1f3b67e6e20466fb47ff1882de24d12644e4717
Reviewed-on: http://review.couchbase.org/102114
Tested-by:

Refactor: Move Dcp Open Flag #defines to constants with limited scope

Change-Id: Ie1f3b67e6e20466fb47ff1882de24d12644e4717
Reviewed-on: http://review.couchbase.org/102114
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


# 51f63219 26-Nov-2018 Jim Walker <jim@couchbase.com>

Refactor: Move dcp_last_ variables to producers class

Whenever tests want to check the DCP producer state there's
a bit of boiler plate in extern linking to the mock_dcp.cc
'global'

Refactor: Move dcp_last_ variables to producers class

Whenever tests want to check the DCP producer state there's
a bit of boiler plate in extern linking to the mock_dcp.cc
'global' variables. Also, they're globals which limit the
tests we could write.

We can move the variables to be owned by the MockDcpMessageProducer
to fix the problems above. Tests can now be written to use multiple
producers and further work could be done to associate the variables
with streams for a more complete DCP test structure.

Change-Id: Ib9ef225cfff23b6928649756adcda9ceb5268a7b
Reviewed-on: http://review.couchbase.org/102064
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# 306d7a69 02-Nov-2018 Trond Norbye <trond.norbye@gmail.com>

Refactor: Simplify DCP Control API

We used to pass this a void* and size. We always
pass strings here, so we can might as well use
a cb::const_char_buffer.

Change-Id: If9f5a

Refactor: Simplify DCP Control API

We used to pass this a void* and size. We always
pass strings here, so we can might as well use
a cb::const_char_buffer.

Change-Id: If9f5a71a74e0fae85c5569cc62e29689d7eec33d
Reviewed-on: http://review.couchbase.org/101296
Reviewed-by: Chris Farman <christopher.farman@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


# 18d44712 01-Nov-2018 Trond Norbye <trond.norbye@gmail.com>

Refactor: Use the scoped enums cb::mcbp::ClientOpcode in ep-engine tests

Instead of the uint8_t definitions in PROTOCOL_BINARY_CMD_XXX

Change-Id: If1b5839ce6a3fcde3cf6c3a70f10288f54

Refactor: Use the scoped enums cb::mcbp::ClientOpcode in ep-engine tests

Instead of the uint8_t definitions in PROTOCOL_BINARY_CMD_XXX

Change-Id: If1b5839ce6a3fcde3cf6c3a70f10288f54c40ad5
Reviewed-on: http://review.couchbase.org/101270
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Jim Walker <jim@couchbase.com>

show more ...


# b944e1bd 18-Oct-2018 Trond Norbye <trond.norbye@gmail.com>

MB-31688: Remove the use of [cb::]ProcessClock

It is defined as:

using ProcessClock = std::chrono::steady_clock

The name is shorter, but it adds an extra lookup to figu

MB-31688: Remove the use of [cb::]ProcessClock

It is defined as:

using ProcessClock = std::chrono::steady_clock

The name is shorter, but it adds an extra lookup to figure out
what it is. It used to be different things when not all of the
compilers supported std::chrono::steady_clock, but now that it
is no longer the case it should be removed.

Change-Id: Iebef35e07ec2e0d62495853434f16156b7cde529
Reviewed-on: http://review.couchbase.org/100802
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


Revision tags: v6.0.0, v5.1.3
# 9cca5bff 27-Sep-2018 Trond Norbye <trond.norbye@gmail.com>

Refactor: Use cb::mcbp::Status in ep-engine instead of uint16_t

This makes sure that we don't try to use undefined status
codes in any of the response packets generated.

Change-

Refactor: Use cb::mcbp::Status in ep-engine instead of uint16_t

This makes sure that we don't try to use undefined status
codes in any of the response packets generated.

Change-Id: I5fce55208b408712a92e7621ce3795e847d1da10
Reviewed-on: http://review.couchbase.org/100045
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>

show more ...


Revision tags: v5.5.2
# d6a2e687 05-Sep-2018 Christopher Farman <christopher.farman@couchbase.com>

MB-30552: Convert type of vBucket id's from uint16_t to Vbid [8/n]

(Stage 8 of n) This commit changes to the type of Vbid for
ep's tests, including mock.
Vbid allows greater control

MB-30552: Convert type of vBucket id's from uint16_t to Vbid [8/n]

(Stage 8 of n) This commit changes to the type of Vbid for
ep's tests, including mock.
Vbid allows greater control over what operations can be performed
on a vBucket id, as well as ensuring the output formatting is
consistent. To support the splitting of this into multiple stages,
Vbid can currently be implicitly converted back to uint16_t to
cover elements that have not yet been converted. During this,
there may be logs or prints with "vb:vb:", which should be fixed
within this set of changes.

Change-Id: Ie86933239982b0dd882746fcc5ea0e490b79b3e7
Reviewed-on: http://review.couchbase.org/99627
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# 6c35fca4 07-Sep-2018 Jim Walker <jim@couchbase.com>

MB-26618: [3/n] Remove optional JSON parameter from open

DCP open now does not accept the optional value. This
patch also incorporates MB-24547, the code which would
force replicatio

MB-26618: [3/n] Remove optional JSON parameter from open

DCP open now does not accept the optional value. This
patch also incorporates MB-24547, the code which would
force replication streams into being collection-aware.
ns_server now performs that functionality and since
the JSON value was part of that temporary code, the
dcpOpen retry logic is dropped in this patch.

Change-Id: Iae1cf8cf0f390e44b6a25dac420b2fd2d4247bb5
Reviewed-on: http://review.couchbase.org/99374
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# df977782 06-Sep-2018 Jim Walker <jim@couchbase.com>

MB-26618: [1/n] Add the optional "string" parameter to stream_request

This patch series will move the optional string parameter from
dcp_open to dcp_stream_request

The first ste

MB-26618: [1/n] Add the optional "string" parameter to stream_request

This patch series will move the optional string parameter from
dcp_open to dcp_stream_request

The first step is to add the parameter to stream_request

Change-Id: I61e342d793ab2a5113ba50faa3298d29499ce358
Reviewed-on: http://review.couchbase.org/99310
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# cd62790f 23-Aug-2018 Jim Walker <jim@couchbase.com>

MB-30865: [5/n] Change DocKey API to prepare for leb encoded keys

This patch does a simple API change so that the bulk of the
leb128 (in-memory) patch is smaller.

The primary ch

MB-30865: [5/n] Change DocKey API to prepare for leb encoded keys

This patch does a simple API change so that the bulk of the
leb128 (in-memory) patch is smaller.

The primary change is that DocKey (which is a view of a key)
needs to know if the key it is viewing encodes a collection-ID.

So we no longer are able to set the Collection-ID via the constructor,
we simply state if the key we are viewing does or does not
encode a collection-ID. However because this patch doesn't introduce
in-memory encoded keys, internally the DocKey constructor just sets
the Collection-ID to the default collection. However any where in
the code that does require a collection-ID other than default, the
patch adds some temporary constructors so that the ID can be specified.

The next patch in this series, removes those temporary consructors
and up-dates DocKey/StoredDocKey/Serialised/DocKey to use the
encoded flag to properly store and decode a leb128 prefixed key.

Change-Id: I11d0c5e2c6a2290a6ac5968d072c66acab99e288
Reviewed-on: http://review.couchbase.org/98758
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


Revision tags: v5.5.1, v5.1.2, v5.1.1
# 3525c64a 10-Apr-2018 Jim Walker <jim@couchbase.com>

MB-29262: When scanning the seqno index, use the persisted manifest

When a scan is performed we check if items belong to a deleted
collection by calling isLogicallyDeleted, this previous

MB-29262: When scanning the seqno index, use the persisted manifest

When a scan is performed we check if items belong to a deleted
collection by calling isLogicallyDeleted, this previously always
used the in-memory manifest to determine the state of the key. This
however is dangerous, particularly when the result of a scan is used
to feed DCP (e.g. backfill_disk).

The in-memory manifest can easily lose updates if a node crashes
allowing a situation when we can backfill a client and drop keys
before a crash, but then after the node restarts a client can stream
and now receive keys which would of been dropped before the crash.

A simple example is a client asking for seqno ranges.

First they ask for all collection keys from seqno 0-10, assume seqno
3 and 4 are for the 'beer' collection which has been deleted from
the memory manifest, but not yet flushed to disk.

* Backfill will send 0 to 9 but drop 3 and 4 (3 is 'create-beer')
* Scan completes and client has received all keys.
* memcached crashes before the beer delete fact has been persisted.
* memcached restarts
* Client reconnects and now asks for 10-19, assume 15 and 16 are
'beer' mutations
* Backfill will now send every key, none are logically deleted
* Client gets beer keys and has never seen a create-beer or any prior
'beer' key, an incorrect view of the data.

If the scan drops keys based on the persisted manifest, then this
situation will not occur.

Test-code required some tweaking as we have clash with boost/list.hpp
and ep_test_apis.h both defining check(), this occurred because
callbacks.h now includes vbucket_manifest (and then boost).
callbacks.h has been removed from test_helpers.h

Change-Id: I742e5cccf861baa895f4e72c1ed2b94f2847f4dd
Reviewed-on: http://review.couchbase.org/92774
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# 8d08d4b0 07-Aug-2018 Trond Norbye <trond.norbye@gmail.com>

MB-30149: Drop duplicate parameter to test functions [29/n]

This patch drops the second parameter to the test function which
used to be a pointer to the first interface version of the en

MB-30149: Drop duplicate parameter to test functions [29/n]

This patch drops the second parameter to the test function which
used to be a pointer to the first interface version of the engine
interface.

Change-Id: Ic42e7089c0d3b6c9167c9b7c5974ee1ffc4259fc
Reviewed-on: http://review.couchbase.org/97915
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


# 31b1a00c 07-Aug-2018 Trond Norbye <trond.norbye@gmail.com>

MB-30149: Drop duplicate parameter to test functions [27/n]

* add_sentinel_doc
* perf_background_sets
* perf_load_client
* perf_dcp_client
* single_dcp_latency_bw_t

MB-30149: Drop duplicate parameter to test functions [27/n]

* add_sentinel_doc
* perf_background_sets
* perf_load_client
* perf_dcp_client
* single_dcp_latency_bw_test
* perf_dcp_latency_and_bandwidth

Change-Id: Ib375305950d23d4f98f358b8c13607c47f46620e
Reviewed-on: http://review.couchbase.org/97905
Reviewed-by: Jim Walker <jim@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>

show more ...


12345