54 Commits

Author SHA1 Message Date
FDB Formatster
df90cc89de apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
sfc-gh-tclinkenbeard
c8786a65c3 Remove unnecessary uses of virtual 2020-12-08 09:09:33 -08:00
Lukas Joswiak
3669615e4b Refactor and clean up 2020-12-03 14:06:11 -08:00
Lukas Joswiak
1f166bc183 Add options to set custom transaction ID and disable tracing 2020-11-30 14:57:17 -08:00
Xin Dong
daead84fdd Merge master 2020-08-14 14:07:08 -07:00
Xin Dong
0e97851451 Use reference to avoid extra copy. 2020-08-09 22:11:29 -07:00
Xin Dong
a46e620baa Merge branch 'master' into feature/range-split-points-based-on-size 2020-08-06 15:23:11 -07:00
Chaoguang Lin
5f6093b59e Add an option to enable write in special key space, which is by default not allowed 2020-07-08 15:49:34 -07:00
Chaoguang Lin
784d0f6d00 A basic feasible version for exclude and include commands 2020-07-06 11:02:48 -07:00
Xin Dong
2126f46195 Added client side support for range split 2020-07-02 14:05:11 -07:00
Chaoguang Lin
18ff6efbf3 Add failure module for special key space 2020-06-27 12:22:32 -07:00
Chaoguang Lin
f011ff2c66 Merge remote-tracking branch 'upstream/master' into add-management-api-into-special-key-space 2020-06-23 11:23:18 -07:00
Chaoguang Lin
fc8715dacd Adding write support for special-key-space 2020-06-23 11:21:03 -07:00
sfc-gh-tclinkenbeard
99bf993815 Replace BOOST_NOEXCEPT with noexcept 2020-06-09 22:39:19 -07:00
Andrew Noyes
a2fd6d46a0 Cancel pending special key space reads on destroy
Previously the special key space would take a reference to the
transaction, but this doesn't make sense since the transaction might not
be refcounted
2020-05-21 17:37:11 +00:00
Andrew Noyes
1d6209e304 Check for cross-module reads 2020-05-08 05:37:37 +00:00
Andrew Noyes
f4cc1d3a4f Remove more auto-added headers 2020-05-04 20:44:57 -07:00
Andrew Noyes
4a0925e9a6 Allow reading conflict ranges after ryw disabled tx commits 2020-05-04 16:43:20 +00:00
Andrew Noyes
0c514e91c7 Use approximate write range for set_versionstamped_key 2020-05-04 04:43:50 +00:00
Andrew Noyes
7f9e9224d2 Disallow reading write conflict range for SetVersionstampedKey 2020-05-01 01:41:25 +00:00
Andrew Noyes
f1d9c0cb97 Refactor/cleanup 2020-04-30 00:30:37 +00:00
Andrew Noyes
ff2e82c7b2 Wait for timeout in pendingReads 2020-04-30 00:30:37 +00:00
Andrew Noyes
4fce3032d9 Rename debug_onIdle 2020-04-30 00:30:37 +00:00
Andrew Noyes
fdd6581167 Add write conflict range 2020-04-30 00:30:37 +00:00
Andrew Noyes
e1c3c73d4c Rudimentary read your own read conflict range 2020-04-30 00:30:37 +00:00
chaoguang
9408915ab9 reformat code 2020-04-06 13:38:18 -07:00
chaoguang
5b6ae4da7f A simple intergration to put conflictingKeys into special-key-space 2020-04-03 16:11:20 -07:00
Xin Dong
d20ce99774 Resolved the review comment and renamed the functions 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
Alex Miller
eb64eede8d Make a smaller range inaccessable after writing a versionstamped key
A transaction's read version is the lower bound of what a transaction's
commit version could be.  Thus, we can narrow the conflict range of a
versionstamped key, and thus reduce the amount of the keyspace that is
rendered inaccessable, by filling in the read version on the
versionstamped key and using that as the lower bound of the conflict
range.

This allows reads to still be done to versionstampled keys lower than
the read version of the current transaction.
2020-01-16 21:41:59 -08:00
Andrew Noyes
9d045c51e4 Add suggested nodiscards, and mention UNCANCELLABLE actors 2019-08-16 09:24:57 -07:00
Andrew Noyes
4b97a7506d Add some prudent [[nodiscard]]'s 2019-08-16 09:24:57 -07:00
Jingyu Zhou
e8e48e0dbd Fix size calculation
Mutations in writeRangeToNativeTransaction() is already counted, so there is no
need to count them again.
2019-07-16 15:21:13 -07:00
Jingyu Zhou
562bf6511a Fix approximate size calculation 2019-07-12 16:53:37 -07:00
Jingyu Zhou
c70a426f04 Update approximate size calculation 2019-07-10 15:00:50 -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
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
Jingyu Zhou
9c2257a0e5 Add transaction size option 2019-06-19 07:45:23 -07:00
Alec Grieser
64e45e6826
retry limit and max delay transaction options are no longer reset after onError 2019-03-21 18:50:02 -04:00
Alec Grieser
22f592ce6e
reset the timeout only if the API version is less than 610 to allow transactions with longer timeouts than the database default 2019-03-21 16:47:12 -04:00
Alec Grieser
7c8a1c8db7
Revert "start the timeout actor only after the first read to allow transaction timeouts longer than the default db timeout"
This reverts commit df8826115d89df6f0afb35acacb6e23c9bde8868.
2019-03-21 14:45:43 -04:00
Alec Grieser
df8826115d
start the timeout actor only after the first read to allow transaction timeouts longer than the default db timeout 2019-03-21 10:24:02 -04:00
Alec Grieser
148a21a31c
set the timeout actor upon transaction creation if necessary
initialize lockaware and maxbackoff in options constructor rather than NativeAPI transaction constructor
2019-03-20 11:13:38 -06:00
Alec Grieser
5f73b7d6ae
Resolves #775: Support setting Transaction options at the Database level
This selects a few useful transaction options that users may want to set for every transaction and adds them to the database options.
2019-03-20 11:13:38 -06:00
Alex Miller
c6a65389ae Remove noexcept macro and replace with BOOST_NOEXCEPT.
BOOST_NOEXCEPT does what the noexcept macro was supposed to do, but in a
way that is correctly maintained over time.
2019-03-05 22:06:12 -08:00
mpilman
0bb60e5a3b Use proper fwd decl in NativeAPI
Also NativeAPI.h -> NativeAPI.actor.h
2019-02-19 15:16:59 -08:00
Evan Tschannen
a654183f63
Merge pull request #791 from ajbeamon/remove-cluster-from-iclientapi
Remove cluster from IClientApi (phase 2 of removing DB names)
2018-11-10 10:16:18 -08:00
Robert Escriva
268093a96d Adjust all includes to be relative to the root.
Remove the use of relative paths.  A header at foo/bar.h could be included by
files under foo/ with "bar.h", but would be included everywhere else as
"foo/bar.h".  Adjust so that every include references such a header with the
latter form.

Signed-off-by: Robert Escriva <rescriva@dropbox.com>
2018-10-19 17:35:33 +00:00
A.J. Beamon
c831051474 This removes the idea of clusters from IClientApi. 2018-09-21 15:58:14 -07:00