Commit Graph

106 Commits

Author SHA1 Message Date
Tao He 9e77fdb2ee
Fixes lock, and the underlying keepalive implmentation. (#60)
* Fixes lock, and the underlying keepalive implmentation.

The previous implementation is buggy when a lot of locks happen at the same time,
as the cpprestsdk's threadpool use a fixed number of thread for posix platform:

https://github.com/microsoft/cpprestsdk/blob/master/Release/src/pplx/threadpool.cpp#L198

Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-21 18:05:35 +08:00
Tao He bb22ef4d7f Revert "Wait: wait without callback, otherwise there will be use-after-dtor."
This reverts commit 7b16ce6770.

That patch is invalid.
2021-04-28 17:36:27 +08:00
Tao He 7b16ce6770 Wait: wait without callback, otherwise there will be use-after-dtor.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-27 22:24:04 +08:00
Nils Carlson ad2da0ac7e
Change KeepAlive lease expiry to throw std::out_of_range (#55)
Update documentation to show different exceptions used by KeepAlive as well.
2021-04-08 10:18:26 +08:00
Tao He 3e30c4c61d
Optimize the implementation of error handling in keep alive. (#54)
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-07 23:20:33 +08:00
Tao He cee938fb0a Use UTF-8 char U+0000 as terminate charactor.
Allow setting range end as `NULL`, see also #50.

Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-07 15:08:51 +08:00
Tao He 62a846d798
Handling (or checking) possible failure in lease's KeepAlive. (#53)
* Handling (or checking) possible failure in lease's KeepAlive.
* Add documentation.
* Enhance documentations.

Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-02 17:15:27 +08:00
Tao He 27e6e2ac11
Watch on range by specifying `rang_end`. (#52)
Follow-up work on #51, and fixes #50.

Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-02 01:34:58 +08:00
Tao He 1b24751b9d
List/delete/watch on exact range. (#51)
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-01 14:50:50 +08:00
rockeet 9339b6dee4
class Value: remove unused code (#48) 2021-03-29 18:53:56 +08:00
Tao He c927b395cb Set DESTINATION for older versions of CMake.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-03-01 18:11:23 +08:00
Tao He 38366fc5c3 Handle watching on compacted revisions cases.
Fixes #43.

Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-15 00:13:38 +08:00
Tao He 4f31000cf4
Set a proper upper bound for `ls` request, and remove the default sort options. (#46)
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-12 15:56:09 +08:00
Tao He c9f82b46d4 Allows specify a lease TTL for lock.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-08 11:07:23 +08:00
Tao He 842372d86d Conformate the C++ compiler on Ubuntu-18.04.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-07 01:40:07 +08:00
Tao He 03baacf9ea
Support secure transport and certificate-based authentication. (#42)
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-07 01:35:37 +08:00
Tao He d2e35ceb47
Reduce the dependency interface to avoid include all generated protobuf/grpc files. (#41)
Add CMake config files to make it looks as a cmake module.

Fixes https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3/issues/37.

Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-06 17:16:58 +08:00
Tao He 3bac086428 Fixes a unused warning.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-03 01:26:27 +08:00
Tao He bcf5313eab Continue work for #36, add instructions about how to install deependencies. 2021-01-31 15:24:23 +08:00
Tao He 692840cb58 Support ubuntu 18.04 (boost-1.65), and test it in CI. 2021-01-30 14:43:16 +08:00
Tao He 66c111b5ca Test the library on more platforms with more versions of etcd.
Squashed commit of the following:

commit 7d15f8f5f9b477f606dbe034f26c37a894eb5b46
Author: Tao He <linzhu.ht@alibaba-inc.com>
Date:   Thu Jan 28 10:47:55 2021 +0800

    Add a bit more about how to enable authentication on etcd v3.2.x and v3.3.x.

    Fixes #33.

    Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>

commit 9e84e27d480930133d2f2380bed44cb187ff1656
Author: Tao He <sighingnow@gmail.com>
Date:   Sun Jan 17 20:59:12 2021 +0800

    Tweak LD_LIBRARY_PATH, to include /usr/local/lib.

    Signed-off-by: Tao He <sighingnow@gmail.com>

commit c3b913c3c33606caa6ff326639a791e55565da3f
Author: Tao He <linzhu.ht@alibaba-inc.com>
Date:   Sat Dec 26 15:27:54 2020 +0800

    Test on various versions of Ubuntu and Mac, with different versions of ETCD.

    Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>

Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-28 13:07:34 +08:00
Tao He 5258809b36 Remove debug logs.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-12 11:31:34 +08:00
Tao He e5c804416c Protect implicit keepalive maps using a lexical scoped lock.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-12 01:11:35 +08:00
Tao He cfb5cb89d3 Fixes the -Werror for unused "continue_next": we just use it.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-11 20:47:11 +08:00
Tao He 6962030db8 Implements "KeepAlive" feature, and enhance "lock" with a lease.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-01-10 23:39:50 +08:00
Tao He f2d8330b08 Fixes when cpprestsdk is a submodule of external project.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-12-21 16:19:24 +08:00
Tao He 7e280ec8a4 Install dll to bin/ on windows.
Signed-off-by: Tao He <sighingnow@gmail.com>
2020-12-20 14:54:25 +08:00
Tao He e286c36926 Fixes for windows (vcpkg environment) compatibility.
Signed-off-by: Tao He <sighingnow@gmail.com>
2020-12-20 00:19:47 +08:00
Tao He eee2ea2d14 Set maximum message bytes for send/recv for larger initial etcd machine. 2020-11-02 20:23:09 +08:00
Tao He f7e7ec30fe Fixes CMakeLists.txt for header installation.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-25 00:22:29 +08:00
Tao He 525a279a18 Install target etcd-cpp-api where it is defined.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-24 22:48:31 +08:00
Tao He dd1f106150 Make "CancelWatch()" thread-safe and happen only once, fixes the potential assert failure in gRPC routines.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-15 19:56:23 +08:00
Tao He 7fe755ae53 Make sure a cancalable watch must be a successful watch.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-12 13:19:23 +08:00
Tao He a00a06d5bd Remove unused comment code.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-11 17:19:46 +08:00
Tao He 3305a19d15 Drop the Interceptor-based implementation to be compatible with ealier version of gRPC (pre-0.17.0).
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-10 20:17:32 +08:00
Tao He eb284103e0 Auto and watch functionalities on SyncClient.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-10 20:17:32 +08:00
Tao He 0fb4f2887d Implements etcd v3 authentication.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-10 20:17:32 +08:00
Tao He 100eae97e9 Improve the etcd watcher to detect error when the connection lost.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He 611ab05de0 Move generated protobuf files to binary directory.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He 6eb725de0e Add "limit" support on "ls" command.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He 60ffe62b26 Update accumulated changes.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He bb33b76544 Optimize protobuf generation process in CMakeLists.txt.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He 72b215a513 Re-org v3 related files to make it a submodule. 2020-09-30 00:32:00 +08:00
Tao He 4e9d17c188 Update protobuf, implments lock, fixes watch and improves txn (#1) 2020-09-30 00:32:00 +08:00
Arches 0c52135bf8 Deleted junk files
Added #include <grpc/support/log.h> since this is where GPR_ASSERT is now defined.
2016-12-13 11:14:49 +01:00
Arches a5d2140793 Updated logic for stripping of endpoint 2016-09-26 11:56:04 +02:00
Arches e37cb46922 First commit 2016-08-29 16:14:57 +02:00
arches 60383a502c Make mvccpb::KeyValue a member of etcdv3::keyValue instead of
inheriting from it.
2016-07-26 10:04:26 -04:00
arches 888946b589 Added new interface for leasegrant and leaseId in add, set, modify, modify_if 2016-07-13 07:56:43 -04:00
arches ac54e84f6d Use ttl 2016-07-13 07:20:15 -04:00