Commit Graph

96 Commits

Author SHA1 Message Date
Josh Slocum b7b2ad0a6f Handling timeout and transaction changes for ThreadResults properly 2021-12-10 12:47:53 -06:00
Josh Slocum 9cb6fb5114 fixing unrelated code formatting 2021-12-01 17:20:11 -06:00
Josh Slocum c11b8a3625 Improved comments 2021-12-01 17:04:55 -06:00
Josh Slocum a82845af43 Merge branch 'master' into bg_bindings 2021-12-01 16:55:28 -06:00
Josh Slocum 7f4fcc8c2c Added FDBResult and made readBlobGranules use it 2021-12-01 16:22:05 -06:00
A.J. Beamon 264c75b9a6 Add some extra client logging details:
1. Add a trace event when a database is created and move the cluster file / connection string from ClientStart to the new trace event
2. Add a detail for the path to the image being loaded
3. Add a detail for whether a client library is primary or not
4. Set a thread name for each external client thread that includes the release version
2021-11-29 09:57:10 -08:00
Josh Slocum 329091e14f Merge branch 'master' into bg_bindings 2021-11-11 10:13:37 -06:00
Josh Slocum b8ac4213a1 Switched BG APIs to transaction instead of database 2021-11-11 08:59:06 -06:00
Tao Lin fdb3b72e35 Introduce GetRangeAndFlatMap to push computations down to FDB
Re-introduce #5609
2021-11-09 13:52:28 -08:00
Tao Lin 586cc3b102
Revert "Introduce GetRangeAndFlatMap to push computations down to FDB" 2021-11-04 08:46:56 -07:00
Tao Lin 6c98e35893 Rename Hop to FlatMap 2021-11-03 13:32:01 -07:00
Tao Lin 0853661d13 Introduce getRangeAndHop to push computations down to FDB 2021-11-03 13:21:16 -07:00
Josh Slocum 5b2617a524 Added local granule file reading to mako 2021-11-03 09:33:30 -05:00
Josh Slocum d6a31078fe C API for blob granules 2021-11-02 10:01:23 -05:00
A.J. Beamon d51b93390d Proper handling of reset and transaction destruction. Add some comments. 2021-09-17 18:10:56 -06:00
A.J. Beamon b5fbd07155 Transactions would not honor the transaction timeout option if the MVC did not have an active database. 2021-09-17 18:10:56 -06:00
Chaoguang Lin af5643c998 Fix the issue in CheckStatus where it stuck as we cannot talk to any of the coordinators 2021-09-08 10:05:13 -07:00
A.J. Beamon 0e9dabcabb Remove mutex that was only needed for a minor optimization. 2021-07-23 10:20:50 -07:00
A.J. Beamon 11b803fe0b Handle database creation errors 2021-07-22 13:22:04 -07:00
A.J. Beamon 39af41ebb7 Closing a multi-version database causes us to cancel the protocol version monitor, invalidating its future. If a version change is triggered after that happens, then an assertion will be triggered that expects the future to be valid.
This changes the behavior so that closing the database prevents us from doing any work to update the version.
2021-07-19 11:01:09 -07:00
Andrew Noyes 7f35a66383 Fix the types of dl functions in the multi-version client
This fixes undefined behavior of invoking a function pointer with the
wrong type.
2021-06-23 10:38:04 -07:00
sfc-gh-tclinkenbeard 5c2d7b6080 Create RangeResult type alias 2021-05-03 13:14:16 -07:00
A.J. Beamon eaf1e0f64e Be more defensive with cancellation by not capturing the this pointer in lambdas, instead capturing a full Reference. 2021-04-30 11:11:02 -07:00
A.J. Beamon cb3d2bfec7 Add cancellation of the protocol monitor when the database is destroyed. Avoid using any state when cancelled. Fix race between setting up the protocol version monitor and destroying the database. 2021-04-30 10:35:44 -07:00
A.J. Beamon f61f13a0ba Explicitly cancel thread futures for the protocol version monitors in MVC 2021-04-29 22:02:38 -07:00
A.J. Beamon 16dfb2b2f2 Keep connections older than 6.2 open indefinitely to avoid weird bugs around quickly closing the database. 2021-04-27 15:00:56 -07:00
A.J. Beamon 823873a9aa Address review comments:
Use nullptr instead of NULL
Use const& for a parameter
Add some comments
2021-04-26 14:39:27 -07:00
A.J. Beamon a794fca932 Support 5.0 (and earlier) client versions by adding GRV probing for old versions. Update the C bindings implementation of get_server_protocol to convert the ProtocolVersion object into a uint64_t. Rename a misleading protocol version alias. 2021-04-23 15:00:21 -07:00
A.J. Beamon f485d7fa5e Fix comment typo 2021-04-21 12:25:03 -07:00
A.J. Beamon 9e89159efb Don't use DLDatabase objects before they are ready (applicable for API versions < 610). Fix reference counting of DLDatabase objects to avoid leaking the underlying database handle. Update release notes to note that clients older than 6.2 still create extra connections. 2021-04-20 16:21:01 -07:00
A.J. Beamon b2d6930103 The multi-version client monitors the cluster's protocol version and only activates the client library that can connect. 2021-04-15 11:45:14 -07:00
A.J. Beamon 3ed0d614d2 Move fdb_get_server_protocol to be a function on the database object. Add an argument for expected_version that can be used to signal that the function shouldn't return unless the protocol version is different. 2021-04-14 12:50:30 -07:00
Nim Wijetunga f0d79b3d86 Inital implementation of network busyness 2021-03-15 23:23:56 +00:00
FDB Formatster df90cc89de apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
Vishesh Yadav 2bb4f2e59f Merge branch 'release-6.3-pre-format' into master-format
This merges release-6.3 branch right before it was fully formatted.
There were quite a few conflicts that are resolved here. CoroFlow had
a check for OOM errors introduced in 6.3, but didn't seem applicable in
the new implmentation which seems to use boost.
2021-03-10 09:37:41 -08:00
Markus Pilman 37d9e975e9 Fix multiple compiler warnings 2021-03-03 10:18:03 -07:00
negoyal e9b7e22e02 Merge branch 'rel-6.3' 2021-02-22 08:47:22 -08: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 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
Chaoguang Lin 90686a95a0 format code 2021-02-08 22:17:16 -08:00
Chaoguang Lin 61082e70e1 format code, add comments 2021-02-08 19:11:30 -08:00
Chaoguang Lin 97925de9d4 Update fdb_database_create_snapshot to take a UID as input 2021-02-05 14:14:38 -08: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
Chaoguang Lin cef53b2b40 clang-format 2021-01-26 12:06:40 -08:00
Chaoguang Lin 5f912f0deb Add snapshot c function 2021-01-26 11:53:35 -08:00
Andrew Noyes 564c70acb4
Merge branch 'master' into anoyes/modernize-use-override 2021-01-25 18:26:18 -08:00