Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
7121350
Fix transaction_too_old error when version vector is enabled
jzhou77 Nov 5, 2022
3371992
Fix assertions w.r.t. VV
jzhou77 Nov 5, 2022
c3f25a2
Avoid using oldest version as read version for VV
jzhou77 Nov 7, 2022
18add2a
Disable a debugging trace event
jzhou77 Nov 7, 2022
339543a
Cherry pick 8630
dlambrig Nov 8, 2022
4173acf
Address review comments
jzhou77 Nov 8, 2022
b4bd84b
enable AVX and update version for 7.1.25 release
foundationdb-ci Nov 7, 2022
6cb7ac4
skip proxy when fetching kubectl
neethuhaneesha Nov 8, 2022
3a4641a
Merge pull request #8710 from jzhou77/release-7.1
jzhou77 Nov 8, 2022
1439943
add generated.go
dlambrig Nov 9, 2022
cf0aed4
update version after 7.1.25 release
foundationdb-ci Nov 9, 2022
e58d388
Add changes to generated.go from PR8761, and remove change to Configu…
dlambrig Nov 9, 2022
cf8b9fa
Merge remote-tracking branch 'origin/release-7.1' into r71
dlambrig Nov 9, 2022
91f452e
Update generated.go
dlambrig Nov 9, 2022
3b52fc4
Update generated.go with 8761
dlambrig Nov 9, 2022
288e922
Merge pull request #8740 from apple/r71
jzhou77 Nov 9, 2022
347bd92
Rocksdb stats level knob. (#8713)
neethuhaneesha Nov 11, 2022
c2321bf
Adding counters for singlekey clear requests (#8792)
neethuhaneesha Nov 12, 2022
32a9c5a
add bytelimit for prefetch
flowguru Nov 11, 2022
fadcb08
debug seg fault
flowguru Nov 14, 2022
f6dc3ba
Revert "debug seg fault"
flowguru Nov 15, 2022
f9338d6
[release-7.1] Add SS read range bytes metrics. (#8697) (#8724)
xy-54321 Nov 16, 2022
b0f84b8
Merge pull request #8802 from hfu94/byte71
jzhou77 Nov 16, 2022
074e6f7
Rocksdb suggest compact range checks
neethuhaneesha Nov 16, 2022
5839b6f
Merge pull request #8862 from neethuhaneesha/suggest-compacts-7.1
jzhou77 Nov 18, 2022
a716127
RocksDB 7.7.3 version upgrade
neethuhaneesha Nov 17, 2022
76df95d
Merge pull request #8880 from neethuhaneesha/rocksdb_version-7.1
jzhou77 Nov 19, 2022
5a12979
Fix backup worker assertion failure
jzhou77 Nov 19, 2022
ae6ae7c
Merge pull request #8887 from jzhou77/release-7.1
jzhou77 Nov 22, 2022
5dbbbe9
Increase buggified lock bytes for backup workers
jzhou77 Nov 28, 2022
02601a7
Merge pull request #8928 from jzhou77/release-7.1
jzhou77 Nov 28, 2022
45e88e1
Send error when LogRouterPeekPopped happens
jzhou77 Nov 16, 2022
719927d
Add more debug events
jzhou77 Nov 17, 2022
8ec6ae1
Add DebugTrace.h to 7.1 branch
xumengpanda Dec 2, 2022
2ccfa55
Merge pull request #8966 from xumengpanda/release-7.1
jzhou77 Dec 5, 2022
c764f80
Fix the bug of variable int32 overflow.
bryant507 Nov 29, 2022
55d2fd3
Fix -Wformat warning
sfc-gh-tclinkenbeard Nov 29, 2022
89a038c
Merge pull request #8996 from jzhou77/release-7.1
jzhou77 Dec 7, 2022
fc6a77f
Add determinstic in gray failure degraded server selection
halfprice Dec 2, 2022
add49dc
Merge pull request #9001 from halfprice/zhewu/cherry-pick-determinsm
jzhou77 Dec 8, 2022
5c644f2
format source code after switch to clang 15
foundationdb-ci Dec 8, 2022
af99d3b
Fix clang 15 compiling errors
jzhou77 Dec 9, 2022
711fb7f
Fix gcc 11 compiling errors
jzhou77 Dec 9, 2022
e362a1f
Fix more warnings
jzhou77 Dec 9, 2022
5984912
Merge pull request #9018 from jzhou77/release-7.1
jzhou77 Dec 10, 2022
dae0e0e
Moving rocksdb read iterator destruction from commit path to actor. (…
neethuhaneesha Dec 13, 2022
0f21fc6
Release 7.1: Cherry pick pull request #9033 (#9037)
sbodagala Dec 14, 2022
250a67a
Fix:Exclusion stuck because DD cannot build new teams
xumengpanda Nov 10, 2022
89854c4
Resolve review comment: No functional change
xumengpanda Dec 13, 2022
2b04c18
Merge branch 'release-7.1' into release-7.1
xumengpanda Dec 19, 2022
a788c09
Merge pull request #9035 from xumengpanda/release-7.1
jzhou77 Dec 20, 2022
3012c71
Add back samples for (non)empty peeks stats [release-7.1] (#9074)
jzhou77 Dec 21, 2022
f5163b3
fix health monitor last logged time
halfprice Dec 22, 2022
4d9493e
Backport RocksDB cmake file to 7.1 (#9093)
xis19 Jan 5, 2023
1eaf95a
add some rocksdb compile options that can be passed in at build time
ammolitor Jan 6, 2023
ee7c9d4
Disconnection to satellite TLog should trigger recovery in gray failu…
halfprice Jan 6, 2023
fd6a5c6
Merge pull request #9107 from halfprice/zhewu/satellite-disconnection…
jzhou77 Jan 9, 2023
b2cf133
Merge pull request #9102 from ammolitor/add_rocksdb_compile_options
jzhou77 Jan 9, 2023
1f1390c
Upgrade sphinx and document test harness and code probes
sfc-gh-mpilman Sep 20, 2022
0566533
Apply suggestions from code review
sfc-gh-mpilman Sep 21, 2022
72e1ca6
clarify how code probes are reported
sfc-gh-mpilman Sep 21, 2022
5218535
clarify statistics of TestHarness
sfc-gh-mpilman Sep 21, 2022
ddd85ef
Bump setuptools from 65.3.0 to 65.5.1 in /documentation/sphinx
dependabot[bot] Dec 27, 2022
0e0f567
Merge pull request #9172 from jzhou77/release-7.1
jzhou77 Jan 17, 2023
91f6252
Add event for txn server initialization and a warning for TLog slow c…
halfprice Jan 11, 2023
9268e19
Change TLog pull async data warning timeout
halfprice Jan 12, 2023
89a4555
Adding rocksDB control compaction on deletion knobs. (#9165)
neethuhaneesha Jan 18, 2023
3df4a40
Add 7.1.26, 7.1.27 release notes (#9186)
jzhou77 Jan 20, 2023
83b235d
Added metrics for read range operations.
neethuhaneesha Jan 21, 2023
56ee545
Merge pull request #9211 from neethuhaneesha/SystemMetrics-7.1
jzhou77 Jan 24, 2023
2a0ac99
Log PingLatency when there is no ping latency samples, but ping attempts
halfprice Jan 21, 2023
d4b1ed0
Merge pull request #9223 from halfprice/zhewu/log-ping-latency-7.1
jzhou77 Jan 24, 2023
d59629e
Changing histogram type. (#9227)
neethuhaneesha Jan 25, 2023
acd663e
Release 7.1: Cherry pick pull request #9225 (#9252)
sbodagala Jan 27, 2023
2d04275
disable AVX for 7.1.26 release
foundationdb-ci Jan 27, 2023
dc4bd7e
enable AVX and update version for 7.1.27 release
foundationdb-ci Jan 27, 2023
788f36d
update version after 7.1.27 release
foundationdb-ci Jan 31, 2023
8b3a5ab
Increase buggified lock bytes for backup workers to at least 256 MB.
sfc-gh-dadkins Jan 20, 2023
668e142
Reduce logging level for verbose events
jzhou77 Feb 1, 2023
98275ef
Merge pull request #9280 from jzhou77/release-7.1
jzhou77 Feb 1, 2023
1f5da87
Fix typo in fdb.options
dlambrig Feb 2, 2023
ff2531d
update bindings/go/src/fdb/generated.go
dlambrig Feb 3, 2023
37fe673
Merge branch 'release-7.1' into vexilographerfix
dlambrig Feb 6, 2023
c1c432d
Merge pull request #9294 from apple/vexilographerfix
jzhou77 Feb 7, 2023
b0f78ef
Fix getMappedRange metrics(release-7.1) (#9331)
flowguru Feb 13, 2023
f99915a
Enable rocksdb in simulation in 7.1. Exclude FuzzApi and HighContenti…
neethuhaneesha Feb 15, 2023
55c1343
Fix IDE build and warnings
jzhou77 Feb 16, 2023
5657e3c
Rocksdb knob changes. (#9393)
neethuhaneesha Feb 17, 2023
950c047
Fix compiler warnings
jzhou77 Feb 22, 2023
8ffacc7
Add exclude to fdbcli's configure command
jzhou77 Feb 16, 2023
550be07
Allow a comma separated list of excluded addresses
jzhou77 Feb 17, 2023
e6a64e0
Add ClogTlog workload
jzhou77 Feb 21, 2023
5b345b2
Update clogTlog workload to be single region
jzhou77 Feb 21, 2023
314a4d1
Exclude failed tlog if recovery stuck more than 30s
jzhou77 Feb 23, 2023
51375c5
Change to only clog once for a particular tlog
jzhou77 Feb 23, 2023
ac58b84
Move ClogTlog.toml to rare
jzhou77 Feb 23, 2023
5868572
Fix rare test failures
jzhou77 Feb 23, 2023
bb3bb78
Address review comments
jzhou77 Feb 24, 2023
2d77a6a
Merge branch 'release-7.1' into release-7.1
jzhou77 Feb 25, 2023
e545dc3
Allow fdbdecode to read filters from a file
jzhou77 Feb 25, 2023
f72693d
Fix filter delimiter and print sub versions
jzhou77 Feb 25, 2023
3dc8771
Merge pull request #9404 from jzhou77/release-7.1
jzhou77 Feb 25, 2023
745e86e
Use KeyRangeMap for better matching performance
jzhou77 Feb 25, 2023
6b70e5f
fdbdecode: read backup range files
vishesh Feb 25, 2023
2be2644
add filtering
vishesh Feb 25, 2023
c9f13aa
Allow fdbdecode to read filters from a file
jzhou77 Feb 25, 2023
f41f08d
Fix filter delimiter and print sub versions
jzhou77 Feb 25, 2023
1626d63
Use KeyRangeMap for better matching performance
jzhou77 Feb 25, 2023
41a92e9
Disable filter validate by default
jzhou77 Feb 25, 2023
2c8f9da
Use RangeMap for backup agent filtering
jzhou77 Feb 26, 2023
7eb805d
Refactor code
jzhou77 Feb 26, 2023
91bc83a
Allow fdbbackup, fdbrestore to read keyranges from a file
jzhou77 Feb 26, 2023
e652abf
Merge remote-tracking branch 'jzhou/restore' into restore
vishesh Feb 26, 2023
794f371
Use the RangeMapFilters
vishesh Feb 26, 2023
c71243a
add command line option
vishesh Feb 26, 2023
e900283
Clang-format
vishesh Feb 26, 2023
39f389e
Merge pull request #11 from vishesh/restore
jzhou77 Feb 26, 2023
3fb864d
Merge pull request #9483 from jzhou77/restore
jzhou77 Feb 27, 2023
481d4ed
Fix -t flag bug for fdbdecode (#9489)
jzhou77 Feb 27, 2023
6593fa7
Fix fdbbackup query returning earliest version
halfprice Feb 26, 2023
dcdee8c
Query backup size from a specific snapshot
halfprice Feb 26, 2023
20c663b
clean format
halfprice Feb 26, 2023
62c3bf2
Explicitly using min and max restorable version from backup descripti…
halfprice Feb 26, 2023
f281be0
fix clang build error
halfprice Feb 26, 2023
e86adab
Add more comments in fdbbackup query command, and address comments
halfprice Feb 27, 2023
de6496f
Change PTreeImpl::insert to overwrite existing entries (#9138)
sfc-gh-anoyes Jan 18, 2023
1ae5b1f
Avoid repeated search in VersionedMap::erase(iterator) (#9143)
sfc-gh-anoyes Jan 27, 2023
038ee58
Merge branch 'release-7.1' into zhewu/backup-size-estimate-7.1
halfprice Feb 27, 2023
5737512
Use KeyspaceSnapshotFile to filter range files
jzhou77 Feb 28, 2023
88d0f12
Merge pull request #9508 from jzhou77/release-7.1
jzhou77 Feb 28, 2023
e3397c2
Merge pull request #9506 from halfprice/zhewu/backup-size-estimate-7.1
jzhou77 Feb 28, 2023
c12e0f1
Change mutation and KV logging to SevInfo
jzhou77 Feb 28, 2023
23702f1
Output in HEX format for easy regex matching
jzhou77 Feb 28, 2023
f89610e
Merge branch 'release-7.1' into restore
jzhou77 Feb 28, 2023
bf9c642
Merge pull request #9511 from jzhou77/restore
jzhou77 Mar 1, 2023
8559e5c
Refactor decoder to read file as a whole once
jzhou77 Mar 3, 2023
b59b4ab
Add more trace events
jzhou77 Mar 3, 2023
ac51a07
Merge pull request #9560 from jzhou77/restore
jzhou77 Mar 6, 2023
02eb4fc
Allow log router to detect slow peeks and to switch DC for peeking [r…
jzhou77 Mar 10, 2023
13a98ab
Fix issue where the versions on seed storage servers decreased
sfc-gh-ljoswiak Dec 2, 2022
dd379cc
Added 7.1.28 and 7.1.29 release notes
jzhou77 Mar 13, 2023
c7b524c
Reduce running time for ClogTlog
jzhou77 Mar 8, 2023
4688bb2
Merge pull request #9668 from jzhou77/release-7.1
jzhou77 Mar 13, 2023
a60d512
disable AVX for 7.1.28 release
foundationdb-ci Mar 14, 2023
1b2517a
enable AVX and update version for 7.1.29 release
foundationdb-ci Mar 14, 2023
0373b4c
Merge commit '1b2517abce552441e3d0ed8836d1cc3f40e61a2a' into ow-fork-…
Mar 28, 2023
ec5e948
Removed an old stuff for clang compilation
Mar 30, 2023
2732d33
Fixed compilation error with clang 15
Mar 30, 2023
a1750a3
Fixed deploy on debian
Mar 31, 2023
080e298
Moved the test deploy logic from thw git workflow file to a bash script.
Mar 31, 2023
07a1398
Fixed workflow syntax
Mar 31, 2023
68d44f4
Added libatomic to the dockerfile
Apr 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 13 additions & 59 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,72 +92,26 @@ jobs:
test_deploy:
needs: [calc_ver, build]
runs-on: ubuntu-latest
env:
RHEL_IMAGE_NAME: "registry.access.redhat.com/ubi8/ubi:latest"
UBUNTU_IMAGE_NAME: "ubuntu:18.04"

steps:
- name: Download RPMs and DEBs packages
uses: actions/download-artifact@v3
id: download_packages

- name: Echo download path
run: echo ${{steps.download_packages.outputs.download-path}}

- name: Display structure of downloaded files
run: ls -R
working-directory: ${{github.workspace}}
- name: Checkout
uses: actions/checkout@v3

- name: Download RHEL and Ubuntu images
run: |
podman pull ${{ env.RHEL_IMAGE_NAME }}
podman pull ${{ env.UBUNTU_IMAGE_NAME }}
- name: Download the foundationdb distro
uses: actions/download-artifact@v3
with:
path: ${{github.workspace}}/bld/download

- name: Test RPMs deploy
shell: bash
run: |
MY_ARCH=`uname -m`
curr_path="${{ github.workspace }}"
server="foundationdb-server-${{ needs.calc_ver.outputs.full_ver }}.${MY_ARCH}.rpm"
clients="foundationdb-clients-${{ needs.calc_ver.outputs.full_ver }}.${MY_ARCH}.rpm"
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; }
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; }
podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $clients installation"; exit 3; }

- name: Test versioned RPMs deploy
shell: bash
run: |
MY_ARCH=`uname -m`
curr_path="${{ github.workspace }}"
server="foundationdb-${{ needs.calc_ver.outputs.full_ver }}-server-versioned-${{ needs.calc_ver.outputs.full_ver }}.${MY_ARCH}.rpm"
clients="foundationdb-${{ needs.calc_ver.outputs.full_ver }}-clients-versioned-${{ needs.calc_ver.outputs.full_ver }}.${MY_ARCH}.rpm"
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; }
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; }
podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${clients} && grep -q foundationdb /etc/passwd" && { echo "User foundationdb was created after $clients installation"; exit 3; }
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.RHEL_IMAGE_NAME }} /bin/bash -c "dnf install -y /home/${server} /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $server installation"; exit 4; }

- name: Test DEBs deploy
- name: Make a normal distro directory from the downloaded artifacts
shell: bash
run: |
MY_ARCH=`dpkg-architecture -q DEB_BUILD_ARCH`
curr_path="${{ github.workspace }}"
server="foundationdb-server_${{ needs.calc_ver.outputs.full_ver }}_${MY_ARCH}.deb"
clients="foundationdb-clients_${{ needs.calc_ver.outputs.full_ver }}_${MY_ARCH}.deb"
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; }
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; }
podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $clients installation"; exit 3; }

- name: Test versioned DEBs deploy
ls -Rl ${{github.workspace}}/bld/download
mkdir -p ${{github.workspace}}/bld/linux/packages
mv -v ${{github.workspace}}/bld/download/*/* ${{github.workspace}}/bld/linux/packages/

- name: Run tests
shell: bash
run: |
MY_ARCH=`dpkg-architecture -q DEB_BUILD_ARCH`
curr_path="${{ github.workspace }}"
server="foundationdb-${{ needs.calc_ver.outputs.full_ver }}-server-versioned_${{ needs.calc_ver.outputs.full_ver }}_${MY_ARCH}.deb"
clients="foundationdb-${{ needs.calc_ver.outputs.full_ver }}-clients-versioned_${{ needs.calc_ver.outputs.full_ver }}_${MY_ARCH}.deb"
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server}" && { echo "Installation $server have to fail"; exit 1; }
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server} /home/${clients}" || { echo "Installation $server and $clients have to success"; exit 2; }
podman run --rm -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${clients} && grep -q foundationdb /etc/passwd" && { echo "User foundationdb was created after $clients installation"; exit 3; }
podman run --rm -v ${curr_path}/${server}/${server}:/home/${server} -v ${curr_path}/${clients}/${clients}:/home/${clients} ${{ env.UBUNTU_IMAGE_NAME }} /bin/bash -c "apt-get update && apt-get install -y /home/${server} /home/${clients} && grep -q foundationdb /etc/passwd" || { echo "User foundationdb is not created after $server installation"; exit 4; }
run: ${{github.workspace}}/build-scripts/for-linux/test-deploy.bash ${{ needs.calc_ver.outputs.full_ver }} ${{github.workspace}}/bld/linux/packages

release:
needs: [calc_ver, build]
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ else()
endif()

project(foundationdb
VERSION 7.1.25
VERSION 7.1.29
DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions."
HOMEPAGE_URL "http://www.foundationdb.org/"
LANGUAGES C CXX ASM)
Expand Down
6 changes: 5 additions & 1 deletion bindings/c/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,11 @@ endif()
# Make sure that fdb_c.h is compatible with c90
add_executable(fdb_c90_test test/fdb_c90_test.c)
set_property(TARGET fdb_c90_test PROPERTY C_STANDARD 90)
target_compile_options(fdb_c90_test PRIVATE -Wall -Wextra -Wpedantic -Werror)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(fdb_c90_test PRIVATE -Wall -Wextra -Wpedantic -Wno-gnu-line-marker -Werror)
else ()
target_compile_options(fdb_c90_test PRIVATE -Wall -Wextra -Wpedantic -Werror)
endif ()
target_link_libraries(fdb_c90_test PRIVATE fdb_c)
endif()

Expand Down
1 change: 1 addition & 0 deletions bindings/c/test/apitester/TesterOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class TesterOptions {
int numClients;
std::vector<std::pair<std::string, std::string>> knobs;
TestSpec testSpec;
bool retainClientLibCopies = false;
};

} // namespace FdbApiTester
Expand Down
12 changes: 11 additions & 1 deletion bindings/c/test/apitester/fdb_c_api_tester.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ enum TesterOptionId {
OPT_TRACE_FORMAT,
OPT_KNOB,
OPT_EXTERNAL_CLIENT_LIBRARY,
OPT_TEST_FILE
OPT_TEST_FILE,
OPT_RETAIN_CLIENT_LIB_COPIES
};

CSimpleOpt::SOption TesterOptionDefs[] = //
Expand All @@ -61,6 +62,7 @@ CSimpleOpt::SOption TesterOptionDefs[] = //
{ OPT_EXTERNAL_CLIENT_LIBRARY, "--external-client-library", SO_REQ_SEP },
{ OPT_TEST_FILE, "-f", SO_REQ_SEP },
{ OPT_TEST_FILE, "--test-file", SO_REQ_SEP },
{ OPT_RETAIN_CLIENT_LIB_COPIES, "--retain-client-lib-copies", SO_NONE },
SO_END_OF_OPTIONS };

void printProgramUsage(const char* execName) {
Expand Down Expand Up @@ -144,6 +146,10 @@ bool processArg(TesterOptions& options, const CSimpleOpt& args) {
options.testFile = args.OptionArg();
options.testSpec = readTomlTestSpec(options.testFile);
break;

case OPT_RETAIN_CLIENT_LIB_COPIES:
options.retainClientLibCopies = true;
break;
}
return true;
}
Expand Down Expand Up @@ -205,6 +211,10 @@ void applyNetworkOptions(TesterOptions& options) {
fdb_check(FdbApi::setOption(FDBNetworkOption::FDB_NET_OPTION_TRACE_LOG_GROUP, options.logGroup));
}

if (options.retainClientLibCopies) {
fdb_check(FdbApi::setOption(FDBNetworkOption::FDB_NET_OPTION_RETAIN_CLIENT_LIBRARY_COPIES));
}

for (auto knob : options.knobs) {
fdb_check(FdbApi::setOption(FDBNetworkOption::FDB_NET_OPTION_KNOB,
fmt::format("{}={}", knob.first.c_str(), knob.second.c_str())));
Expand Down
10 changes: 9 additions & 1 deletion bindings/c/test/apitester/run_c_api_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ def run_tester(args, test_file):
if args.external_client_library is not None:
cmd += ["--external-client-library", args.external_client_library]

if args.retain_client_lib_copies:
cmd += ["--retain-client-lib-copies"]

get_logger().info('\nRunning tester \'%s\'...' % ' '.join(cmd))
proc = Popen(cmd, stdout=sys.stdout, stderr=sys.stderr)
timed_out = False
Expand Down Expand Up @@ -111,7 +114,12 @@ def parse_args(argv):
help='The timeout in seconds for running each individual test. (default 300)')
parser.add_argument('--logging-level', type=str, default='INFO',
choices=['ERROR', 'WARNING', 'INFO', 'DEBUG'], help='Specifies the level of detail in the tester output (default=\'INFO\').')

parser.add_argument(
"--retain-client-lib-copies",
action="store_true",
default=False,
help="Retain temporary external client library copies.",
)
return parser.parse_args(argv)


Expand Down
35 changes: 20 additions & 15 deletions bindings/go/src/fdb/generated.go
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,11 @@ func (o NetworkOptions) SetClientThreadsPerVersion(param int64) error {
return o.setOpt(65, int64ToBytes(param))
}

// Retain temporary external client library copies that are created for enabling multi-threading.
func (o NetworkOptions) SetRetainClientLibraryCopies() error {
return o.setOpt(67, nil)
}

// Disables logging of client statistics, such as sampled transaction activity.
func (o NetworkOptions) SetDisableClientStatisticsLogging() error {
return o.setOpt(70, nil)
Expand Down Expand Up @@ -617,12 +622,12 @@ const (
StreamingModeWantAll StreamingMode = -1

// The default. The client doesn't know how much of the range it is likely
// to used and wants different performance concerns to be balanced. Only a
// small portion of data is transferred to the client initially (in order to
// minimize costs if the client doesn't read the entire range), and as the
// caller iterates over more items in the range larger batches will be
// transferred in order to minimize latency. After enough iterations, the
// iterator mode will eventually reach the same byte limit as “WANT_ALL“
// to used and wants different performance concerns to be balanced.
// Only a small portion of data is transferred to the client initially (in
// order to minimize costs if the client doesn't read the entire range), and
// as the caller iterates over more items in the range larger batches will
// be transferred in order to minimize latency. After enough iterations,
// the iterator mode will eventually reach the same byte limit as “WANT_ALL“
StreamingModeIterator StreamingMode = 0

// Infrequently used. The client has passed a specific row limit and wants
Expand All @@ -632,25 +637,25 @@ const (
// mode is used.
StreamingModeExact StreamingMode = 1

// Infrequently used. Transfer data in batches small enough to not be much
// more expensive than reading individual rows, to minimize cost if
// Infrequently used. Transfer data in batches small enough to not be
// much more expensive than reading individual rows, to minimize cost if
// iteration stops early.
StreamingModeSmall StreamingMode = 2

// Infrequently used. Transfer data in batches sized in between small and
// large.
StreamingModeMedium StreamingMode = 3

// Infrequently used. Transfer data in batches large enough to be, in a
// high-concurrency environment, nearly as efficient as possible. If the
// client stops iteration early, some disk and network bandwidth may be
// wasted. The batch size may still be too small to allow a single client to
// get high throughput from the database, so if that is what you need
// Infrequently used. Transfer data in batches large enough to be,
// in a high-concurrency environment, nearly as efficient as possible.
// If the client stops iteration early, some disk and network bandwidth may
// be wasted. The batch size may still be too small to allow a single client
// to get high throughput from the database, so if that is what you need
// consider the SERIAL StreamingMode.
StreamingModeLarge StreamingMode = 4

// Transfer data in batches large enough that an individual client can get
// reasonable read bandwidth from the database. If the client stops
// Transfer data in batches large enough that an individual client can
// get reasonable read bandwidth from the database. If the client stops
// iteration early, considerable disk and network bandwidth may be wasted.
StreamingModeSerial StreamingMode = 5
)
Expand Down
30 changes: 0 additions & 30 deletions build-scripts/for-linux/build-find-libatomic.bash

This file was deleted.

3 changes: 0 additions & 3 deletions build-scripts/for-linux/build-on-linux.bash
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,6 @@ APP_PRMS="\
[ ! -e /usr/lib64/libcrypto.a -a -e /opt/openssl/lib/libcrypto.a ] && \
APP_PRMS="$APP_PRMS -DOPENSSL_ROOT_DIR=/opt/openssl"

# find libatomic
source $BASE_DIR/build-find-libatomic.bash

echo "env CC=clang CXX=clang++ cmake -G Ninja $APP_PRMS . $SRC_DIR"
env CC=clang CXX=clang++ cmake -G Ninja $APP_PRMS . $SRC_DIR

Expand Down
Loading