Commit Graph

121 Commits

Author SHA1 Message Date
Andrew Noyes 3ddb0594c2 ASSERT(!tr.options.checkWritesEnabled) 2020-04-30 00:30:37 +00:00
Andrew Noyes 94f8e090c8 Fix more bugs 2020-04-30 00:30:37 +00:00
Andrew Noyes fab33a8fd1 Improve test diagnostics, fix write_conflict_range bug 2020-04-30 00:30:37 +00:00
Andrew Noyes 5b365458cb Fix bug 2020-04-30 00:30:37 +00:00
Andrew Noyes a60e9a7290 Fix bug - emit kv pair if we end in a conflict range 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 3adbc89510 update special-key-space argument 2020-04-28 16:50:24 -07:00
chaoguang 562456028c Fix the interface of special-key-space, only keys in (\xff\xff, \xff\xff\xff) are valid 2020-04-28 16:33:10 -07:00
chaoguang 34cddd675c clang-format 2020-04-08 14:33:41 -07:00
chaoguang 5aee6880a8 fix issues according to andrew's comments 2020-04-08 11:33:07 -07:00
chaoguang e4d99b0197 remove snapshot argument in the interface 2020-04-06 22:09:17 -07:00
chaoguang 03795cc6b8 delete commented code 2020-04-06 11:42:31 -07:00
chaoguang aad8f850f3 refactor conflicting keys feature using special key space 2020-04-04 13:26:11 -07:00
chaoguang 5b6ae4da7f A simple intergration to put conflictingKeys into special-key-space 2020-04-03 16:11:20 -07:00
chaoguang 36bf2ecf4c add \xff\xff prefix to returned keys 2020-04-03 00:26:11 -07:00
chaoguang debbe648e8 Use specialkeys 2020-03-31 19:05:47 -07:00
chaoguang 863ebc2d6d fix merge conflict 2020-03-31 18:49:59 -07:00
chaoguang a63f8b839c Merge remote-tracking branch 'upstream/master' into private-keyspace-framework 2020-03-31 12:05:42 -07:00
chaoguang 64148469e8 clang-format the pr 2020-03-26 15:52:30 -07:00
Andrew Noyes 289487559d Revert "Revert "Merge pull request #2257 from zjuLcg/report-conflicting-key""
This reverts commit 804fe1b22e.
2020-03-24 18:11:15 -07:00
Balachandar Namasivayam 804fe1b22e Revert "Merge pull request #2257 from zjuLcg/report-conflicting-key"
This reverts commit 648dc4a933, reversing
changes made to 487d131b38.
2020-03-19 21:34:28 -07:00
Evan Tschannen 648dc4a933
Merge pull request #2257 from zjuLcg/report-conflicting-key
Report conflicting keys
2020-03-18 13:39:42 -07:00
Evan Tschannen e08f0201f1 merge release 6.2 into master 2020-03-17 12:51:47 -07:00
chaoguang 6e92716be7 update comments 2020-03-13 12:41:48 -07:00
A.J. Beamon f7198c4ba3 Use the std::string constructor of StringRef, which will use the length of string correctly. 2020-03-12 12:35:08 -07:00
A.J. Beamon 6940d546f5 Fix bug where status is truncated when a null byte is included. This is implemented by escaping unprintable characters. 2020-03-12 12:27:53 -07:00
chaoguang bdabb8638e Change prefix 2020-03-11 12:40:40 -07:00
chaoguang 7a76e9556d Merge remote-tracking branch 'upstream/master' into report-conflicting-key 2020-03-04 11:24:39 -08:00
chaoguang 9c50b8369d Change name from private-key-space to special-key-space 2020-03-03 18:35:04 -08:00
chaoguang 94102969fd Merge code from upstream and change ACTOR to member class 2020-03-03 14:55:03 -08:00
chaoguang 409718c964 Merge remote-tracking branch 'upstream/master' into private-keyspace-framework 2020-03-03 13:37:51 -08:00
chaoguang 146191e411 Fix bug: change RYW* to Reference<RYW> 2020-03-02 19:02:35 -08:00
Evan Tschannen 96258b9809 Merge branch 'release-6.2'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/ManagementAPI.actor.cpp
#	fdbrpc/FlowTransport.actor.cpp
#	fdbserver/ClusterController.actor.cpp
#	fdbserver/DataDistribution.actor.cpp
#	fdbserver/DataDistribution.actor.h
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/KeyValueStoreMemory.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/QuietDatabase.actor.cpp
#	fdbserver/SkipList.cpp
#	fdbserver/StorageMetrics.actor.h
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	fdbserver/storageserver.actor.cpp
#	fdbserver/workloads/KVStoreTest.actor.cpp
#	flow/CMakeLists.txt
#	flow/Knobs.cpp
#	flow/Knobs.h
#	flow/genericactors.actor.cpp
#	flow/serialize.h
2020-02-21 19:09:16 -08:00
chaoguang 22e0a8e9b3 Start with simplest interface 2020-02-20 13:52:48 -08:00
Xin Dong 2e1d03cbe7 Addressed AJ's review comments 2020-02-12 14:57:40 -08:00
Xin Dong d20ce99774 Resolved the review comment and renamed the functions 2020-02-12 14:57:40 -08:00
Xin Dong d934aed1d7 Because when the user issue 'getStorageByteSample' on a large key range, which can be as large as the whole DB, we need to change the behavior of 'waitStorageMetricsMultipleLocation' to avoid the case where a target key range got moved/splited by DD and thus the call to 'waitMetircs' on the corresponding storage server will return 'wrong_shard_server' error and thus the whole 'waitStorageMetricsMultipleLocation' will be retried on the large key range. What we want is to do the retry only for the key range that caused the error. 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
Evan Tschannen 73ad702d14 Clients which fetch status should not disconnect from the coordinators and cluster controller between each retrieval 2020-01-22 15:41:22 -08:00
chaoguang 7224807d1d fix typo in var name 2020-01-21 15:38:48 -08:00
Alex Miller 18e6e36a8e Fill in the versionstamp, but still leave the position.
Using range.begin() stripped off the last 4 bytes that specified where
the versionstamp is, so when the mutation got to the proxy, it wouldn't
get versionstamped correctly.
2020-01-21 15:24:57 -08:00
chaoguang 5386b4ecdf Adding prefix to returned keys, keeping consistency with query range 2020-01-21 15:18:16 -08:00
chaoguang 5b62d672dc update comments 2020-01-17 15:18:07 -08:00
chaoguang 17721a00f1 change vars names 2020-01-17 14:26:45 -08:00
chaoguang d17d1c88cd add const to local KeyRef 2020-01-17 11:31:43 -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
chaoguang 1cf3b5b807 Change to general prefix '\xff\xff/transaction/conflicting_keys/' 2020-01-13 20:54:16 -08:00
chaoguang 1f633d3e5f change local var from Key to KeyRef 2020-01-10 15:53:06 -08:00
chaoguang 1cdb22c4a4 refine code according to comments 2020-01-09 15:42:21 -08:00