Commit Graph

50 Commits

Author SHA1 Message Date
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 df8826115d.
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
Balachandar Namasivayam 529d0497f1 Proxy going OOM when applying high volumes of writes to a proxy, particular in a sudden fashion before ratekeeper can control the workload.
Address this issue by proactively monitoring the memory used by commit batches and dropping requests if a certain memory limit is exceeded.
2018-06-01 15:21:40 -07:00
Alec Grieser 0bae9880f1 remove trailing whitespace from our copyright headers ; fixed formatting of python setup.py 2018-02-21 10:25:11 -08:00
A.J. Beamon 080a454051 fix: getVersionstamp would return broken promise if a transaction was disposed before being set. getAddressesForKey would not return when resetPromise was set. 2018-01-31 13:47:36 -08:00
FDB Dev Team a674cb4ef4 Initial repository commit 2017-05-25 13:48:44 -07:00