4301 Commits

Author SHA1 Message Date
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
Alex Miller
224744c473 Log BOOSTDIR 2019-03-05 22:06:12 -08:00
Alex Miller
df30904e27 Change default boost to 1.67.0 2019-03-05 22:06:12 -08:00
Alex Miller
367bcff700 Error if boost != 1.67.0 2019-03-05 22:06:12 -08:00
Alex Miller
af617d68e6 boost 1.52.0 -> 1.67.0 in all vcxproj files 2019-03-05 22:06:12 -08:00
Alex Miller
f12497232f Split BOOSTDIR into BOOSTDIR_BASEDIR and BOOSTDIR_BASENAME (optionally).
This is to give us a way to let which boost to use toggleable in the
source code as BOOSTDIR_BASENAME, and let build enviornments configure
where to find appropriately named boost folders via BOOSTDIR_BASEDIR.

This isn't pretty, and CMake's FindBoost is a far better way to do this,
but it'll work for now.
2019-03-05 22:06:12 -08:00
Alex Miller
ad0aca21b5 Update fdbserver/fdbserver.vcxproj
Co-Authored-By: atn34 <anoyes34@gmail.com>
2019-03-05 18:03:57 -08:00
anoyes
981426bac9 More ide fixes 2019-03-05 18:03:57 -08:00
Evan Tschannen
82d957e0bb
Merge pull request #1178 from vishesh/task/issue-963-IPv6
IPv6 Support
2019-03-05 17:14:16 -08:00
Markus Pilman
590863479b Update cmake/ConfigureCompiler.cmake
Co-Authored-By: jzhou77 <jingyuzhou@gmail.com>
2019-03-05 14:58:44 -08:00
Jingyu Zhou
bdf0fc4ffb Enable .pdb file generation on Windows
Add compiler flag for generating program database file (PDB) for Visual Studio.
2019-03-05 14:58:44 -08:00
Vishesh Yadav
96ee95b9ad fix: macOS build #963
Use the boost representation of IPv6 address internally
and make sure it uses std::array.
2019-03-05 14:03:14 -08:00
Vishesh Yadav
a9562f61be fix: missing argument to printf in fdbserver 2019-03-05 14:03:09 -08:00
Bhaskar Muppana
89e5be7d70
Resolves #1027: Adding interfaces to Flow bindings (#1215)
* Resolves #1027: Adding interfaces Database, ReadTransaction and Transaction.

* Moving implementations into DatabaseImpl and TransactionImpl.
* Also removed deprecated class Cluster.

As we changed the interfaces, especially how we create transaction, its
going to break the compilation of any app upgrades to this version of
flow bindings. It doesn't change any of the fdb_c APIs. So, backward
compatilbity with old servers is preserved through multi-version client.

* Fixing indentation

* Fixing format according to review comments.
2019-03-05 13:09:26 -08:00
Stephen Atherton
7ffdd6c875 Added release notes for restore changes. 2019-03-05 12:55:08 -08:00
Stephen Atherton
337a5aa1fe Updated to new Database API. 2019-03-05 12:44:28 -08:00
Stephen Atherton
2f7d559442 Restore now requires an explicit destination cluster file. Restore target database version can now be specified by a timestamp, which must be resolved using the cluster file for the cluster from which the backup originated. 2019-03-05 12:28:05 -08:00
Steve Atherton
21f55e1878
Merge pull request #1190 from bnamasivayam/restore-multiple-ranges
Add support for restoring multiple ranges.
2019-03-05 10:15:55 -08:00
Evan Tschannen
69d7633d5b
Merge pull request #1217 from alexmiller-apple/tstlog-goodref
Spill-By-Reference TLog Part 4: Actually Usable Reference Spilling
2019-03-04 20:58:24 -08:00
Evan Tschannen
6d8aa20ae3
Merge pull request #1220 from bnamasivayam/dr-switchover-checks
Add some basic checks before doing an atomic switchover.
2019-03-04 20:57:50 -08:00
Evan Tschannen
827f6a81d5
Merge pull request #1230 from tclinken/lazily-fetch-health-metrics
Client lazily fetches health metrics from proxies
2019-03-04 16:46:57 -08:00
Balachandar Namasivayam
627edd4724 Add force option to 'fdbdr switch'. 2019-03-04 16:36:58 -08:00
Meng Xu
afd7c1d497 AsynFileWinASIO: Make error checking consistent with Linux
In Linux, KAIO uses ASSERT to make sure open() flags have
OPEN_UNBUFFERED set.

In Windows, we uses if-condition and return io_errors() when the
flag is not set.

This PR makes Windoes implementation always use ASSERT to check the
flag.
2019-03-04 16:36:04 -08:00
Evan Tschannen
1ee9b9cda1
Merge pull request #1219 from vishesh/task/issue-1201
fix: segfault due external assignment of Endpoint::addresses #1201
2019-03-04 16:35:42 -08:00
Trevor Clinkenbeard
cbc5df5e93 Removed unnecessary Trace line 2019-03-04 16:31:40 -08:00
Balachandar Namasivayam
a258df32f6 Skip switchover checks for force option. 2019-03-04 15:58:36 -08:00
Vishesh Yadav
5cd8bac6cb fix: segfault due external assignment of Endpoint::addresses #1201
isLocal() now checks if the address is equal to default
NetworkAddress() which should match the behaviour before TLS changes.
2019-03-04 15:49:11 -08:00
Balachandar Namasivayam
85b18c0665
Merge pull request #1225 from bnamasivayam/master
Document behavior on the ordering of writes and read conflict ranges
2019-03-04 15:17:42 -08:00
Balachandar Namasivayam
ee7ee3e783
Update documentation/sphinx/source/developer-guide.rst 2019-03-04 15:17:25 -08:00
Trevor Clinkenbeard
89cbb77b4e Merge branch 'master' of https://github.com/apple/foundationdb into lazily-fetch-health-metrics 2019-03-04 14:17:58 -08:00
Trevor Clinkenbeard
56ae46f89e Client lazily fetches health metrics from proxies 2019-03-04 14:16:39 -08:00
Vishesh Yadav
1d3e62c4e3 net: Don't use a union of IP in ConnectPacket #963
Since keeping a union and using the packet size to figure out whether
the ConnectPacket is using IPv6 to IPv4 address is not easily
maintainable. For simplicity, we just serialize everything in
ConnectPacket and be backward compatible with older format.

However, some code for some much older stuff is removed.
2019-03-04 14:12:45 -08:00
Vishesh Yadav
e93cd0ff21 Add some checks and comments to IPv6 changes #963 2019-03-04 14:12:45 -08:00
Vishesh Yadav
41d18db7b9 fix: update the encoding of AddressExclusion in SystemData #963 2019-03-04 14:12:45 -08:00
Vishesh Yadav
592e224155 net: add/use formatIpPort to format IP:PORT pairs #963 2019-03-04 14:12:45 -08:00
Vishesh Yadav
cc9ad0e202 net: Use IPv6 in simulation testing #963
25% times we will use IPv6 addresses
2019-03-04 14:12:45 -08:00
Vishesh Yadav
82b2da4b78 net: Add IPAddress::parse() util #963 2019-03-04 14:12:45 -08:00
Vishesh Yadav
25daabdc02 net: TraceEvent and toIPVectorString for new IPAddress structure #963 2019-03-04 14:12:45 -08:00
Vishesh Yadav
57832e625d net: Support IPv6 #963
- NetworkAddress now contains IPAddress object which can be either
IPv4 or IPv6 address. 128bits are used even for IPv4 addresses,
however only 32bits are used when using/serializing IPv4 address.

- ConnectPacket is updated to store IPv6 address. Backward compatible
with old format since the first 32bits of IP address field is used
for serialization of IPv4.

- Mainly updates rest of the code to use IPAddress structure instead
of plain uint32_t.

- IPv6 address/pair ports should be represented as `[ip]:port` as per
convention. This applies to both cluster files and command line
arguments.
2019-03-04 14:12:41 -08:00
Evan Tschannen
a6d64f2806
Merge pull request #1227 from alexmiller-apple/fix-O0-build
Fix the build on -O0.
2019-03-04 13:45:19 -08:00
Vishesh Yadav
1a550712cb Add serialization support for std::array 2019-03-04 13:33:10 -08:00
Balachandar Namasivayam
b0c910fba5 Update documentation. 2019-03-04 12:31:47 -08:00
Alex Miller
baa3e1af2c Replace /sizeof(Page)*sizeof(Page) with pageFloor(). 2019-03-04 01:42:39 -08:00
Alex Miller
ee64b43366 Change DQ shrink logic to consider "active" bytes rather than file size.
We know what the current ideal size of the DQ file should be, so we
should use it.
2019-03-04 01:42:39 -08:00
Alex Miller
244903a9de Spill txsTag by value under TagMsg/ and not TagMsgRef/
There's not a tremendous reason as to why this matters now, but I feel
like I might regret sometime later not keeping the same schema under the
same key.
2019-03-04 01:42:39 -08:00
Alex Miller
72c2cf11ab Replace ResourceLimiter with FlowLock. 2019-03-04 01:42:38 -08:00
Alex Miller
75b2546e35 Allow FlowLock::take to succeed if there's no other active requests. 2019-03-04 01:42:38 -08:00
Alex Miller
98bb58628f Upgrade FlowLock from int to int64_t. 2019-03-04 01:42:38 -08:00
Alex Miller
94bf75cb00 Allow the disk queue to shrink if it has unneeded slack space. 2019-03-04 01:42:38 -08:00
Alex Miller
a462359af1 Implement g_random->randomSkewedUInt32()
This generates an exponential distribution, implemented as being
a "log-uniform" distribution.
2019-03-04 01:42:38 -08:00