Commit Graph

828 Commits

Author SHA1 Message Date
A.J. Beamon 88e765b9e6 Fix: the binding tester was taking the min() of a list of tuples, but that could fail if the tuple contained incomparable types. Instead, use fdb.tuple.compare() to do the comparison. 2019-06-17 11:43:58 -07:00
Kao Makino 899db09a87 Fix retry logic 2019-06-12 12:38:07 -07:00
Evan Tschannen 566f546e04
Merge pull request #1646 from kaomakino/kaomakino/mako
mako (C API) benchmark
2019-06-11 13:36:06 -07:00
Andrew Noyes f5e7b8b165 Support pkg-config 2019-06-09 15:21:36 -07:00
Andrew Noyes 9af6326e1b Make find_package work 2019-06-09 15:21:36 -07:00
Andrew Noyes 882523330c include(/path/to/cmake/file) now works for fdb_c 2019-06-09 15:21:36 -07:00
Andrew Noyes cabe41626c Prepare for exporting fdb_c 2019-06-09 15:21:36 -07:00
Andrew Noyes 2b07a0559e Install headers in foundationdb dir 2019-06-09 15:21:36 -07:00
Kao Makino 431513c654 Make mako sources a variable 2019-06-06 16:58:11 -07:00
Kao Makino db300f71c5 Build mako automatically 2019-06-06 14:53:26 -07:00
Evan Tschannen 5bdf5aaeb6
Merge pull request #1662 from etschannen/master
Merge 6.1 into master
2019-06-06 13:57:34 -07:00
Evan Tschannen cfa46ef48e fix compiler errors 2019-06-06 12:57:46 -07:00
Kao Makino c812224ddb Adjust mako.rst formatting 2019-06-05 17:26:40 -07:00
Kao Makino d2d5d52dca add mako.rst 2019-06-05 17:21:26 -07:00
Kao Makino 8a3facbb77 Add the error handling for commits 2019-06-05 13:19:53 -07:00
A.J. Beamon dbfa746494 Don't set the deterministic random seed with platform::getRandomSeed since that is what it does by default. 2019-06-05 11:48:29 -07:00
Kao Makino 1c7fa2bc7a Update build instruction 2019-06-04 17:38:05 -07:00
Kao Makino 42c14dcdc2 Fix build stuff 2019-06-04 17:35:47 -07:00
Evan Tschannen 29b96414e2 Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/NativeAPI.actor.cpp
#	fdbserver/Coordination.actor.cpp
#	flow/Arena.h
#	versions.target
2019-06-03 18:49:35 -07:00
A.J. Beamon b30fe29c9f
Merge pull request #1633 from pjvds/directory-errors
change common directory errors for easy comparison
2019-05-31 15:19:21 -07:00
Pieter Joost van de Sande b5773d2f6b
fix spelling error
Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-05-30 18:16:29 +02:00
Kao Makino ae0a5388c9 mako creation 2019-05-30 09:01:22 -07:00
Evan Tschannen 2166464c3b changed how printable was called to fix compile errors 2019-05-29 15:58:00 -07:00
Evan Tschannen 362c2bf1e6 improved the cpu efficiency of printable 2019-05-29 14:55:45 -07:00
Pieter Joost 19de1ae229 include errors in the dir layer documentation 2019-05-29 11:15:00 +02:00
A.J. Beamon 764ca2971c Merge branch 'master' into thread-safe-random-number-generation 2019-05-23 18:49:49 -07:00
A.J. Beamon 296adada93 Use c++11 thread_local instead of redefining it to platform specific variants. 2019-05-23 18:35:45 -07:00
A.J. Beamon 603721e125 Merge branch 'master' into thread-safe-random-number-generation
# Conflicts:
#	fdbclient/ManagementAPI.actor.cpp
#	fdbrpc/AsyncFileCached.actor.h
#	fdbrpc/genericactors.actor.cpp
#	fdbrpc/sim2.actor.cpp
#	fdbserver/DiskQueue.actor.cpp
#	fdbserver/workloads/BulkSetup.actor.h
#	flow/ActorCollection.actor.cpp
#	flow/Net2.actor.cpp
#	flow/Trace.cpp
#	flow/flow.cpp
2019-05-23 08:35:47 -07:00
Pieter Joost van de Sande 7debb23cf6 change common errors for easy comparison 2019-05-23 13:40:00 +02:00
A.J. Beamon 250955d18c Update required Go version in the Go binding's README.md 2019-05-22 08:54:42 -07:00
A.J. Beamon 2e09a214d9
Merge pull request #1451 from segmentio/master
bindings/go: use keepalive(f) on futures when they're used
2019-05-21 13:21:50 -07:00
Alec Grieser 76333ad87a
Resolves #1612: Go bindings: Use single line comments in CGO
This converts the multi-line comments for C imports to single line comments, which at the least is more idiomatic.
2019-05-20 13:49:22 -07:00
Alvin Moore 3acaa7343e Enabled C++17 for all Windows projects
Set Visual Studio version to 2017 (first version to support C++17)
2019-05-16 17:44:13 -07:00
Alvin Moore 94aed513c7 Switched Windows tools within projects to 2017 2019-05-16 15:05:11 -07:00
Alvin Moore bfee87bff6
Merge pull request #1567 from AlvinMooreSr/build-docker
Updated Build Docker
2019-05-15 15:01:22 -07:00
Alvin Moore 2ed1176d6a Add support for statically linking stdc++ to libfdbc_c on Centos while using custom hack for Ubuntu
Set compilationn flag to c++17
2019-05-15 02:37:16 -07:00
Alvin Moore b0362a654e Removed the debug compilation command display 2019-05-13 23:30:41 -07:00
Alvin Moore 7e4da69343 Added stdc++ library to link libraries 2019-05-13 23:25:00 -07:00
Alvin Moore 4d32909837 Moved standard libraries to LDFLAGS rather than LIBS 2019-05-10 15:22:41 -07:00
A.J. Beamon 5f55f3f613 Replace g_random and g_nondeterministic_random with functions deterministicRandom() and nondeterministicRandom() that return thread_local random number generators. Delete g_debug_random and trace_random. Allow only deterministicRandom() to be seeded, and require it to be seeded from each thread on which it is used. 2019-05-10 14:01:52 -07:00
Colin 9a85c19063
bindings/go: fix generated int64ToBytes calls 2019-05-10 15:20:59 -05:00
Colin Adler 93c1dced16
bindings/go: add labels for futures 2019-05-10 15:18:44 -05:00
Colin Adler 0d7748d59f
bindings/go: use binary.LittleEndian.PutUint64 instead of binary.Write
Benchmarks can be found in bindings/go/bench
2019-05-06 15:48:28 -05:00
Colin Adler 8033a0e717
bindings/go: format lines over 120 characters long 2019-05-06 15:37:58 -05:00
Austin Seipp ca83a80168 bindings/c: fix some print/scan format warnings
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-06 13:35:29 -07:00
Austin Seipp aab32eb855 bindings/flow: fix some print/scan format warnings
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-06 13:35:29 -07:00
Alvin Moore 648fc8ec7c
Merge pull request #1472 from mpilman/fixes/no-libfdbc-in-jar
Remove fdb_c from fat-jar
2019-05-01 14:23:56 -07:00
Evan Tschannen 2d5043c665 Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	versions.target
2019-04-30 18:27:04 -07:00
Alvin Moore 8badc2e505 Merge pull request #1338 from mpilman/features/stripped-binaries
Strip debug symbols with `make packages`
2019-04-25 12:02:10 -07:00
Trevor Clinkenbeard 9fea60675f Fix comments to use transaction_too_old instead of past_version 2019-04-24 18:50:57 -07:00
Alvin Moore 5479baa493 Modified syntax to support python 2.6 2019-04-24 13:14:53 -07:00
mpilman abb68cba92 Remove fdb_c from fat-jar
Fixes #1460
2019-04-18 13:26:27 -07:00
Andrew Noyes 6207d724f8 Fix all -Wunused-variable warnings 2019-04-15 18:13:00 -07:00
Evan Tschannen cd5c9d91fa
Merge pull request #1443 from etschannen/master
Merge 6.1 into master
2019-04-10 17:43:07 -07:00
Evan Tschannen 21c0ba555c Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	versions.target
2019-04-08 18:38:42 -07:00
A.J. Beamon 35cf87007c Update bindings/c/fdb_c.cpp 2019-04-08 14:49:10 -07:00
A.J. Beamon a7288e1325 Throw process_behind instead of future_version when all storage nodes on a team are behind. process_behind gets the same backoff behavior as not_committed. Add proxy_memory_limit_exceeded to the retryable predicate. 2019-04-08 14:21:24 -07:00
Markus Pilman 101a05ae77
Merge branch 'master' into features/client-simulator 2019-04-03 10:03:56 -08:00
Amir Abu Shareb d6a4a0a0bb bindings/go: keep futures alive on use 2019-04-03 18:47:18 +03:00
Evan Tschannen 39c595223b Merge branch 'release-6.1' 2019-04-02 22:30:02 -07:00
Evan Tschannen e5606589bb
Merge pull request #1405 from etschannen/release-6.1
Update documentation and protocol version for release 6.1.0
2019-04-02 18:40:16 -07:00
Evan Tschannen 985e1de467 Update documentation and protocol version for release 6.1.0 2019-04-02 18:39:24 -07:00
mpilman 160949d071 Remove unnecessary function 2019-04-02 16:28:34 -07:00
mpilman d38efac7f8 minor code cleanup 2019-04-02 16:23:36 -07:00
Alvin Moore b3450af8a7
Merge pull request #1338 from mpilman/features/stripped-binaries
Strip debug symbols with `make packages`
2019-04-02 15:03:37 -07:00
Chris Donati 156962e5bf Fix Versionstamp encoding issue for Value objects
Python's struct.pack does not accept Value objects.
2019-04-02 13:49:58 -07:00
mpilman 371a41dbba Allow classPath to be modified at runtime 2019-04-02 11:56:40 -07:00
Amir Abu Shareb 1a0bee4937 bindings/go: move release_memory() calls (#1400) 2019-04-02 20:58:49 +03:00
mpilman 6facfa931b fixed weird encoding issue 2019-04-02 10:32:09 -07:00
Chris Donati 2d4d219ef2 Improve Python KeySelector representation
Python 2 resolves escape characters when printing byte strings,
which doesn't seem useful in this context.

I replaced __str__ since it defaults to __repr__ and the change
should be suitable for both cases.
2019-04-01 09:18:01 -07:00
mpilman e23e63c6ac Implemented JavaWorkload
This change allows a user to write a workload in Java.

The way this is implemented is by creating a JVM within the
simulator and calling the corresponding workload class. A
workload can then run in the simulator or on a testing cluster.

If the workload is executed within the simulator, the resulting
test will not be deterministic anymore as it will execute in a
different thread (and even without that it is not clear, whether
we could get determinism as the JVM does a lot of stuff that are
not deterministic).

This is intendet to get better testing of the Java client and
layer authors can use the simulator to test their layers on a single
machine but they can still simulate failing machines etc.
2019-03-31 17:57:43 -07:00
Chris Donati f1331dbac6 Improve Python KeySelector representation
Python 2 resolves escape characters when printing byte strings,
which doesn't seem useful in this context.

I replaced __str__ since it defaults to __repr__ and the change
should be suitable for both cases.
2019-03-31 11:54:36 -07:00
A.J. Beamon f363bdb007 Update documentation about batch priority transactions 2019-03-26 15:45:38 -07:00
Alec Grieser 63f23c0818
add tests for new database behavior to python scripted tests
This also fixes the behavior for the tests of the options which are no longer reset when on_error is called.
2019-03-22 15:10:08 -04:00
Alec Grieser e6e2ea2af6
Merge remote-tracking branch 'upstream/master' into 00775-database-level-tr-options 2019-03-22 14:41:27 -04:00
Alec Grieser 5e8e2ef2a6
rename the function where it is defined as well as where it is called 2019-03-22 13:26:41 -04:00
Alec Grieser 9e15872418
remove test that is now extraneous 2019-03-22 13:20:00 -04:00
Alec Grieser 1342cc7f48
update generated.go after vexillographer change (docs only) 2019-03-22 13:12:10 -04:00
A.J. Beamon 001fde718c
fix comments to mark things that throw as throwing rather than not throwing
Co-Authored-By: alecgrieser <alloc@apple.com>
2019-03-22 13:04:11 -04:00
Alec Grieser 4ac3e790ad
modify the reset and timeout option unit tests to handle new on_error cancellation behavior 2019-03-22 12:45:59 -04: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
Evan Tschannen 5b8229160c
Merge pull request #1317 from alecgrieser/01186-java-malformed-utf16
Fixes #1186: Tuples: Malformed UTF-16 treated differently in Java and Python
2019-03-21 10:24:44 -07:00
mpilman 48f3e65bdf Strip debug symbols with `make packages`
When compiling on Linux/MacOS `make packages` will now create
a `lib` and a `bin` directory in the packages directory. In there
it will put stripped versions of all executables and shared
libraries (i.e. the binaries without debug symbols).

If this is run on Linux, it will additionally copy the debug symbols
of all executables into .debug files.
2019-03-20 20:27:10 -07:00
Alec Grieser 4fff1f6756
add database options to bindingtester stack tester 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
Andrew Noyes fdde63bbdb Remove EXPORT since it's broken and unnecessary 2019-03-19 16:28:42 -07:00
Alec Grieser 253597466c
revert temporary testing changes 2019-03-18 13:00:59 -07:00
Alec Grieser ff4386f4e4
TuplePerformanceTester no longer generates malformed UTF-16 2019-03-18 09:43:31 -07:00
Alec Grieser 715c2c980d
Fixes #1186: Tuples: Malformed UTF-16 treated differently in Java and Python
Technically, they are still treated differently in Java and Python, but now, Java throws an exception if it encounters malformed UTF-16 to avoid serializing things in ways that it cannot deserialize. It also now throws an error when reading malformed UTF-8, which I think is safer as it stops it from accidentally doing something like reading bytes and then writing it back but accidentally writing to the wrong spot, but that might be a mistake.
2019-03-18 09:19:54 -07:00
ravilution 6161144788
Fixing the Tutorials Link
Fixing the Tutorials link to point to GO version of the tutorials
2019-03-17 12:21:03 -05:00
A.J. Beamon 98f8fa62e9 Update generated.go 2019-03-14 15:05:36 -07:00
Xin Dong 636d2ca631
Merge pull request #1207 from alecgrieser/tuple-performance-cache-packed
Java: Tuple serialization/deserialization uses fewer allocations
2019-03-13 15:53:52 -07:00
Jingyu Zhou 1f39da06de
Merge pull request #1268 from jzhou77/cmake_fix
Create tar.gz file for python package
2019-03-11 22:48:16 -07:00
Alec Grieser d9e9e0c521
use bitwise or instead of addition when reconsituting long 2019-03-11 18:26:08 -07:00
Balachandar Namasivayam 36c12cd749 Add missing definitions. 2019-03-11 17:49:03 -07:00
Balachandar Namasivayam 880e8643d1 Fix Windows link errors 2019-03-11 17:49:03 -07:00
Alec Grieser 7340298202
remove debugging printing that was accidentally added 2019-03-11 16:57:36 -07:00
Alec Grieser f66ddb13c2
rewrite replace without a buffer to use replace with a buffer to first get length 2019-03-11 16:57:36 -07:00
Alec Grieser 75e475563a
clarify comments and be more strict about using UUID_BYTES constant 2019-03-11 16:57:36 -07:00
Alec Grieser 40aa2ba6f0
CMakeLists alphabetization and Javadoc improvements 2019-03-11 16:57:36 -07:00
Alec Grieser 39fd30330f
memoize incomplete versionstamp information in Tuples ; add more tests 2019-03-11 16:55:01 -07:00
Alec Grieser 663d750e1d
pack Tuples with a single byte array allocation of the right size 2019-03-11 16:55:01 -07:00
Alec Grieser a74dfa5487
compare strings by unicode codepoint without copying 2019-03-11 16:55:01 -07:00
Alec Grieser e9771364d7
various Java tuple performance tweaks
These include:

* Memoizing packed representations within Tuples
* Using longs instead of BigIntegers if possible
* As much as possible sticking to manipulating primitive types when using floats/doubles
2019-03-11 16:55:00 -07:00
Alec Grieser e6ce0ebd27
improve tuple performance tester for more types and add serialization check in TupleTest 2019-03-11 16:55:00 -07:00
Alec Grieser 78ff3d92c1
memoize the packed Tuple representation 2019-03-11 16:55:00 -07:00
A.J. Beamon 083a73b0d2 In our binding testers, stop using the TRANSACTION_LOGGING_ENABLE option and switch to the DEBUG_TRANSACTION_IDENTIFIER and LOG_TRANSACTION options 2019-03-11 13:35:43 -07:00
Alec Grieser 1ac8ecf55e
Merge pull request #1187 from ryanworl/bindings/go-tuple-layer-versionstamps
Add Versionstamp support to the Go Tuple layer
2019-03-11 12:36:47 -07:00
Jingyu Zhou 314e87edfb Create tar.gz file for python package
On Windows, the default package format can be zip, while tar.gz is expected.
2019-03-11 11:10:40 -07:00
A.J. Beamon 4941d6dc3c
Merge pull request #1212 from alecgrieser/00719-read-transaction-set-read-version
Java: Move a few methods relevant to read-only transactions to `ReadTransaction`
2019-03-11 09:49:57 -07:00
Ryan Worl 92167fd03f handle incomplete versionstamp attempting to be packed into vanilla tuple 2019-03-09 11:11:22 -05:00
Ryan Worl 8066556753 address review comments and bugs after running binding tester compared to python bindings 2019-03-09 10:48:22 -05:00
mpilman 2537f26de6 First implementaion of more user-friendly cpack
Up unto here this code is only very rudiemantery tested.

This is a firest attempt of making cpack more user-friendly.
The basic idea is to generate a component for package type so
that we can have different paths depending on whether we build
an RPM, a DEB, a TGZ, or a MacOS installer. The cpack package
config file will then chose the correct components to use.

In a later point this should make it possible to build these
with `make packages` and the ugly iteration with calling cmake
between each package would be obsolete. While this solution is
a bit more bloated, it is also much more flexible and it will be
much easier to use.

Another benefit is, that this will get rid of all warnings during
a cpack run
2019-03-07 16:49:29 -08:00
Alec Grieser 83e4b966d5 Resolves #1235: Java: FDBExceptions are created successful operation completion (#1236)
The native function `NativeFuture::Future_getError` now returns `null` when the error code is 0 instead of an `FDBException` with a "Success" message and an error code of 0. This was only used in two places within the codebase; those two places now check for `null` errors and treats them like successes.
2019-03-06 18:34:36 -08:00
Ryan Worl 77f7c0721f revent this again because my environment is dumb 2019-03-06 18:27:43 -05:00
Ryan Worl 2fbc7522e4 review feedback: fix bindingtester test, add comments to versionstamp and other structures, handle nested tuples, handle prefix []byte in PackWithVersionstamp 2019-03-06 18:25:02 -05: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
Alex Miller af617d68e6 boost 1.52.0 -> 1.67.0 in all vcxproj files 2019-03-05 22:06:12 -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
Alec Grieser eb8a085cf9
conditional add read conflict methods now return whether they added the conflict range ; test added for snapshot transactions 2019-03-02 09:48:53 -08:00
Alec Grieser 7ef189701e
Resolves #719: Support `.setReadVersion()` on `ReadTransaction` 2019-03-02 09:48:49 -08:00
Alec Grieser c8b9c998e9
Merge pull request #1216 from ajbeamon/fix-python-singlefloat-with-int
Python: creating a SingleFloat with an integer didn't work.
2019-03-01 14:08:04 -08:00
A.J. Beamon 8669aea22b Python: creating a SingleFloat with an integer didn't work. Updated the tester to exercise this path. 2019-03-01 09:25:53 -08:00
mpilman d08aad7fc4 Old build system now working on both docker images 2019-02-28 14:24:52 -08:00
mpilman d0c06ec8c0 Make old build system work on build/cmake/Dockerfile 2019-02-28 14:24:52 -08:00
mpilman a5122dc83c Don't build go bindings in IDE mode
Fixes #1171
2019-02-26 18:03:08 -08:00
Ryan Worl 05d347e194 Push byte slice instead of string onto the stack 2019-02-25 19:08:29 -05:00
Ryan Worl 4dd04862c7 Flatten if statements 2019-02-25 19:05:45 -05:00
Ryan Worl 292bb6ab0f Make `versionstampLength` constant equal Versionstamp actual length. 2019-02-25 18:57:28 -05:00
Ryan Worl b2f26224b9 Revert unintentional change back to old API 2019-02-25 18:41:57 -05:00
Ryan Worl 7ac098dc0d Add Versionstamp support to the Go Tuple layer 2019-02-25 18:39:14 -05:00
A.J. Beamon ad8bfc1b8f
Merge pull request #1166 from alecgrieser/tuple-performance-improvements
Java Tuples: Hash and equality improvements
2019-02-25 15:10:45 -05:00
mpilman 6c1f64ed22 Fixed c binding tests for IDE 2019-02-19 15:16:59 -08:00
mpilman 9b14aeb156 Tell cmake not to link/install on ide build 2019-02-19 15:16:59 -08:00
Alec Grieser 9bf4940249
Memoize Tuple hashes and do not pack for equality check 2019-02-18 08:54:25 -08:00
Alec Grieser c6947db091
Add a basic performance tester of Java Tuples 2019-02-18 08:54:21 -08:00
Vishesh Yadav e05b53d755 Merge remote-tracking branch 'apple/master' into task/tls-upgrade 2019-02-15 20:37:07 -08:00
mpilman 0bbbfb6ee3 Address Andrew's review comments 2019-02-15 00:01:42 -08:00
mpilman 0754ce1a43 fixef formatting of go code 2019-02-15 00:01:42 -08:00
mpilman 46119dce0d Disabled c-bindin tests on Windows 2019-02-15 00:01:42 -08:00
mpilman 4266429dcf Fixed python dependency 2019-02-15 00:01:42 -08:00
mpilman ddddda7328 docker-compose can now build rpm
weirdly it still generates a foundationd-unspecified
rpm. However, it is empty and can be ignored for now
2019-02-15 00:01:42 -08:00
mpilman 6529e2790b several minor bug fixes 2019-02-15 00:01:42 -08:00
mpilman ffaaaf5028 build fat-jar with packages
The packages target will now build the fat jar and
it will place the jar file into the packages directory
2019-02-15 00:01:42 -08:00
mpilman 458c14ffcd Ruby bindings for cmake + gem generation
make packages will now also generate a gem file and
put it into the packages directory within the build directory
2019-02-15 00:01:42 -08:00
mpilman 7ae3cc8ce4 Fix go binding dependency paths
Before this commit, the go bindings would
always be recompiled
2019-02-15 00:01:42 -08:00
mpilman 9b7dcc4ed5 flow, python, and go bindings 2019-02-15 00:01:42 -08:00
mpilman 44cb835ffe build python sdist 2019-02-15 00:01:42 -08:00
mpilman 50a01fb8ce Build flow-binding 2019-02-15 00:01:42 -08:00
mpilman 733ba0a751 Build c_performance_test and rwy_benchmark
addresses #1035
2019-02-15 00:01:42 -08:00
mpilman 75f692b931 simplify actorcompiler and target to compile coveragetool 2019-02-15 00:01:42 -08:00
mpilman 70545e07d8 Added documentation on how to build the jar-files 2019-02-15 00:01:42 -08:00
mpilman 1ed149e624 Add option to build fat jar 2019-02-15 00:01:42 -08:00
mpilman f601aa7407 Make Java an optional dependency 2019-02-15 00:01:42 -08:00
Vishesh Yadav 907446d0ce Merge remote-tracking branch 'apple/master' into task/tls-upgrade 2019-02-14 11:37:38 -08:00
Andrew Noyes 067a445e06 Replace unused _ variables with wait(success(...)) 2019-02-12 17:30:30 -08:00
Colin Adler 1b04f9a71a fixup! fixup! fixup! fixup! Add support for modules 2019-02-12 11:27:43 -08:00
Colin Adler 8be2de8cc2 fixup! fixup! fixup! Add support for modules 2019-02-12 11:27:43 -08:00
Colin Adler 789bc6d4ee fixup! fixup! Add support for modules 2019-02-12 11:27:43 -08:00
Colin Adler 676e1ceb73 fixup! Add support for modules 2019-02-12 11:27:43 -08:00
Colin Adler dc38c68c76 Add support for modules
Because of how fdb-go-install.sh functions, it's necessary to use to use
the folder that the script installs to, located at
$GOPATH/src/github.com/apple/foundationdb/bindings/go. Since modules
will use the version from
$GOPATH/pkg/mod/github.com/apple/foundationdb/bindings/go and has a checksum of it
stored in go.sum, it's not possible to use this package currently with modules enabled.

I believe the solution to this problem is to use replace directives:
https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive

After using the install script, adding
`replace github.com/apple/foundationdb/bindings/go => $GOPATH/src/github.com/apple/foundationdb/bindings/go`
will allow Go programs to be built normally with modules.

Note: $GOPATH cannot be used directly and must be expanded into an absolute
or relative path.

This go.mod must be added for replace directives to work correctly.
2019-02-12 11:27:43 -08:00
Colin 2f83e595cf Disable modules in Golang binding install script 2019-02-12 11:27:43 -08:00
A.J. Beamon 32b3c2ad69 Add comment for the code where we replace the semaphore in the exception handler 2019-02-11 10:35:29 -08:00
A.J. Beamon 5bf7e72fc5 If the semaphore acquire is interrupted (e.g. by a signal), then replace it with a new one so that subsequent futures will still work. 2019-02-11 10:22:19 -08:00
A.J. Beamon 8960670694 Python now blocks on a future in Python rather than in native code to preserve Python's signal handling functionality. In particular, this means that ctrl-c will work in the REPL. 2019-02-08 13:51:01 -08:00
A.J. Beamon 4c0481da40 Fix comment in go bindings that describes an old implementation. Add a release note for the new Go bindings change and add links to the existing release notes entries. 2019-02-08 12:38:38 -08:00
A.J. Beamon 093f4d9b83
Merge pull request #1091 from ajbeamon/fix-python-onready
Python: _CBFUNC should be defined outside init_c_api
2019-02-08 11:26:51 -08:00
A.J. Beamon 685242fbfc
Merge pull request #1092 from atn34/trace-format-network-option
Add trace_format network option
2019-02-08 10:52:50 -08:00
A.J. Beamon b61722e3ab
Merge pull request #1010 from pjvds/patch-2
fdb.Key implements fmt.Stringer interface
2019-02-08 09:47:15 -08:00
mpilman e45295a1f5 Added support for TLS 2019-02-07 15:37:04 -08:00
mpilman f03cd6aee1 make c bindings work on Windows 2019-02-07 15:37:04 -08:00
mpilman 8a94d80deb fdbservice and fdbrpc now compiling 2019-02-07 15:37:04 -08:00
mpilman 7a858b902d Most of FDB compiling on Windows with cmake 2019-02-07 15:37:04 -08:00
A.J. Beamon 192a48105c
Merge pull request #1124 from apple/release-6.0
Merge Release 6.0 into master
2019-02-07 12:22:40 -08:00
Pieter Joost van de Sande 8f181fde3b replace strings builder with bytes buffer 2019-02-03 20:48:21 +01:00
Balachandar Namasivayam 84a7fd1254 Add missing file fdbimpl_v609.rb to the package 2019-01-31 15:36:14 -08:00
Tim Guggenmos dd4d9b104b
Staying consistent with Pointer syntax
Space after '*' instead of before it
2019-01-29 10:07:49 +01:00
Andrew Noyes 768d7678be Add trace_format network option 2019-01-28 15:14:17 -08:00
A.J. Beamon ec995ebef0 _CBFUNC should be defined outside init_c_api, both because it doesn't depend on the C API and because it is used elsewhere and wasn't available globally as previously written 2019-01-25 11:32:49 -08:00
A.J. Beamon 2173e0acda Remove ClusterOptions from generated sources in Java 2019-01-25 09:30:02 -08:00
Evan Tschannen 1d7fec3074 Merge commit '048bfc5c368063d9e009513078dab88be0cbd5b0' into task/tls-upgrade-2
# Conflicts:
#	.gitignore
2019-01-24 17:43:06 -08:00
Andrew Noyes 1c1e42396c ClusterOptions.java is no longer generated 2019-01-24 16:04:56 -08:00
Andrew Noyes 6b34d62918 Fix GENERATED_JAVA_DIR 2019-01-24 15:59:18 -08:00
Andrew Noyes aa566a755f Account for file mv's/rm's in java bindings cmake 2019-01-24 15:41:27 -08:00
Alec Grieser 04b94e74c7
Merge pull request #942 from ajbeamon/remove-cluster-from-bindings
Remove cluster from bindings
2019-01-24 14:39:09 -08:00
Andrew Noyes 4bca5dad73 Fix _bit_length for 0 and negative numbers 2019-01-22 10:09:58 -08:00
Andrew Noyes 5a6f82a75b bit_length python 2.6 compat 2019-01-22 10:09:03 -08:00
A.J. Beamon e9ffe09b8b Go bindings reported the wrong required version when loading an incompatible version of fdb_c. 2019-01-14 10:55:28 -08:00
A.J. Beamon 401f8a6774 Python and Ruby bindings displayed an unhelpful error if trying to load an old incompatible fdb_c with a new binding. 2019-01-14 10:41:54 -08:00
A.J. Beamon 627b785a24 Fix: null handling for cluster file paths didn't work after merge 2019-01-11 10:04:05 -08:00
A.J. Beamon 8451c0cfc1 Favor nullptr in JNI code. 2019-01-10 13:13:21 -08:00
A.J. Beamon bfa97d7ff2 Address review comments 2019-01-10 12:28:14 -08:00
A.J. Beamon 11cce3731b Merge branch 'master' into remove-cluster-from-bindings
# Conflicts:
#	bindings/c/fdb_c.cpp
2019-01-10 11:58:34 -08:00
Pieter Joost van de Sande ead5bb5bc6 add Printable example to docs 2019-01-10 11:10:52 +01:00
Pieter Joost van de Sande b96c21210a fix padding in key printing 2019-01-10 08:44:30 +01:00
Pieter Joost van de Sande 696a876fd4 fix String duplication for fdb.Key 2019-01-09 00:17:23 +01:00
Pieter Joost van de Sande 4722fa0667 change fdb string representation to common format 2019-01-09 00:03:44 +01:00
Pieter Joost van de Sande 0401d04380
fdb.Key implements fmt.Stringer interface
Add the ability to get a human readable string representation of a fdb.Key by satisfying the fmt.Stringer interface. This allows keys to be used with the fmt package.
2019-01-08 09:44:16 +01:00
Bhaskar Muppana 5a8419e5cf Move Java specific setup into bindings/java/CMakeLists.txt
and s/SET/set
2019-01-02 21:19:08 -08:00
Bhaskar Muppana aa2a76ef4c
Merge pull request #981 from alexmiller-apple/cmake
Add a CMake build system
2019-01-02 18:50:15 -08:00
anoyes 6a4d87802b Replace & operator with variadic function 2018-12-28 11:33:42 -08:00
Markus Pilman df0f491c29 Some more improvements to the build and preparations for packaging 2018-12-13 15:04:13 -08:00
Markus Pilman f8eac70700 Fixed C bindings DLLEXPORT and Java bindings 2018-12-13 14:59:36 -08:00
Markus Pilman 5fafeaf219 added bindings to cmake build 2018-12-13 14:54:38 -08:00
Markus Pilman 4833afea53 CMake compiles fdb c bindings 2018-12-13 14:54:13 -08:00
Bryant Luk 2379552aea
Fix Go bindings possible nested comment warnings
When using the Go bindings in a project, you can get compilation
warnings for the `/*` in the comment blocks. These warnings seem
unnecessary.

Warning is:

\# github.com/apple/foundationdb/bindings/go/src/fdb
In file included from _cgo_export.c:4:
cgo-gcc-export-header-prolog:43:1: warning: '/*' within block comment [-Wcomment]
cgo-gcc-export-header-prolog:44:1: warning: '/*' within block comment [-Wcomment]
2018-12-13 15:41:01 -06:00
Vishesh Yadav e8e01b2406 Remove unused localAddress parameter from newNet2 and Net2 classes 2018-12-13 13:36:52 -08:00
Aaron Greenlee a1a88b2f47
Fixed apparent typo in help response 2018-12-08 17:27:32 -05:00
A.J. Beamon 97847f517b throw platform_error; -> throw platform_error();. Convert some spaces to tabs. 2018-11-28 12:56:57 -08:00
Alec Grieser 3a38288d35
remove whitespace to fix go fmt check 2018-11-28 09:09:35 -08:00
A.J. Beamon 975711c389 Merge branch 'release-6.0' of github.com:apple/foundationdb
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
2018-11-27 09:50:39 -08:00
Alec Grieser d462315809
Merge pull request #908 from pjvds/patch-1
document Begin and End members of KeyRange
2018-11-27 09:02:50 -08:00
Pieter Joost van de Sande 080464ba38
specify type on both begin and end field 2018-11-27 17:11:42 +01:00
Pieter Joost van de Sande 1c2de49bf2
match KeyRange docs with the rest of the docs 2018-11-27 08:19:46 +01:00
A.J. Beamon d1e6c81d99 The binding tester wouldn't align keys that had nan in them. Also, the ruby tester generated a few keys with byte strings instead of unicode. 2018-11-26 15:31:40 -08:00
A.J. Beamon 96b9cbcfcf fdb_c.cpp needs access to the legacy types, the C binding test uses the new API, and a couple javadoc links fixed. 2018-11-26 13:07:36 -08:00
A.J. Beamon 890a0f3e82 Merge branch 'master' into remove-cluster-from-bindings
# Conflicts:
#	bindings/flow/fdb_flow.actor.cpp
2018-11-26 12:01:03 -08:00
A.J. Beamon b19ab6d3dc Don't use null as the cluster pointer if the cluster file path is null because the Java bindings don't work with a null cluster pointer. 2018-11-26 11:52:35 -08:00
Alex Miller d076999f9b Fix the fix of the build of the bindings target.
The bindings build was broken becaue fdb_c_performance_test failed to
link with errors of the form:

    /tmp/ccym9LhK.o: In function `clearAll':
    /opt/foundationdb/bindings/c/test/performance_test.c:130: undefined reference to `fdb_transaction_clear_range'
    /tmp/ccym9LhK.o: In function `insertRange':
    /opt/foundationdb/bindings/c/test/performance_test.c:139: undefined reference to `fdb_transaction_set'
    /tmp/ccym9LhK.o: In function `singleKey':
    /opt/foundationdb/bindings/c/test/performance_test.c:540: undefined reference to `fdb_transaction_set'
    ...

PR #901's e8f20e4 fixed this by adding `-shared` to the invocation line,
and thus doing a dynamic linking of libfdb_c.

As dynamically linking produced a working executable, this suggests that
the correct set of libraries are being linked, as the symbols can be
located eventually, just not in the right order, as the linker will
proactively not include unnecessary object files from static libraries.
And unfortunately, our performance test framework likely expects to be able
to copy the binary, and not have to worry about associated dynamically
linked libraries, so a statically linked binary is preferred.

The underlying cause of this link error is that the static library
preceeded the source code in the command line:

    /usr/bin/gcc -Werror -Wno-error=format -fPIC -DNO_INTELLISENSE -fvisibility=hidden -DNDEBUG=1 -Wreturn-type -fno-omit-frame-pointer -O2 -g -Llib -lfdb_c -lpthread -Ibindings/c -o bin/fdb_c_performance_test bindings/c/test/performance_test.c

This comes from the line in the Makefile:

    @$(CC) $(CFLAGS) $(fdb_c_tests_LIBS) $(fdb_c_tests_HEADERS) -o $@ bindings/c/test/performance_test.c

As we pass `-lfdb_c` before `performance_test.c`, when the linker is
considering libfdb_c.a, it sees that no symbols from any of the object
files are currently needed, and thus doesn't include them.  When we
proceprocess performance_test.c, we suddenly need these symbols, but
it's too late, as the linker only processes files left-to-right.

Thus, we can resolve this problem by passing -lfdb_c after performance_test.c

Also of note is that we only seem to have this problem because the link
line was crafted by hand instead of using link-wrapper.sh, which already
does the right thing.
2018-11-13 16:15:32 -08:00
Evan Tschannen e45952bc53 Merge branch 'release-6.0'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/BackupContainer.actor.cpp
#	fdbclient/BlobStore.actor.cpp
#	fdbclient/HTTP.actor.cpp
#	tests/BlobStore.txt
#	versions.target
2018-11-13 16:06:39 -08:00
Evan Tschannen abb7299e1d
Merge pull request #901 from AlvinMooreSr/bindings-build
Fixed build of bindings target
2018-11-13 12:31:35 -08:00
Alec Grieser 8424fc57ec
add period to comment 2018-11-13 11:55:54 -08:00
Alec Grieser 3c8347e724
add comments for some tricky int-packing code 2018-11-13 11:41:23 -08:00
Alec Grieser 7e4f84c60e
Merge remote-tracking branch 'upstream/release-6.0' into feature-bigint-support-go-ruby-aj 2018-11-13 11:28:10 -08:00
Evan Tschannen 4e54690005 Merge branch 'release-6.0'
# Conflicts:
#	fdbserver/DataDistribution.actor.cpp
#	fdbserver/MoveKeys.actor.cpp
2018-11-12 20:26:58 -08:00
Pieter Joost van de Sande 4f4f3ebb2d
document Begin and End members of KeyRange
This allows friendly hints by tools that have go doc integration or alike.
2018-11-12 21:51:06 +01:00
Evan Tschannen 4b5d0b4e2c Merge branch 'release-6.0'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/AsyncFileBlobStore.actor.cpp
#	fdbclient/AsyncFileBlobStore.actor.h
#	fdbclient/BlobStore.actor.cpp
#	fdbclient/BlobStore.h
#	fdbclient/HTTP.actor.cpp
#	fdbclient/ManagementAPI.actor.cpp
#	fdbclient/NativeAPI.actor.cpp
#	fdbrpc/LoadBalance.actor.h
#	fdbrpc/batcher.actor.h
#	fdbrpc/fdbrpc.vcxproj
#	fdbrpc/sim2.actor.cpp
#	fdbserver/DataDistribution.actor.cpp
#	fdbserver/DataDistributionTracker.actor.cpp
#	fdbserver/SimulatedCluster.actor.cpp
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/masterserver.actor.cpp
2018-11-10 13:04:24 -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
Alvin Moore e8f20e409f Added shared library option to allow the c project tests to build 2018-11-08 08:40:56 -08:00
A.J. Beamon d38393a82f Key alignment in the binding tester results checking didn't properly determine the minimum available key. Add some comments to results checking code. 2018-11-01 12:38:00 -07:00
A.J. Beamon d02c37965d Merge branch 'release-6.0' into feature-bigint-support-go-ruby 2018-11-01 11:33:48 -07:00
A.J. Beamon 93cfec51c7 Add a test that's intended to test tuple encoding. Currently, it only checks the encoding of integers at and near the boundaries of every extra bit (i.e. 2^1, 2^2, 2^3, ...). Fixed some bugs in the binding tester results checking that made it hard to interpret results. Commit more instructions in a batch. 2018-10-31 14:18:28 -07:00
A.J. Beamon 5035c51d15 Some fixes to the type chosen for decoding integers in Go. Fix to ruby encoding at byte boundaries. Add execute bit to ruby tester. 2018-10-31 14:09:23 -07:00
A.J. Beamon 23d5382cea Add uint64 handling to golang stack tester tuples 2018-10-31 09:19:13 -07:00
A.J. Beamon 377f5e2c48 Add release notes and fix formatting 2018-10-30 15:06:47 -07:00
A.J. Beamon 42d101c517 Merge branch 'tuple-uint64' into feature-bigint-support-go-ruby
# Conflicts:
#	bindings/go/src/fdb/tuple/tuple.go
2018-10-30 14:23:26 -07:00
Justin Lowery bee8d12b24 remove multiple binary.Read calls and use a single type conversion instead 2018-10-30 14:06:03 -07:00
Justin Lowery f112ba4f07 restore NewBuffer calls, as buffer was emptied on Read calls when the value was a uint64 2018-10-30 14:06:03 -07:00
Justin Lowery 36b3818aef remove redundant calls to NewBuffer that use the bp slice. remove redundant declaration of retInt 2018-10-30 14:06:03 -07:00
Justin Lowery 0b00b4d99b keep original behavior related to decoding integers to int64, only using uint64 when needed 2018-10-30 14:06:03 -07:00
Justin Lowery 9909c1c959 add uint64 and uint types to the package documentation comments 2018-10-30 14:06:03 -07:00
Justin Lowery c6e9d2ff12 add uint64 encoding and decoding 2018-10-30 14:06:03 -07:00
A.J. Beamon b96d462ad3
Merge pull request #878 from cespare/range-error
Fix small error-handling bug in Go bindings
2018-10-29 18:12:40 -04:00
Caleb Spare edc87a9138 Fix small error-handling bug in Go bindings 2018-10-29 14:48:30 -07:00
A.J. Beamon 45e1e563ba Reword documentation for Strinc 2018-10-29 14:24:06 -07:00
A.J. Beamon 0ec1790d76 Document the Strinc function in the go bindings 2018-10-29 14:06:59 -07:00
Ofek Lev 4bd9efc4fc
Update vendored Python module six 2018-10-25 23:46:49 -04:00
A.J. Beamon 2be1cabc72 Support for big integers in go and ruby tuple layers 2018-10-24 15:50:07 -07:00
Evan Tschannen 2f4e7fad48 Merge branch 'master' of github.com:apple/foundationdb 2018-10-15 18:39:46 -07:00