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
Evan Tschannen
0217aed74c
Merge branch 'release-6.0'
...
# Conflicts:
# bindings/go/README.md
# documentation/sphinx/source/release-notes.rst
# fdbserver/MasterProxyServer.actor.cpp
# versions.target
2018-10-15 18:38:51 -07:00
A.J. Beamon
9983c534e6
Release 6.0.13 preparation
2018-10-10 13:44:16 -07:00
A.J. Beamon
a2630a68a6
We can't use async as a variable name in python 3.7 because it's now a keyword. Support gevent's new 'async_' name.
2018-10-09 09:51:04 -07:00
A.J. Beamon
b3e271bc2a
Document the mutex shenanigans used to implement block until ready
2018-10-08 15:17:37 -07:00
A.J. Beamon
d5357d2439
Update all of the bindings to use the new C API and deprecate or remove unneeded parts of their APIs.
2018-10-02 15:28:46 -07:00
A.J. Beamon
983a5bd390
Bump API version to 610
2018-09-26 10:58:07 -07:00
A.J. Beamon
1b259dbc9d
Initial work to remove clusters from our C API
2018-09-26 10:27:55 -07:00
A.J. Beamon
3eb4355a48
Some various cleanup and fixes. Added "Cluster" to TransactionMetrics trace event.
2018-09-25 15:06:19 -07:00
A.J. Beamon
09fba0647e
Use new instead of malloc; fix off by one.
2018-09-25 11:15:54 -07:00
A.J. Beamon
6ae50f7016
Change cluster objects to be a char* for the cluster file path. Remove IDatabase::createDatabase. DLApi::createDatabase deletes the temporary cluster it creates.
2018-09-25 11:01:09 -07:00
A.J. Beamon
e55a87f6cd
Merge branch 'merge-release-6.0-into-master' into remove-cluster-from-iclientapi
2018-09-24 08:22:35 -07:00
A.J. Beamon
92990d6aef
Merge release-6.0 into master
2018-09-21 16:14:39 -07:00
A.J. Beamon
c831051474
This removes the idea of clusters from IClientApi.
2018-09-21 15:58:14 -07:00
Alec Grieser
dab056db2e
Merge pull request #777 from ajbeamon/merge-release5.2-into-release6.0
...
Merge branch 'release-5.2' into release-6.0, changing the API version…
2018-09-19 11:32:43 -07:00
A.J. Beamon
90c9822174
Merge branch 'release-5.2' into release-6.0, changing the API version in the go documentation in the process.
2018-09-19 11:31:11 -07:00
Alec Grieser
10a8e67266
Merge remote-tracking branch 'upstream/release-6.0' into merge-release-6.0
2018-09-11 21:49:59 -07:00
Alec Grieser
5128d9772d
cleverly use parentheses to ensure that the bitwise operation happens before the shift
...
This was casuing getUserVersion to return incorrect results if the user version was greater than 0x00FF.
Fixes #761
2018-09-10 18:18:13 -07:00
Alec Grieser
f0c6db42db
Merge pull request #748 from ajbeamon/go-readme-update
...
Update go bindings README.
2018-09-06 14:40:29 -07:00
Bhaskar Muppana
920fd3fe97
Merge branch 'release-6.0'
2018-09-06 14:24:02 -07:00
Bhaskar Muppana
5e954a8d57
Merge remote-tracking branch 'upstream/release-5.2' into release-6.0
2018-09-06 13:29:31 -07:00
A.J. Beamon
fdba3c0f05
Update go bindings README.
2018-09-06 13:19:13 -07:00
Evan Tschannen
90301f497f
Merge branch 'release-6.0'
...
# Conflicts:
# fdbclient/ManagementAPI.actor.cpp
# fdbrpc/FlowTransport.actor.cpp
# fdbrpc/TLSConnection.actor.cpp
# fdbserver/DataDistribution.actor.cpp
# fdbserver/Status.actor.cpp
# fdbserver/storageserver.actor.cpp
# fdbserver/workloads/StatusWorkload.actor.cpp
# versions.target
2018-09-05 16:06:33 -07:00
A.J. Beamon
cab47fec19
Merge pull request #733 from alecgrieser/000732-go-install-no-default-version
...
Remove default version from fdb-go-install script
2018-09-05 14:58:49 -07:00
Alec Grieser
2274bc0671
clarify some verbiage
2018-09-05 14:46:31 -07:00
Evan Tschannen
4eaff42e4f
Merge pull request #712 from ajbeamon/remove-database-name-internal
...
Eliminate use of database names (phase 1)
2018-09-05 10:35:00 -07:00
AlvinMooreSr
f4b3299e23
Merge pull request #601 from AlvinMooreSr/python-setup
...
Changed python binding classifier
2018-09-04 12:57:02 -07:00
Alec Grieser
7c9e4d7d9f
remove default version from fdb-go-install script
...
Resolves : #732
2018-08-30 16:15:39 -07:00
A.J. Beamon
f47b45c7e1
Merge pull request #710 from ajbeamon/deprecate-tls-plugin-option
...
Deprecate TLS_plugin option.
2018-08-27 12:24:48 -07:00
A.J. Beamon
adfaa618e6
Filter version_too_old errors
2018-08-24 10:05:24 -07:00
A.J. Beamon
f8262a2f95
Merge pull request #716 from alecgrieser/fdb-go-tag-update
...
Go bindings release tag update
2018-08-23 13:20:10 -07:00
Alec Grieser
11ab3bdb99
some go bindings README tweaks
2018-08-20 18:04:35 -07:00
Alec Grieser
74771c5b1d
switch to using new release branch convention for install script
2018-08-20 18:04:20 -07:00
A.J. Beamon
2a97139d5d
This is the first step in eliminating the usage of database names in our code. The C API remains the same, but underneath that all usage of database names is eliminated.
2018-08-16 10:24:12 -07:00
A.J. Beamon
bc0832bb55
Deprecate TLS_plugin option. Don't remove deprecated methods from Go bindings, since that breaks compatibility with old API versions.
2018-08-15 10:11:08 -07:00
Alex Miller
bca324eaa6
More actorcompiler.h fixes and additions.
2018-08-14 15:50:26 -07:00
Alex Miller
535b5701e5
Rewrite all `Void _ = wait(...)` -> `wait(...)`.
...
This takes advantage of the new actorcompiler functionality to avoid
having duplicate definitions of `Void _` when trying to feed the
un-actorompiled source through clang.
2018-08-14 15:50:26 -07:00
A.J. Beamon
6af8c0d907
Prepopulated directories should have their partition state set. Filter commit_unknow_result errors if encountered in the directory test.
2018-08-13 13:35:48 -07:00
John Brownlee
9cad7c8a72
Merge remote-tracking branch 'upstream/release-5.2' into release-6.0-5.2-merge
...
# Conflicts:
# documentation/sphinx/source/downloads.rst
# documentation/sphinx/source/release-notes.rst
# packaging/msi/FDBInstaller.wxs
# versions.target
2018-07-31 13:17:37 -07:00
Alec Grieser
a2b3c71a74
thread custom executors through FDBDatabase::run and FDBDatabase::read
...
Closes #640 .
2018-07-30 16:53:07 -07:00
A.J. Beamon
2d8a6d1fd8
fix: cache databases by cluster file and DB name in golang bindings.
2018-07-30 10:10:03 -07:00
A.J. Beamon
16ba2732b8
fix: cache databases by cluster file and DB name in golang bindings.
2018-07-18 13:00:35 -07:00
Alvin Moore
bc1098d889
Changed python binding classifier to that on approved list: https://pypi.org/pypi?%3Aaction=list_classifiers
2018-07-13 07:58:08 -07:00
Alec Grieser
46b8612566
bump API version from 520 to 600
2018-07-09 11:00:57 -07:00
Alex Miller
6c98aa8aac
Fix not depending on FDBLibTLS.a and default TLS_LIBDIR to a sensible place.
2018-07-05 13:23:20 -07:00
Alex Miller
01659e34cc
Move TLS libs into STATIC_LIBS to avoid having a make dependency on them.
...
And fix STATIC_LIBS to be cross platform.
2018-07-04 00:29:53 -07:00
Alvin Moore
ab255b444f
Added support for specifying location of LibreSSL libraries via define TLS_LIBDIR
2018-07-03 09:01:01 -07:00
Alvin Moore
c3f88dbfe1
Merge branch 'master' of github.com:apple/foundationdb into tls-static
2018-07-01 23:13:57 -07:00
Alvin Moore
132e2d9267
Defined TLS build flags for projects
...
Updated TLS documentation
2018-07-01 22:49:39 -07:00
Alec Grieser
be873001cc
Merge pull request #532 from drew-richardson/master
...
Avoid calls that can panic when handling errors
2018-07-01 21:54:18 -07:00
A.J. Beamon
ea8a288a20
Merge pull request #537 from apple/release-5.2
...
Merge Release-5.2 into master
2018-06-27 15:55:58 -07:00
A.J. Beamon
d8ca7a766c
Change tree node state to have references to parent nodes and update merge logic accordinly.
2018-06-27 14:12:51 -07:00
A.J. Beamon
a7158f96aa
Address some review comments
2018-06-26 15:06:15 -07:00
A.J. Beamon
2ed452353f
Merge branch 'release-5.2' into directory-tester-cleanup
2018-06-26 14:56:09 -07:00
Alvin Moore
ef8de426d3
Changed the TLS_DISABLED macro
...
Disable TLS within Windows until working
2018-06-26 12:08:32 -07:00
Drew Richardson
efdca64f15
Avoid calls that can panic when handling errors
2018-06-26 08:23:48 -07:00
Alvin Moore
f8ce1de601
Added support for compiling TLS into binaries
2018-06-20 09:21:23 -07:00
Alex Miller
a3601af2a6
Merge pull request #435 from Liuchang0812/wip-rename-future-in-c-binding
...
rename opaque types in c binding to avoid conflicts with the standard library
2018-06-18 13:55:33 -07:00
Chang Liu
5492ea7f8c
rename opaque types in c binding to avoid conflicts with the standard library
...
Signed-off-by: Chang Liu <liuchang0812@gmail.com>
2018-06-13 11:09:42 +08:00
A.J. Beamon
a1901701d6
Merge pull request #449 from jkominek/python-getfullargspec
...
use inspect.getfullargspec when available
2018-06-12 11:58:04 -07:00
A.J. Beamon
e5488419cc
Attempt to normalize trace events:
...
* Detail names now all start with an uppercase character and contain no underscores. Ideally these should be head-first camel case, though that was harder to check.
* Type names have the same rules, except they allow one underscore (to support a usage pattern Context_Type). The first character after the underscore is also uppercase.
* Use seconds instead of milliseconds in details.
Added a check when events are logged in simulation that logs a message to stderr if the first two rules above aren't followed.
This probably doesn't address every instance of the above problems, but all of the events I was able to hit in simulation pass the check.
2018-06-08 11:11:08 -07:00
Jay Kominek
fb33412b3a
use inspect.getfullargspec when available
...
getargspec was deprecated in python3, this should use
getfullargspec when available, and degrade gracefully
otherwise.
2018-06-08 01:07:18 -06:00
A.J. Beamon
1dbe24a6e8
In the Java directory layer, DirectoryLayer.exists returns true unconditionally when not passed a path. This is different than the other bindings, which run through the normal exists check, but which I believe will still ultimately return true. The major difference is that in Java, no read version is obtained, which can cause behavior differences in the binding tester. This adds a call to get the read version to the Java testers when processing the DIRECTORY_EXISTS instruction.
2018-05-30 15:38:50 -07:00
Alec Grieser
5e61fb30d6
Merge remote-tracking branch 'upstream/release-5.2' into merge-release-5.2
2018-05-30 12:02:36 -07:00
Alec Grieser
0c2e801d40
Merge remote-tracking branch 'upstream/release-5.1' into merge-release-5.1
2018-05-30 11:49:29 -07:00
Alec Grieser
1a0175bb01
Merge pull request #395 from dkoston/go-client-readme-add-mono
...
bindings/go: README.md: Add mono as dependency, add note about fdbver
2018-05-29 10:22:25 -07:00
Dave Koston
1a415a30b6
bindings/go: README.md: Add mono as dependency
...
Mono is required to install the go bindings on macOS and Windows (build-time only)
2018-05-29 10:31:37 -05:00
A.J. Beamon
026458baf3
Merge release-5.2 into master
2018-05-23 15:32:56 -07:00
A.J. Beamon
e172a7f6f1
Fix spacing in build file
2018-05-23 15:01:13 -07:00
A.J. Beamon
48bf339843
Add indirection in the directory state tree so that merged nodes would continue sharing state through future merges.
2018-05-23 14:59:18 -07:00
A.J. Beamon
0b1bd4f765
Close transactions in ON_ERROR if the replace didn't succeed
2018-05-23 14:00:45 -07:00
A.J. Beamon
989a51e4a3
Java tester was failing to create new transactions properly in some cases
2018-05-23 13:05:15 -07:00
A.J. Beamon
f52da485a9
Don't merge directory state tree entries that have the same ID. When merged, two entries should always take the smaller ID.
2018-05-23 12:20:05 -07:00
A.J. Beamon
1a39cd4a81
The directory state tree currently relies on some static members that need to be reset when rerunning the test.
2018-05-23 12:19:21 -07:00
A.J. Beamon
addb822b91
Fix call to random.random()
2018-05-23 12:18:34 -07:00
A.J. Beamon
fc69c34138
Extract directory state tree, add some tests, and fix up a couple things
2018-05-22 11:53:19 -07:00
A.J. Beamon
f96b95a878
Ensure random prefixes for partitions and directory layer subspaces when doing comparison tests
2018-05-22 11:52:38 -07:00
A.J. Beamon
997d3eae80
Rework how the directory hierarchy state is maintained, add tracking for partitions and deleted directories, and don't allow using directories that are deleted partitions.
2018-05-18 16:24:59 -07:00
A.J. Beamon
5db549c203
Changes to print output
2018-05-18 16:24:03 -07:00
A.J. Beamon
ce3623978e
Merging children of DirListEntries now unifies the entries rather than just copying has_know_prefix
2018-05-18 09:41:54 -07:00
A.J. Beamon
9e9a81c96d
DIRECTORY_MOVE and DIRECTORY_OPEN use the existing DirListEntries, if present
2018-05-18 09:39:27 -07:00
A.J. Beamon
7159dd5ce2
DIRECTORY_MOVE_TO reuses the same DirListEntry rather than creating a new one
2018-05-18 09:38:03 -07:00
A.J. Beamon
82821d17af
Have the two copies of the default directory layer share the same DirListEntry.
2018-05-18 09:36:24 -07:00
A.J. Beamon
b94fa1ddb0
Add missing COMMIT instruction after logging directories.
2018-05-18 09:34:46 -07:00
A.J. Beamon
fd4312454b
Some changes to debugging print statements
2018-05-18 09:33:28 -07:00
Alvin Moore
83c1754181
Modified the groupId to org.foundationdb
2018-05-17 12:53:57 -07:00
Alec Grieser
e4cb178083
update api version to 520 in some flow tests
2018-05-10 18:12:41 -07:00
Alec Grieser
a3e52424da
actually pass along new versionstamp position in nested versionstamp
...
addresses #356
2018-05-10 16:11:42 -07:00
Alec Grieser
e5378083ec
honor length in Tuple.fromBytes when passed in
...
addresses #362
2018-05-10 15:27:01 -07:00
Alec Grieser
5ec391695b
regenerate generated.go with new TLS options
2018-05-10 15:26:25 -07:00
Evan Tschannen
8f984cb2c9
Merge branch 'release-5.2'
...
# Conflicts:
# fdbrpc/TLSConnection.h
2018-05-10 09:13:22 -07:00
Alec Grieser
b7f0e358b3
Merge pull request #340 from ajbeamon/move-thread-shutdown-hook-to-iclientapi
...
Move addNetworkThreadCompletionHook to IClientApi.
2018-05-09 14:45:50 -07:00
A.J. Beamon
cfd50d83d4
Add comment and remove whitespace
2018-05-09 14:38:11 -07:00
A.J. Beamon
499a3c78dc
Line ending fix
2018-05-09 10:32:02 -07:00
A.J. Beamon
33ba98c82c
Fix indent
2018-05-09 10:12:37 -07:00
A.J. Beamon
330ac4875c
Add flag to disable directory snapshot ops in the binding tester and use it in the flow bindings.
2018-05-09 10:12:37 -07:00
Alec Grieser
28ca911b6d
Merge pull request #341 from ajbeamon/bindingtester-flag-to-disable-directory-snapshot-ops
...
Add flag to disable directory snapshot ops in the binding tester
2018-05-09 10:00:02 -07:00
Justin Lowery
10410ca8cc
Remove empty line
2018-05-09 12:54:25 -04:00
A.J. Beamon
09937b8de7
Fix indent
2018-05-09 09:24:34 -07:00
Alec Grieser
f3093642b3
Merge pull request #242 from alecgrieser/32437306-better-versionstamped-value
...
Unify SET_VERSIONSTAMPED_KEY and SET_VERSIONSTAMPED_VALUE API
2018-05-09 09:04:07 -07:00
Justin Lowery
fa29a1b30c
Improve comment consistency in Go tuple package
...
Updates the first list of supported types, that can be encoded using a Tuple, to match the types that can be found in later comments within the tuple package.
2018-05-09 09:52:25 -04:00
A.J. Beamon
07273fb530
Add flag to disable directory snapshot ops in the binding tester and use it in the flow bindings.
2018-05-08 16:38:10 -07:00
A.J. Beamon
01a3360982
Move addNetworkThreadCompletionHook to IClientApi.
2018-05-08 16:33:43 -07:00
Evan Tschannen
7acdc314e4
Merge branch 'release-5.2'
...
# Conflicts:
# fdbrpc/TLSConnection.actor.cpp
2018-05-08 13:22:53 -07:00
Evan Tschannen
1f6c6a886b
Merge branch 'release-5.1' into release-5.2
2018-05-08 13:08:11 -07:00
A.J. Beamon
ca720e1540
Merge pull request #297 from apple/release-5.2
...
Merge 5.2 to Master
2018-05-08 12:04:20 -07:00
Alec Grieser
47c9e4f923
update bindings and bindingtester that uses versionstamps to use new protocol
...
issue #148
2018-05-08 08:57:09 -07:00
Alec Grieser
6ee14bbb93
expose second versionstamp value type through vexillographer and add support in bindings and bindingtester
2018-05-08 08:57:09 -07:00
Julien Blache
83f86aa26f
Switch repository clone URL from SSH to HTTPS
2018-05-07 15:20:48 -07:00
Julien Blache
899a173526
Check for FDB C library early on, add /usr/lib64 to Linux search path
...
Getting a warning at the end of the script is confusing as to the status
of the operation. Did it complete? Partially complete? What was done? It
also wastes time as the repo download comes first.
On Linux, the library may be in /usr/lib64 in many cases, so check for
the library in that path too.
2018-05-07 15:16:22 -07:00
Julien Blache
029373835c
Cleanup CGO_*FLAGS
...
Use CGO_CPPFLAGS, remove non-ld options from CGO_LDFLAGS.
2018-05-04 19:15:48 -07:00
A.J. Beamon
6502d790b9
Remove extra call to create transaction. Cleanup created transactions.
2018-05-04 09:06:47 -07:00
A.J. Beamon
d5f69ff596
Merge pull request #296 from apple/release-5.1
...
Merge Release 5.1 Into Release 5.2
2018-05-03 12:05:35 -07:00
John Brownlee
1739c82c1b
Fixes the links to download the client libraries in our documentation and packages.
2018-05-01 16:10:51 -07:00
Alec Grieser
8c47e0a086
Merge pull request #278 from vmg/vmg/tuple
...
bindings/go: Reduce memory allocations when packing tuples
2018-05-01 15:46:20 -07:00
A.J. Beamon
060b655257
Add another line of description to synchronization comment.
2018-05-01 10:00:49 -07:00
A.J. Beamon
a8c083509c
Add a note about why the high-contention allocator synchronizes on HighContentionAllocator.class rather than Transaction.
2018-05-01 09:31:40 -07:00
Vicent Marti
a19af9921e
bindings/go: Reduce memory allocations when packing tuples
...
Memory profiling a FoundationDB layer implemented in Go shows high
memory pressure and increased GC times when performing highly-concurrent
multi-key transactions on the database. Further digging displays that
the source of the memory pressure happens when packing the keys for the
transaction into byte slices: the most salient issue is that memory
during the packing process is allocated based on the number of elements
to pack and not on the total size of the resulting byte slice.
This commit attempts to reduce the amount of memory allocated when
calling `Tuple.Pack` for most (all?) usage patterns, both in number of
allocations and in total allocated size.
The following optimizations have been implemented:
- Remove `bytes.Buffer` usage in `encodeTuple`: the `Buffer` struct is
quite expensive for the key sizes we're looking to generate, both
allocation and performance-wise. A `packer` struct has been implemented
that builds the keys "naively" by using `append` on a slice. Slice
growth in Go is also amortized just like in `bytes.Buffer`.
- Do not use `bytes.Replace` in `encodeBytes`: this function is
particularly expensive because it always allocates a copy of the byte
slice, even when it doesn't contain nil bytes. Instead, the replacement
step has been implemented manually in `packer.putbytesNil`, where it can
perform the replacement optimally into the output byte slice without
allocating memory. By having this local function we also allow the
compiler to not duplicate any input `string`s when casting them to
`[]byte`; previously, a copy of every string to pack was always being
allocated because the compiler couldn't prove that `bytes.Replace`
wouldn't modify the slice.
- Use stack space in `encode[Float|Double|Int]`: all the numerical
packing functions were allocating huge amounts of memory because of the
usage of temporary `bytes.Buffer` objects and `binary.Write` calls. The
sizes for all the packed data are always known (either 4 or 8 bytes
depending on type), so the big endian packing can be performed directly
on the stack with `binary.BigEndian.PutUint[32|64]`, which doesn't
require the `interface{}` conversion for the `binary.Write` API and in
x64 compiles to a `mov + bswap` instruction pair.
As a result of these optimizations, the "average" case of key packing
can now create a key with a single allocation. More complex key packing
operations, even those that contain strings/byte slices with nil bytes,
now allocate memory in a constant way (i.e. amortized based on the
amount of growth of the output buffer and not the number of Tuple
elements to pack).
Additionally, the reduction of memory allocations and the better usage
of the `binary` APIs produce a very significant reduction in runtime for
key packing: between 2x and 6x faster for all packing operations.
Before/after benchmarks are as follows:
benchmark old ns/op new ns/op delta
BenchmarkTuplePacking/Simple-4 310 76.4 -75.35%
BenchmarkTuplePacking/Namespaces-4 495 137 -72.32%
BenchmarkTuplePacking/ManyStrings-4 960 255 -73.44%
BenchmarkTuplePacking/ManyStringsNil-4 1090 392 -64.04%
BenchmarkTuplePacking/ManyBytes-4 1409 399 -71.68%
BenchmarkTuplePacking/ManyBytesNil-4 1364 533 -60.92%
BenchmarkTuplePacking/LargeBytes-4 319 107 -66.46%
BenchmarkTuplePacking/LargeBytesNil-4 638 306 -52.04%
BenchmarkTuplePacking/Integers-4 2764 455 -83.54%
BenchmarkTuplePacking/Floats-4 3478 482 -86.14%
BenchmarkTuplePacking/Doubles-4 3654 575 -84.26%
BenchmarkTuplePacking/UUIDs-4 366 211 -42.35%
benchmark old allocs new allocs delta
BenchmarkTuplePacking/Simple-4 6 1 -83.33%
BenchmarkTuplePacking/Namespaces-4 11 1 -90.91%
BenchmarkTuplePacking/ManyStrings-4 18 2 -88.89%
BenchmarkTuplePacking/ManyStringsNil-4 18 2 -88.89%
BenchmarkTuplePacking/ManyBytes-4 23 3 -86.96%
BenchmarkTuplePacking/ManyBytesNil-4 22 2 -90.91%
BenchmarkTuplePacking/LargeBytes-4 3 2 -33.33%
BenchmarkTuplePacking/LargeBytesNil-4 3 2 -33.33%
BenchmarkTuplePacking/Integers-4 63 3 -95.24%
BenchmarkTuplePacking/Floats-4 62 2 -96.77%
BenchmarkTuplePacking/Doubles-4 63 3 -95.24%
BenchmarkTuplePacking/UUIDs-4 2 2 +0.00%
benchmark old bytes new bytes delta
BenchmarkTuplePacking/Simple-4 272 64 -76.47%
BenchmarkTuplePacking/Namespaces-4 208 64 -69.23%
BenchmarkTuplePacking/ManyStrings-4 512 192 -62.50%
BenchmarkTuplePacking/ManyStringsNil-4 512 192 -62.50%
BenchmarkTuplePacking/ManyBytes-4 864 448 -48.15%
BenchmarkTuplePacking/ManyBytesNil-4 336 192 -42.86%
BenchmarkTuplePacking/LargeBytes-4 400 192 -52.00%
BenchmarkTuplePacking/LargeBytesNil-4 400 192 -52.00%
BenchmarkTuplePacking/Integers-4 3104 448 -85.57%
BenchmarkTuplePacking/Floats-4 2656 192 -92.77%
BenchmarkTuplePacking/Doubles-4 3104 448 -85.57%
BenchmarkTuplePacking/UUIDs-4 256 192 -25.00%
2018-05-01 10:52:08 +02:00
Vicent Marti
5bab1e8e4e
bindings/go: Add tuple packing tests and benchmark
...
Although the Go bindings to FoundationDB are thoroughly tested as part
of the `bindingtester` operation, this commit implements a more-or-less
complete test case using golden files for the serialized output of
`Tuple.Pack` operations. This will make implementing optimizations and
refactoring the packing operation much simpler.
The same test cases used to verify correctness are also used as a
benchmark suite to measure the amount of memory allocated in the
different operations.
2018-05-01 10:51:57 +02:00
Iuri Sitinschi
d52f8eb255
java binding: remove unnecessary collection wrapper
2018-04-30 10:05:53 -07:00
A.J. Beamon
b359e57e78
Merge pull request #276 from isitinschi/master
...
java binding: remove unnecessary collection wrapper
2018-04-30 10:04:57 -07:00
Iuri Sitinschi
97360e77af
java binding: remove unnecessary collection wrapper
2018-04-29 12:20:07 +02:00
Alec Grieser
ed807a4f78
update generated.go to include first_in_batch
2018-04-28 17:50:49 -07:00
Alec Grieser
69e831d522
Merge remote-tracking branch 'upstream/release-5.2' into merge-release-5.2
2018-04-28 17:44:52 -07:00
Alec Grieser
a1faaafca3
Merge remote-tracking branch 'upstream/release-5.1' into merge-release-5.1
2018-04-27 16:38:18 -07:00
Evan Tschannen
9fb31b3e47
updated generated.go
2018-04-27 16:33:57 -07:00
Evan Tschannen
434d896627
removed dev null is web scale from flow tester
2018-04-27 16:14:26 -07:00