History log of /6.6.0/couchstore/CMakeLists.txt (Results 1 - 25 of 94)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.5.0
# fff3e200 08-Nov-2019 Trond Norbye <trond.norbye@gmail.com>

Mark system directories as SYSTEM to avoid compile warnings

Folly generates a number of compiler warnings which will be muted
if we mark the directory as a SYSTEM directory:

tlm

Mark system directories as SYSTEM to avoid compile warnings

Folly generates a number of compiler warnings which will be muted
if we mark the directory as a SYSTEM directory:

tlm/deps/folly.exploded/include/folly/Traits.h:747:22: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct is_arithmetic<__int128> : ::std::true_type {};
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:749:31: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct is_arithmetic<unsigned __int128> : ::std::true_type {};
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:751:20: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct is_integral<__int128> : ::std::true_type {};
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:753:29: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct is_integral<unsigned __int128> : ::std::true_type {};
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:755:22: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct make_unsigned<__int128> {
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:756:29: warning: ISO C++ does not support ‘__int128’ for ‘type’ [-Wpedantic]
typedef unsigned __int128 type;
^~~~
tlm/deps/folly.exploded/include/folly/Traits.h:759:20: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct make_signed<__int128> {
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:760:20: warning: ISO C++ does not support ‘__int128’ for ‘type’ [-Wpedantic]
typedef __int128 type;
^~~~
tlm/deps/folly.exploded/include/folly/Traits.h:763:31: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct make_unsigned<unsigned __int128> {
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:764:29: warning: ISO C++ does not support ‘__int128’ for ‘type’ [-Wpedantic]
typedef unsigned __int128 type;
^~~~
tlm/deps/folly.exploded/include/folly/Traits.h:767:29: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct make_signed<unsigned __int128> {
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:768:20: warning: ISO C++ does not support ‘__int128’ for ‘type’ [-Wpedantic]
typedef __int128 type;
^~~~
tlm/deps/folly.exploded/include/folly/Traits.h:771:18: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct is_signed<__int128> : ::std::true_type {};
^~~~~~~~
tlm/deps/folly.exploded/include/folly/Traits.h:773:29: warning: ISO C++ does not support ‘__int128’ for ‘type name’ [-Wpedantic]
struct is_unsigned<unsigned __int128> : ::std::true_type {};
^~~~~~~~

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

show more ...


# cf120ada 31-Oct-2019 Jim Walker <jim@couchbase.com>

MB-23086: Create libcouchstore and libcouchstore_views

Generate two libraries so that libcouchstore can lose the
dependency on libv8 and libicu. This will in turn mean that
ep-engine

MB-23086: Create libcouchstore and libcouchstore_views

Generate two libraries so that libcouchstore can lose the
dependency on libv8 and libicu. This will in turn mean that
ep-engine no longer has the dependency on those libraries.

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

show more ...


Revision tags: v6.0.4, v6.0.3
# c2c458ff 19-Mar-2019 sduvuru <sduvuru@gmail.com>

MB-35058: Couchstore-Trace operations on a file

-Tracing support to couchstore and dump trace on detection of corruption
-mprotect of iobuffer
-verify write to buffer cache by readin

MB-35058: Couchstore-Trace operations on a file

-Tracing support to couchstore and dump trace on detection of corruption
-mprotect of iobuffer
-verify write to buffer cache by reading back

The validation checks are passed in as flags when opening the database file.
The options are tracing, write validation and mprotect
-- tracing is turned on
-- write verification by reading back the written block
-- mprotect of internal iobuffer

Note: mprotect is not supported for windows platform.

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

show more ...


# 4d037946 26-Jun-2019 Trond Norbye <trond.norbye@gmail.com>

Add support for skip building unit tests

Skip building unit tests if couchstore is part of
the disabled unit tests set in environment:

export COUCHBASE_DISABLED_UNIT_TESTS="kv_e

Add support for skip building unit tests

Skip building unit tests if couchstore is part of
the disabled unit tests set in environment:

export COUCHBASE_DISABLED_UNIT_TESTS="kv_engine;platform;couchstore"

(This speeds up builds for others who don't modify couchstore)

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

show more ...


# bc928d55 26-Jun-2019 Sriram Melkote <siri@couchbase.com>

MB-32313: Ensure icudtl.dat is available

If only couchstore is built, ensure this file is available next to
the binary which is where v8 expects it when initialized by default.

MB-32313: Ensure icudtl.dat is available

If only couchstore is built, ensure this file is available next to
the binary which is where v8 expects it when initialized by default.

Change-Id: Id1dd1c3624145bd96c553045bd406ba1df3ef9e2
Reviewed-on: http://review.couchbase.org/111241
Reviewed-by: Sriram Melkote <siri@couchbase.com>
Tested-by: Sriram Melkote <siri@couchbase.com>

show more ...


# 5f50fb5b 06-Jun-2019 AnkitPrabhu <ankit.prabhu@couchbase.com>

MB-32313: Upgrade to v8 v7.1

- Use the new v8 API
- CBD-2634 use ICU from v8
- Copy icudtl.dat to bin and initialize ICU with it

Change-Id: I1f5618ca26162630233bdbc718

MB-32313: Upgrade to v8 v7.1

- Use the new v8 API
- CBD-2634 use ICU from v8
- Copy icudtl.dat to bin and initialize ICU with it

Change-Id: I1f5618ca26162630233bdbc71837a1b4f12c3301
Reviewed-on: http://review.couchbase.org/110297
Reviewed-by: Sriram Melkote <siri@couchbase.com>
Tested-by: Suraj Naik <suraj.naik@couchbase.com>

show more ...


# 160b6d14 08-Apr-2019 Chris Hillery <ceej@couchbase.com>

MB-33349: Get Snappy includes from exploded dir

Change-Id: Iaa9eda49f64c34c6e51c46605ba0a21e00f6fd71
Reviewed-on: http://review.couchbase.org/107432
Reviewed-by: Dave Rigby <daver@co

MB-33349: Get Snappy includes from exploded dir

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

show more ...


# 16707513 21-Mar-2019 Trond Norbye <trond.norbye@gmail.com>

Rename config.h to couchstore_config.h

We had a number of projects with their own "config.h" and
depending on the compiler search order you could end up
getting another one than the

Rename config.h to couchstore_config.h

We had a number of projects with their own "config.h" and
depending on the compiler search order you could end up
getting another one than the one you expected.

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

show more ...


# 4c48d572 21-Feb-2019 Ben Huddleston <ben.huddleston@couchbase.com>

MB-30040: Update couchstore to use Folly

Change-Id: Id2eeb0205ff3c1ddf4269876366613b4860c6c2a
Reviewed-on: http://review.couchbase.org/105223
Reviewed-by: Trond Norbye <trond.norbye@

MB-30040: Update couchstore to use Folly

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

show more ...


# fa28ea41 07-Mar-2019 Trond Norbye <trond.norbye@gmail.com>

Refactor: use cb::io::setBinaryMode

platform_set_binary_mode moved to cb::io namespace

Change-Id: Ia58c3aade87fd049a2d5a8c5526b70baddd2ff3a
Reviewed-on: http://review.couchbase.

Refactor: use cb::io::setBinaryMode

platform_set_binary_mode moved to cb::io namespace

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

show more ...


# c042a1fe 07-Mar-2019 Trond Norbye <trond.norbye@gmail.com>

Replace cb_mktemp with cb::io::mktemp

Thanks to clang-format the patch looks bigger than it is.

Change-Id: I4443740b4b2731582d40edb89ae3173615beb143
Reviewed-on: http://review.c

Replace cb_mktemp with cb::io::mktemp

Thanks to clang-format the patch looks bigger than it is.

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

show more ...


# 2bc6261b 24-Jan-2019 Chris Hillery <ceej@couchbase.com>

CBD-2801: Convert couchstore python scripts to python 3

Also simplify the import of ctypes (complex import logic no longer necessary)
and tweak ctypes.CDLL() calls to make PyInstaller ha

CBD-2801: Convert couchstore python scripts to python 3

Also simplify the import of ctypes (complex import logic no longer necessary)
and tweak ctypes.CDLL() calls to make PyInstaller happy.

Change-Id: Id0a4d9520612439d1d8805450c8fbaf79797a531
Reviewed-on: http://review.couchbase.org/102722
Reviewed-by: Patrick Varley <patrick@couchbase.com>
Reviewed-by: Carlos Gonzalez <carlos.gonzalez@couchbase.com>
Tested-by: Chris Hillery <ceej@couchbase.com>

show more ...


# b2c362c6 24-Jan-2019 Dave Rigby <daver@couchbase.com>

couch_dbdump: link against mcbp

A forthcoming change to KV-Engine's mcbp library de-inlines some
functions. As such, couch_dbdump can no longer get the function
definition from the h

couch_dbdump: link against mcbp

A forthcoming change to KV-Engine's mcbp library de-inlines some
functions. As such, couch_dbdump can no longer get the function
definition from the headers, and needs to link against the mcbp binary
protocol decoding library.

Change-Id: Iad7f2573b482a2ce82aa7f6b97877d58fa96052c
Reviewed-on: http://review.couchbase.org/104040
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Reviewed-by: Daniel Owen <owend@couchbase.com>
Reviewed-by: Trond Norbye <trond.norbye@couchbase.com>

show more ...


# 2fc71585 12-Nov-2018 Jim Walker <jim@couchbase.com>

MB-31971: Update dbdump for collection meta and decode namespaces

* Count/Seqno documents (_local) are leb128 encoded
* The manifest data is flatbuffers
* Some of the system event ke

MB-31971: Update dbdump for collection meta and decode namespaces

* Count/Seqno documents (_local) are leb128 encoded
* The manifest data is flatbuffers
* Some of the system event keys have changed format
* We now decode the namespaces by default

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

show more ...


Revision tags: v5.1.3, v5.5.3, v5.1.2
# c4656abc 04-Apr-2018 Aman Achpal <aman.achpal@couchbase.com>

MB-19768 [View Engine] Fix exit path in Native C code

View Engine C code can exit in two ways:
1) When it finishes processing
2) When Erlang sends an "exit" signal
This patch enf

MB-19768 [View Engine] Fix exit path in Native C code

View Engine C code can exit in two ways:
1) When it finishes processing
2) When Erlang sends an "exit" signal
This patch enforces free-up of conditional variables
before destruction of threads in the latter case, and
synchronizes thread exits to prevent double free-ing.

Change-Id: I9b5f55ca580eb0a93dbb720639e4f6fc72ccc88c
Reviewed-on: http://review.couchbase.org/92115
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Harsha H S

show more ...


# aca76c86 14-Mar-2018 Dave Rigby <daver@couchbase.com>

MB-28668: Use CMake-generated visibility header

During testing of couchstore / KV-Engine under
UndefinedBehaviourSanitizer; it was noted that couchstore's external
(exported) symbols

MB-28668: Use CMake-generated visibility header

During testing of couchstore / KV-Engine under
UndefinedBehaviourSanitizer; it was noted that couchstore's external
(exported) symbols do not have the correct macro definition when
importing the symbol - for example when building KV-Engine's
CouchKVStore class.

Specifically, the LIBCOUCHSTORE_API macro expands to nothing when
linking against couchstore; where instead it should expand to
(assuming Linux / macOS):

#define LIBCOUCHSTORE_API _attribute_((visibility(default)))

This causes issues with RTTI and dynamic cast - there ends up being
multiple typeinfo symbols for the same class; meaning RTTI comparisons
fail - for example:

nm -mo ./ep-engine_ep_unit_tests ../couchstore/libcouchstore.dylib | c++filt|grep "typeinfo for FileOpsInterface"
./ep-engine_ep_unit_tests: 000000010171dd60 (__DATA,__data) non-external (was signed char private external) typeinfo for FileOpsInterface
../couchstore/libcouchstore.dylib: 00000000000af840 (__DATA,__data) weak external typeinfo for FileOpsInterface

Note how there's both a non-external and weak, external typeinfo for
this symbol.

To address this, remove our custom visibility header and use the
standard CMake-generated header - which does define the macro
correclty in the import case.

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

show more ...


# fab83949 28-Nov-2017 Trond Norbye <trond.norbye@gmail.com>

Refactor: Use compression through cbcompress

Use cbcompress to deal with compression / decompression instead
of using snappy directly (By doing so we may utilize different
compressio

Refactor: Use compression through cbcompress

Use cbcompress to deal with compression / decompression instead
of using snappy directly (By doing so we may utilize different
compression algorithms in the future)

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

show more ...


Revision tags: v5.1.0, v5.0.0
# 5525660b 07-Aug-2017 Dave Rigby <daver@couchbase.com>

dbdump: Add --map mode to print map of couchstore files

Add a new mode: --map which can print a visual representation of a
couchstore file, marking what type of data (Empty, Header, 3 di

dbdump: Add --map mode to print map of couchstore files

Add a new mode: --map which can print a visual representation of a
couchstore file, marking what type of data (Empty, Header, 3 different
B-Trees, Document) each block of the file contains.

Example output
--------------

$ couch_dbdump --map 0.couch.1
Dumping "0.couch.1":

0 ....................................................dddddddddddd
4096 dddddddddddddddddDDDDDdddddddddddddddddd..................tTTTTT
8192 tTTTTTt.................tTTTTTtTTTTt............................
12288 ................................................................
16384 .dddddddddddddddddddDDDDDddddddddddddddddddddddddddddTTTTTTTTTTT
20480 tTTTTTTTTtTtTTTTTtTTTTtTTTTtTt..................................
24576 .tTt............................................................
28672 hh

. Unoccupied
h h File header
t t B-Tree (by-sequence)
t t B-Tree (by-id)
t t B-Tree (local)
d d Document
lowercase: partial block occupied
Uppercase: whole block occupied.
Shaded background - historic (old) data.

This shows a couchstore file initially created with 100 keys, then 50
of those keys were re-written. Created with:

couch_create -k 100 --vbc 1 && couch_create -k 50 --vbc 1 -r

As show in the key, each block type has a different symbol. Capital
letters are used when the block is whole - i.e. every byte in that
block is of the given type. Lowercase letters are used when the block
is partial - i.e. the remaininder of the block is either empty of the
block is shared with some other type.

Note that --iterate-headers can be used with the --map mode, to walk
over previous headers and show old (historic) data. In that case the
old data is shaded gray.

Implementation
--------------

The map is built by instructing couchstore to traverse all trees and
read all documents, and then recording the ranges of the file which
are accessed. To do this a new FileOps subclass - TrackingFileOps is
created, which interposes between the underlying OS FileOps and
couchstore. All calls are passed onto the underlying OS, however in
the case of read() calls the offset and size of the read is recorded.
This allows a binary (read/not-read) map of the entire file to be
generated.

To track the different types of data accessed, a new (optional) method
to FileOpsInterface is added - tag(). This allows couchstore's file
access code to be modestly annotated to indicate when different types
of data (BTree, Document, etc) are about to be read. TrackingFileOps
implements this method which allows a simple state-machine to be built
up inside TrackingFileOps - what's the current datatype and B-Tree
type which subsequent reads correspond to.

Appendix: Color example output
------------------------------

Color view of the output; assuming the commit is viewed on an ANSI
terminal otherwise it'll just look garbage ;)

Dumping "0.couch.1":

0 ....................................................dddddddddddd
4096 dddddddddddddddddDDDDDdddddddddddddddddd..................tTTTTT
8192 tTTTTTt.................tTTTTTtTTTTt............................
12288 ................................................................
16384 .dddddddddddddddddddDDDDDddddddddddddddddddddddddddddTTTTTTTTTTT
20480 tTTTTTTTTtTtTTTTTtTTTTtTTTTtTt..................................
24576 .tTt............................................................
28672 hh

. Unoccupied
h h File header
t t B-Tree (by-sequence)
t t B-Tree (by-id)
t t B-Tree (local)
d d Document
lowercase: partial block occupied
Uppercase: whole block occupied.
Shaded background - historic (old) data.

Change-Id: Idec3729499049ee7e34ff3ba3f128595356618cd
Reviewed-on: http://review.couchbase.org/81997
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Will Gardner <willg@rdner.io>

show more ...


# 30b18fb0 08-Jun-2017 Jim Walker <jim@couchbase.com>

couch_create: A tool for generating ep-engine compatible couch files

Useful for pre-creating a test data set which you then warmup with.

Check usage() for help

Change-Id: I

couch_create: A tool for generating ep-engine compatible couch files

Useful for pre-creating a test data set which you then warmup with.

Check usage() for help

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

show more ...


# 7399e8cf 17-May-2017 Sriram Ganesan <sriram@couchbase.com>

MB-23763: Cleanup resources held by ICU

(i) Every ucol_open needs to have a corresponding ucol_close
(ii) Invoke u_cleanup on process exit in order to release
all resources

MB-23763: Cleanup resources held by ICU

(i) Every ucol_open needs to have a corresponding ucol_close
(ii) Invoke u_cleanup on process exit in order to release
all resources held by ICU
(iii) Every ucnv_open needs to have a corresponding ucnv_close

Change-Id: I0fa2c6e58cedd00b2c91c9ff3eb17f7a3b4a8e8d
Reviewed-on: http://review.couchbase.org/78265
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Harsha H S <hhs.couchbase@gmail.com>
Reviewed-by: Sriram Ganesan <sriram@couchbase.com>

show more ...


# ec877c45 16-May-2017 Dave Rigby <daver@couchbase.com>

MB-22602: Use $KVEngineAPI to locate memcached headers; depend on xattr

Use the KVEngineAPI_SOURCE_DIR/BINARY_DIR variable instead of hardcoding
'memcached/', and add the missing dependa

MB-22602: Use $KVEngineAPI to locate memcached headers; depend on xattr

Use the KVEngineAPI_SOURCE_DIR/BINARY_DIR variable instead of hardcoding
'memcached/', and add the missing dependancy on xattr/visibility.h

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

show more ...


# 1edc19a9 24-Apr-2017 Jung-Sang Ahn <jungsang.ahn@gmail.com>

MB-23554: Add database consistency check tool

* Added 'couch_dbck' tool, which migrates as many documents as
possible from a corrupted file to a new recovered file.

* There is a

MB-23554: Add database consistency check tool

* Added 'couch_dbck' tool, which migrates as many documents as
possible from a corrupted file to a new recovered file.

* There is a 'stale' mode; once a document is corrupted, the tool
rewinds DB header and recovers the old version of the document if
exists. In some cases it is better than losing the document.

* Right now only basic features are implemented. The others will be
added gradually.

* To do:
1) Display corrupted B+tree node info.
2) If seq-tree is corrupted, re-try using ID-tree that might not be
corrupted.
3) Diagnosis mode: check whether or not the DB file is corrupted,
without recovering it.

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

show more ...


# ff146fae 09-Mar-2017 Jung-Sang Ahn <jungsang.ahn@gmail.com>

CBCS-2: Add latency collector for Couchstore APIs

* Based on platform/Histogram and GenericBlockTimer.

* The collector will be completely bypassed unless it is explicitly
initia

CBCS-2: Add latency collector for Couchstore APIs

* Based on platform/Histogram and GenericBlockTimer.

* The collector will be completely bypassed unless it is explicitly
initiated by outside client.

* Example code in Couchstore side: add below stmt at the beginning
of arbitrary function to collect latency.

...
#include "couch_latency_internal.h"
...
void func1(...) {
COLLECT_LATENCY();
...
}

* Example code in client side:
...
#include <libcouchstore/couch_latency.h>
...
couchstore_latency_collector_start();
... do something with Couchstore ...
couchstore_latency_collector_stop();

* Collected latency info can be dumped using callback function given
by client.

* More features will be added later.

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

show more ...


# 7312d627 27-Feb-2017 Jung-Sang Ahn <jungsang.ahn@gmail.com>

CBCS-4, MB-19995: Add a hash index for lookup of read buffers

* Current IO buffer lookup implementation is based on linear scanning
of LRU list, which will be very inefficient if buffer

CBCS-4, MB-19995: Add a hash index for lookup of read buffers

* Current IO buffer lookup implementation is based on linear scanning
of LRU list, which will be very inefficient if buffer count increases.
To avoid this issue, added supplemental hash table that can easily find
requested offset in O(1).

* Replaced LRU list with boost intrusive list container.

* Eliminated C-style allocations for buffer instances and used
unique_ptr to avoid unintended memory leak or dangling pointers.
Now `readMap` owns all read buffers.

* Non-DGM read throughput comparison:
Buffers Hashing Baseline
16 121180.27 124158.26
32 121803.32 116882.49
64 123452.57 104240.64
128 126257.26 87375.06
256 128643.78 55951.98
512 131274.29 33370.91

* Note that above numbers were estimated under the environment that
can maximize the impact of hashing (Non-DGM, long-lived handles). The
performance gap will become smaller in real use cases.

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

show more ...


# 0a34f4b2 15-Feb-2017 Jung-Sang Ahn <jungsang.ahn@gmail.com>

[Refactor]: Rename C files that including internal.h

* To support C++ features in internal.h, all *.c files that depend
on internal.h should be renamed to *.cc.

* Fixed a number

[Refactor]: Rename C files that including internal.h

* To support C++ features in internal.h, all *.c files that depend
on internal.h should be renamed to *.cc.

* Fixed a number of errors and warnings that newly reported by C++
compiler, such as name mangling and type casting.

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

show more ...


1234