1
0
mirror of https://github.com/apple/foundationdb.git synced 2025-05-17 11:22:20 +08:00

83 Commits

Author SHA1 Message Date
A.J. Beamon
0dd9fdf9de Throw an error if the local client is disabled and there are no external clients 2021-03-11 14:09:52 -08:00
A.J. Beamon
fe4ff420a3 Don't copy the external libraries if you aren't using more than one thread 2021-03-10 15:09:30 -08:00
FDB Formatster
8a8c488ede apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-05 18:13:38 -06:00
Markus Pilman
37d9e975e9 Fix multiple compiler warnings 2021-03-03 10:18:03 -07:00
Vishesh Yadav
1ee9c3e45d
Apply suggestions from code review
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2021-02-22 20:18:01 -07:00
Russell Sears
5324f127c9 Address skipped PR comments from multithreaded client PR 2021-02-17 21:10:42 +00:00
Russell Sears
bf3e6db9e9 Fix build issues; move to new assert style 2021-02-12 23:52:55 +00:00
Russell Sears
36915e848a clang format 2021-02-12 22:42:57 +00:00
Russell Sears
555f3ebfaa Implement + test corner case configurations for mutlithreaded client. 2021-02-12 22:37:24 +00:00
Vishesh Yadav
6e483b6da8 Remove sendfile.h to fix non-Linux builds 2021-02-12 09:31:22 -08:00
Russell Sears
4938aee113 Address PR comments, remove some old cruft + comments 2021-02-11 01:27:57 +00:00
Russell Sears
e4f6a39e48 change client thread count from knob to fdb.option (to be more consistent with other multiversion client options) 2021-02-10 16:29:27 +00:00
Russell Sears
9e9bc4abe5 Create one client thread for each one that was requested (assumes local client is disabled) 2021-02-08 21:20:37 +00:00
Russell Sears
ad3de5c9e0 WIP: seems to work? 2021-02-03 23:19:26 +00:00
Russell Sears
1032a5d005 WIP 2021-02-03 21:45:35 +00:00
Vishesh Yadav
f50206aabb fdbclient: Copy external libraries MULTI_VERSION_CLIENT_THREADS_PER_VERSION times
To support multiple threads in for each multi-version clients, we make a copy of
external library for each thread in `/tmp/` directory and load that.

(cherry-picked by Rusty; there were some conflicts, so this has commented out cruft in it)
2021-02-03 20:47:15 +00:00
Russell Sears
87aeafb294 partial refactor to support multiple threads per client library 2021-02-03 19:58:37 +00:00
Evan Tschannen
f03a355c4e Merge branch 'release-6.2' into release-6.3
# Conflicts:
#	CMakeLists.txt
#	documentation/sphinx/source/downloads.rst
#	fdbrpc/FlowTransport.actor.cpp
#	fdbrpc/FlowTransport.h
#	flow/Arena.h
#	flow/Knobs.cpp
#	flow/Knobs.h
#	packaging/msi/FDBInstaller.wxs
2020-10-07 12:28:22 -07:00
A.J. Beamon
76da0a7cbc Backport to release-6.2 2020-10-05 13:53:51 -07:00
Evan Tschannen
e1dedff7b3 Merge branch 'release-6.2' into release-6.3
# Conflicts:
#	CMakeLists.txt
#	bindings/c/test/mako/mako.c
#	cmake/ConfigureCompiler.cmake
#	documentation/sphinx/source/downloads.rst
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/FileBackupAgent.actor.cpp
#	packaging/msi/FDBInstaller.wxs
#	versions.target
2020-07-24 12:10:44 -07:00
Andrew Noyes
6446b4c082 WIP 2020-07-09 22:02:43 +00:00
Balachandar Namasivayam
6d570cd865 Change version from 7.0 to 6.3 2020-04-03 21:38:58 -07:00
Xin Dong
d20ce99774 Resolved the review comment and renamed the functions 2020-02-12 14:57:40 -08:00
Xin Dong
807204e676 Update fdbclient/MultiVersionTransaction.actor.cpp
Apply A.J's suggestion.

Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2020-02-12 14:57:40 -08:00
Xin Dong
d5c3f821e2 Added missing pieces. 2020-02-12 14:57:40 -08:00
Xin Dong
70f89042fd Remove comment that does not apply anymore 2020-02-12 14:57:40 -08:00
Xin Dong
0c16d43c2f Added necessary plumbings to expose byte sample collected by storage servers to fdb_c library 2020-02-12 14:57:40 -08:00
A.J. Beamon
a51ab0003d Don't require fdb_future_get_database from new client binaries. The previous code, which technically incorrect, is believed to be asymptomatic because new versions of the client do have this symbol in order to support old API header versions. 2019-09-24 13:11:30 -07:00
A.J. Beamon
bc5c65e5ab
Merge pull request from jzhou77/db-option
Add transaction getApproximateSize() API
2019-07-19 08:33:24 -07:00
Jingyu Zhou
14cb21285f Remove futureGetVersion in C binding and FutureVersion in Python binding 2019-07-16 10:46:07 -07:00
Jingyu Zhou
2dcc3cfd0a Deprecate fdb_future_get_version for version 620
Use fdb_future_get_int64 in all bindings.
2019-07-11 21:17:31 -07:00
Evan Tschannen
bbef631872 fix: do not access optionInfo unless the option already exists in the map 2019-07-10 18:48:54 -07:00
Jingyu Zhou
2c2836c6c7 Require API version to 620 for approximate size 2019-07-10 15:00:50 -07:00
Jingyu Zhou
5d1437c8e0 Push int directly to stack for getApproximateSize 2019-07-10 15:00:50 -07:00
Jingyu Zhou
0802df2c8f Convert size from int to string before pushing onto stack
Using int is troublesome because the size of int can be different from the
desired 64 bits. So, using a string representation seems to be more consistent.
2019-07-10 14:58:35 -07:00
Jingyu Zhou
8ef8b59fcc Use ThreadFuture for getApproximateSize
Change return type to int64_t and fix C and Python binding to use the correct
type.
2019-07-10 14:58:07 -07:00
Jingyu Zhou
c50a675bf0 Add transaction getApproximateSize() API
The size is the summation of expected size of mutations, read conflict ranges,
and write conflict ranges.
2019-07-10 14:51:52 -07:00
A.J. Beamon
15ecba59db Merge branch 'master' into fix-mvc-default-options
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
2019-07-09 15:28:12 -07:00
A.J. Beamon
6b6012ee7b Add a break to setOption() switch statement. Better detection of missing options (and logging for present options). 2019-07-02 15:42:53 -07:00
A.J. Beamon
7e5b5a0536
Apply suggestions from code review
Use emplace_back instead of push_back

Co-Authored-By: Jingyu Zhou <jingyuzhou@gmail.com>
2019-07-02 11:09:46 -07:00
A.J. Beamon
aa1bc0087e Address some review comments 2019-06-28 14:17:25 -07:00
A.J. Beamon
2035b36257 Make default and persistent options specifyable via annotations to fdb.options. Fix some issues with persisting these options in the multi-version client. Make size limit option not persistent. 2019-06-28 13:24:32 -07:00
A.J. Beamon
cf30c47a29 If onError fails with cluster_version_changed, retry the error on the new transaction. 2019-06-20 11:21:05 -07:00
mpilman
8576665a90 Revert "Revert "Make protocol version a type""
This reverts commit 455bf3b3ec9d5a347b68bf4fa89bf042f5ac312e.
2019-06-18 14:49:04 -07:00
Alex Miller
455bf3b3ec Revert "Make protocol version a type" 2019-06-18 10:59:17 -07:00
mpilman
da53a92bec Make protocol version a type
This fixes 

The basic idea is that ProtocolVersion is now its own type. This
alone is an improvement as it makes many things more typesafe. For
each version, we can now add breaking features (for example Fearless).
After that, there's no need to test against actual (confusing) version
numbers. Instead a developer can simply test
`protocolVersion->hasFearless()` and this will return true iff the
protocolVersion is newer than the newest version that didn't support
fearless.
2019-06-16 09:59:15 -07:00
A.J. Beamon
5f55f3f613 Replace g_random and g_nondeterministic_random with functions deterministicRandom() and nondeterministicRandom() that return thread_local random number generators. Delete g_debug_random and trace_random. Allow only deterministicRandom() to be seeded, and require it to be seeded from each thread on which it is used. 2019-05-10 14:01:52 -07:00
Andrew Noyes
6207d724f8 Fix all -Wunused-variable warnings 2019-04-15 18:13:00 -07:00
mpilman
1c16f87a4e Remove trace-calls to printable (in non-workloads) 2019-04-05 13:12:19 -07:00
A.J. Beamon
85b3f11e71 Fix various compiler warnings 2019-03-15 10:34:57 -07:00