├── packaging ├── docker │ ├── website │ │ └── .gitkeep │ ├── samples │ │ └── golang │ │ │ └── app │ │ │ ├── fdb.cluster │ │ │ └── go.sum │ └── README.md ├── fdb.cluster.cmake ├── foundationdb.ico ├── msi │ ├── art │ │ ├── banner.jpg │ │ ├── banner.xcf │ │ ├── dialog.jpg │ │ ├── dialog.xcf │ │ └── favicon-60.png │ └── generate_wxs.cmake ├── deb │ ├── DEBIAN-foundationdb-server │ │ ├── conffiles │ │ └── prerm │ ├── foundationdb-clients.control.in │ └── foundationdb-server.control.in ├── osx │ ├── resources │ │ ├── logo.png │ │ └── conclusion.rtf │ ├── scripts-clients │ │ └── postinstall │ ├── scripts-server │ │ └── preinstall │ └── com.foundationdb.fdbmonitor.plist ├── description ├── multiversion │ ├── clients │ │ └── prerm │ └── server │ │ └── prerm └── rpm │ ├── scripts │ ├── postclients.sh │ ├── preclients.sh │ └── preunserver.sh │ └── foundationdb.service ├── FDBLibTLS ├── FDBLibTLS.symbols ├── FDBLibTLS.map └── CMakeLists.txt ├── flow ├── no_intellisense.opt ├── SourceVersion.h.cmake ├── actorcompiler │ ├── usertype.dat │ └── actorcompiler.csproj ├── LinkTest.cpp └── include │ └── flow │ └── Hash3.h ├── contrib ├── TestHarness2 │ ├── .gitignore │ └── test_harness │ │ ├── __init__.py │ │ └── test_valgrind_parser.py ├── fmt-8.1.1 │ ├── .clang-format │ ├── include │ │ └── fmt │ │ │ └── locale.h │ └── support │ │ └── cmake │ │ ├── fmt-config.cmake.in │ │ ├── fmt.pc.in │ │ └── FindSetEnv.cmake ├── Implib.so │ ├── .gitattributes │ ├── arch │ │ ├── x86_64 │ │ │ └── config.ini │ │ ├── aarch64 │ │ │ └── config.ini │ │ └── README.md │ ├── .gitignore │ └── .pylintrc ├── Joshua │ └── scripts │ │ ├── correctnessTimeout.sh │ │ ├── valgrindTimeout.sh │ │ ├── binding_test_timeout.sh │ │ ├── longRunningCorrectnessTimeout.sh │ │ ├── valgrindTest.sh │ │ ├── binding_test_start.sh │ │ ├── bindingTest.sh │ │ ├── correctnessTest.sh │ │ ├── longRunningCorrectnessTest.sh │ │ └── bindingTimeout.sh ├── md5 │ └── CMakeLists.txt ├── local_cluster │ ├── README.md │ └── lib │ │ └── __init__.py ├── rapidxml │ └── CMakeLists.txt ├── SimpleOpt │ └── CMakeLists.txt ├── monitoring │ └── CMakeLists.txt ├── libb64 │ ├── CMakeLists.txt │ └── include │ │ └── libb64 │ │ ├── cdecode.h │ │ └── cencode.h ├── linenoise │ └── CMakeLists.txt ├── folly_memcpy │ └── CMakeLists.txt ├── tsan.suppressions ├── lsan.suppressions ├── pkg_tester │ └── requirements.txt ├── debug_determinism │ └── CMakeLists.txt ├── crc32 │ └── CMakeLists.txt ├── TestHarness │ └── VersionInfo.cs.cmake ├── stacktrace │ ├── CMakeLists.txt │ └── stacktrace_internal │ │ └── stacktrace_unimplemented-inl.inc ├── sqlite │ └── CMakeLists.txt ├── CMakeLists.txt └── TraceLogHelper │ └── CMakeLists.txt ├── bindings ├── python │ ├── fdb │ │ ├── fdb_c.dll.pth │ │ ├── libfdb_c.so.pth │ │ ├── libfdb_c.dylib.pth │ │ └── apiversion.py.cmake │ ├── MANIFEST.in │ ├── setup.cfg │ └── README.rst ├── c │ ├── fdb_c.map │ ├── external_workload.map │ ├── test │ │ ├── fdb_c90_test.c │ │ └── apitester │ │ │ └── tests │ │ │ ├── CApiBlobGranuleErrorsSingleThr.toml │ │ │ ├── CApiMultiTenantCorrectnessMultiThr.toml │ │ │ ├── CApiBlobGranuleCorrectnessSingleThr.toml │ │ │ ├── CApiCancelTransactionCB.toml │ │ │ ├── CApiTamperClusterFile.toml │ │ │ ├── CApiBlobGranuleErrorsMultiThr.toml │ │ │ ├── CApiMultiTenantCorrectnessTLS.toml │ │ │ ├── CApiBlobGranuleErrorsOnExternalThread.toml │ │ │ ├── CApiCancelTransactionBlocking.toml │ │ │ ├── CApiCancelTransactionDBPerTX.toml │ │ │ ├── CApiCorrectnessSingleThr.toml │ │ │ ├── upgrade │ │ │ └── ApiBlobGranulesCorrectness.toml │ │ │ ├── CApiCancelTransactionWithTimeout.toml │ │ │ ├── CApiRunLoopProfiler.toml │ │ │ ├── CApiTamperClusterFileTLS.toml │ │ │ ├── CApiBlobGranuleTenantCorrectnessMultiThr.toml │ │ │ ├── CApiCorrectnessDisableBypass.toml │ │ │ ├── CApiCancelTransactionDBPerTX_TLS.toml │ │ │ ├── CApiBlobGranuleCorrectnessMultiThr.toml │ │ │ ├── CApiBlobGranuleTenantEncryptionCorrectnessMultiThr.toml │ │ │ ├── CApiBlobGranuleCorrectnessBlocking.toml │ │ │ ├── CApiCorrectnessMultiThr.toml │ │ │ ├── CApiCorrectnessWithTimeout.toml │ │ │ ├── CApiBlobGranuleEncryptionCorrectnessMultiThr.toml │ │ │ ├── CApiCorrectnessBlocking.toml │ │ │ └── CApiCorrectnessDBPerTX.toml │ └── symbolify.py ├── go │ ├── src │ │ └── fdb │ │ │ ├── fdb_darwin.go │ │ │ ├── fdb_freebsd.go │ │ │ ├── tuple │ │ │ └── testdata │ │ │ │ └── tuples.golden │ │ │ ├── fdb_windows.go │ │ │ └── subspace │ │ │ └── subspace_test.go │ └── go.mod ├── flow │ └── tester │ │ └── CMakeLists.txt ├── CMakeLists.txt ├── java │ └── suppressions.xml └── __init__.py ├── fdbkubernetesmonitor ├── .gitignore ├── api │ └── .testdata │ │ ├── fdb.cluster │ │ └── test_env.sh └── errcheck_excludes.txt ├── tests ├── pt.TXT ├── performance.txt ├── randomSelector.txt ├── selectorCorrectness.txt ├── ping.TXT ├── noSim │ ├── SlowTask.txt │ ├── ShardedRocksDBTest.toml │ ├── KeyValueStoreRocksDBTest.toml │ └── RandomUnitTests.toml ├── fast │ ├── UDP.toml │ ├── Unreadable.toml │ ├── RandomSelector.toml │ ├── PrivateEndpoints.toml │ ├── MemoryLifetime.toml │ ├── SelectorCorrectness.toml │ ├── AtomicOpsApiCorrectness.toml │ ├── ConstrainedRandomSelector.toml │ ├── PerpetualWiggleStats.toml │ ├── TimeKeeperCorrectness.toml │ ├── ReadHotDetectionCorrectness.toml │ ├── MutationLogReaderCorrectness.toml │ ├── RESTUtilsUnit.toml │ ├── WriteDuringReadClean.toml │ ├── ProtocolVersion.toml │ ├── TaskBucketCorrectness.toml │ ├── GetMappedRange.toml │ ├── CompressionUtilsUnit.toml │ ├── Watches.toml │ ├── SpecialKeySpaceRobustness.toml │ ├── SimpleAtomicAdd.toml │ ├── VersionStamp.toml │ ├── EncryptKeyProxyTest.toml │ ├── BlobCipherUnitTest.toml │ ├── ConfigureLocked.toml │ ├── LongStackWriteDuringRead.toml │ ├── RESTKmsConnectorUnit.toml │ ├── TenantEntryCache.toml │ ├── FuzzApiCorrectnessClean.toml │ ├── AutomaticIdempotency.toml │ ├── LocalRatekeeper.toml │ ├── SpecialKeySpaceCorrectness.toml │ ├── CacheTest.toml │ ├── ValidateStorage.toml │ ├── StorageServerCheckpointRestore.toml │ ├── DataLossRecovery.toml │ ├── KillRegionCycle.toml │ ├── RawTenantAccessClean.toml │ ├── RandomUnitTests.toml │ ├── ReportConflictingKeys.toml │ ├── PhysicalShardMove.toml │ ├── EncryptionUnitTests.toml │ ├── TenantLock.toml │ ├── BlobGranuleVerifySmallClean.toml │ ├── LowLatencySingleClog.toml │ ├── IDDTxnProcessorMoveKeys.toml │ ├── ConfigIncrementWithKills.toml │ ├── EncryptionOps.toml │ ├── InventoryTestSomeWrites.toml │ ├── ConfigIncrement.toml │ ├── InventoryTestAlmostReadOnly.toml │ ├── IDDTxnProcessorRawStartMovement.toml │ ├── MoveKeysCycle.toml │ ├── LowLatency.toml │ ├── BackupCorrectnessWithTenantDeletion.toml │ ├── StreamingRangeRead.toml │ ├── Sideband.toml │ ├── BackupCorrectnessWithEKPKeyFetchFailures.toml │ ├── SidebandSingle.toml │ ├── WriteDuringRead.toml │ ├── CloggedSideband.toml │ ├── ChangeFeedOperations.toml │ ├── ConfigIncrementChangeCoordinators.toml │ ├── GetEstimatedRangeSize.toml │ └── FuzzApiCorrectness.toml ├── pingServers.TXT ├── ThreadSafety.txt ├── TestRunner │ ├── requirements.txt │ └── fdb_version.py.cmake ├── rare │ ├── RYWDisable.toml │ ├── FuzzTest.toml │ ├── TransactionCost.toml │ ├── HighContentionPrefixAllocator.toml │ ├── RandomReadWriteTest.toml │ ├── AllSimUnitTests.toml │ ├── DataDistributionMetrics.toml │ ├── ConflictRangeCheck.toml │ ├── StatusBuilderPerf.toml │ ├── RedwoodCorrectnessBTree.toml │ ├── InventoryTestHeavyWrites.toml │ ├── TLogVersionMessagesOverheadFactor.toml │ ├── ConflictRangeRYOWCheck.toml │ ├── CycleWithKills.toml │ ├── ThroughputQuota.toml │ ├── ConfigDBUnitTest.toml │ ├── Throttling.toml │ ├── SpecificUnitTests.toml │ ├── DcLag.toml │ ├── RedwoodDeltaTree.toml │ ├── CheckRelocation.toml │ ├── CloggedCycleWithKills.toml │ ├── ClogTlog.toml │ ├── CycleRollbackClogged.toml │ ├── ReadSkewReadWrite.toml │ ├── LargeApiCorrectness.toml │ ├── TransactionTagApiCorrectness.toml │ └── LargeApiCorrectnessStatus.toml ├── errors.txt ├── slow │ ├── Serializability.toml │ ├── FastTriggeredWatches.toml │ ├── StorefrontTest.toml │ ├── CycleRollbackPlain.toml │ ├── LongRunning.toml │ ├── TenantCapacityLimits.toml │ ├── ConfigureTest.toml │ ├── TenantManagement.toml │ ├── BlobGranuleCorrectnessClean.toml │ ├── TenantManagementConcurrency.toml │ ├── DifferentClustersSameRV.toml │ ├── MetaclusterManagement.toml │ ├── RyowCorrectness.toml │ ├── ConfigureStorageMigrationTest.toml │ ├── CloggedCycleTest.toml │ ├── BlobGranuleVerifyBalanceClean.toml │ ├── MetaclusterRecovery.toml │ ├── MetaclusterManagementConcurrency.toml │ ├── CloggedStorefront.toml │ ├── GcGenerations.toml │ ├── MoveKeysClean.toml │ ├── ApiCorrectness.toml │ ├── VersionStampBackupToDB.toml │ ├── ddbalance.toml │ ├── LowLatencyWithFailures.toml │ ├── VersionStampSwitchover.toml │ ├── BlobGranuleVerifyLargeClean.toml │ ├── DiskFailureCycle.toml │ ├── SwizzledCycleTest.toml │ └── CommitBug.toml ├── StreamingWrite.txt ├── SimpleExternalTest.txt ├── PureNetwork.txt ├── SystemData.txt ├── killall.txt ├── Happy.txt ├── IThreadPool.txt ├── IncrementalDelete.txt ├── ReadAfterWrite.txt ├── fail.txt ├── S3BlobStore.txt ├── WorkerTests.txt ├── BackupContainers.txt ├── BandwidthThrottle.txt ├── LayerStatusMerge.txt ├── RedwoodPerfTests.txt ├── negative │ ├── ResolverIgnoreReads.toml │ ├── ResolverIgnoreWrites.toml │ ├── ResolverIgnoreTooOld.toml │ └── StorageCorruption.toml ├── s3VersionHeaders.txt ├── CTestCustom.ctest.cmake ├── RedwoodCorrectness.txt ├── RedwoodPerfSet.txt ├── StorageServerInterface.txt ├── RedwoodPerfRandomRangeScans.txt ├── ClusterControllerTests.txt ├── RedwoodCorrectnessBTree.txt ├── RedwoodCorrectnessPager.txt ├── RedwoodCorrectnessUnits.txt ├── SpecificUnitTest.txt ├── TraceEventMetrics.txt ├── performance-fs.txt ├── status │ ├── separate_no_coordinators.txt │ ├── separate_1_of_3_coordinators_remain.txt │ ├── separate_not_enough_servers.txt │ └── separate_no_database.txt ├── RedwoodPerfSequentialInsert.txt ├── StorageMetricsSampleTests.txt ├── ConsistencyCheck.txt ├── PerfUnitTests.toml ├── RedwoodPerfPrefixCompression.txt ├── restarting │ ├── from_6.3.13 │ │ ├── StorefrontTestRestart-2.txt │ │ ├── StorefrontTestRestart-1.txt │ │ ├── CycleTestRestart-2.txt │ │ ├── ClientTransactionProfilingCorrectness-2.txt │ │ └── CycleTestRestart-1.txt │ ├── from_5.0.0_until_6.3.0 │ │ ├── StorefrontTestRestart-2.txt │ │ ├── StorefrontTestRestart-1.txt │ │ ├── CycleTestRestart-2.txt │ │ └── CycleTestRestart-1.txt │ ├── from_7.1.0_until_7.2.0 │ │ ├── SnapTestRestart-2.txt │ │ ├── SnapTestSimpleRestart-2.txt │ │ ├── SnapTestAttrition-2.txt │ │ ├── SnapCycleRestart-2.txt │ │ ├── ConfigureTestRestart-2.toml │ │ ├── SnapIncrementalRestore-2.txt │ │ ├── SnapCycleRestart-1.txt │ │ ├── ConfigureTestRestart-1.toml │ │ ├── ConfigureStorageMigrationTestRestart-2.toml │ │ └── ConfigureStorageMigrationTestRestart-1.toml │ ├── from_5.1.7_until_6.3.0 │ │ ├── DrUpgradeRestart-2.txt │ │ └── DrUpgradeRestart-1.txt │ ├── from_6.3.13_until_7.2.0 │ │ ├── DrUpgradeRestart-2.txt │ │ └── DrUpgradeRestart-1.txt │ ├── from_7.3.0 │ │ ├── ConfigureTestRestart-2.toml │ │ ├── DrUpgradeRestart-2.toml │ │ ├── ConfigureTestRestart-1.toml │ │ ├── ConfigureStorageMigrationTestRestart-2.toml │ │ ├── ConfigureStorageMigrationTestRestart-1.toml │ │ └── DrUpgradeRestart-1.toml │ ├── from_7.2.0_until_7.3.0 │ │ ├── ConfigureTestRestart-2.toml │ │ ├── DrUpgradeRestart-2.toml │ │ ├── ConfigureStorageMigrationTestRestart-2.toml │ │ ├── ConfigureTestRestart-1.toml │ │ ├── ConfigureStorageMigrationTestRestart-1.toml │ │ └── DrUpgradeRestart-1.toml │ ├── to_7.3.0 │ │ └── ConfigureStorageMigrationTestRestart-2.toml │ ├── to_7.1.0_until_7.2.0 │ │ └── ConfigureStorageMigrationTestRestart-2.toml │ ├── to_7.2.0_until_7.3.0 │ │ └── ConfigureStorageMigrationTestRestart-2.toml │ └── from_5.2.0_until_6.3.0 │ │ ├── ClientTransactionProfilingCorrectness-2.txt │ │ └── ClientTransactionProfilingCorrectness-1.txt ├── FileSystem.txt ├── BlobManagerUnit.toml ├── DiskDurability.txt ├── BGServerCommonUnit.toml ├── authorization │ └── requirements.txt ├── latency.txt ├── BlobGranuleFileUnit.toml ├── RandomRangeRead.txt ├── RandomRead.txt ├── ReadAbsent.txt ├── ReadHalfAbsent.txt ├── AsyncFileWrite.txt ├── KVStoreTestWrite.txt ├── KVStoreTestRead.txt ├── AsyncFileCorrectness.txt ├── KVStoreReadMostly.txt ├── AsyncFileReadRandom.txt ├── RRW2500.txt ├── BigInsert.txt ├── Mako.txt ├── AsyncFileMix.txt ├── SampleNoSimAttrition.txt ├── DataDistributionMetrics.txt ├── RandomReadWrite.txt └── AsyncFileRead.txt ├── fdb.cluster.cmake ├── cmake ├── Config.cmake.in ├── user-config.jam.cmake ├── foundationdb-client.pc.in ├── AssertFileDoesntExist.cmake ├── FindWIX.cmake ├── FindValgrind.cmake ├── EnableCsharp.cmake ├── FindEditline.cmake ├── GetMsgpack.cmake └── Finduring.cmake ├── documentation ├── FDB.pdf ├── sphinx │ ├── .pip.conf │ ├── source │ │ ├── images │ │ │ ├── latency.png │ │ │ ├── scaling.png │ │ │ ├── concurrency.png │ │ │ ├── throughput.png │ │ │ ├── AP_Partition.png │ │ │ ├── Architecture.pdf │ │ │ ├── Architecture.png │ │ │ ├── FDB_Partition.png │ │ │ ├── FDB_read_path.png │ │ │ ├── FDB_write_path.png │ │ │ ├── architecture-1.jpeg │ │ │ ├── architecture-2.jpeg │ │ │ ├── architecture-3.jpeg │ │ │ ├── architecture-4.jpeg │ │ │ ├── architecture-5.jpeg │ │ │ ├── architecture-6.jpeg │ │ │ ├── FDB_ha_write_path.png │ │ │ ├── FDB_multiple_txn_swimlane_diagram.png │ │ │ └── serialized_mutation_metadata_format.png │ │ ├── redwood.rst │ │ ├── contents.rst │ │ ├── deadlock-blurb.rst.inc │ │ ├── visibility.rst │ │ ├── api-reference.rst │ │ └── earlier-release-notes.rst │ ├── .gitignore │ └── requirements.txt ├── FDB_logo.png └── tutorial │ └── CMakeLists.txt ├── fdbrpc ├── libcoroutine │ ├── bsd_license.txt │ └── Base.h ├── LinkTest.cpp ├── tests │ └── CMakeLists.txt └── Replication.cpp ├── design └── LoadBalancing │ └── LoadBalancing.pdf ├── fdbclient ├── versions.h.cmake ├── LinkTest.cpp ├── include │ └── fdbclient │ │ └── zipf.h ├── azurestorage.cmake └── CommitProxyInterface.cpp ├── .flake8 ├── .git-blame-ignore-revs ├── versions.target.cmake ├── .pre-commit-config.yaml ├── fdbservice └── CMakeLists.txt └── metacluster └── CMakeLists.txt /packaging/docker/website/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /FDBLibTLS/FDBLibTLS.symbols: -------------------------------------------------------------------------------- 1 | _get_plugin 2 | -------------------------------------------------------------------------------- /flow/no_intellisense.opt: -------------------------------------------------------------------------------- 1 | /D "NO_INTELLISENSE=1" -------------------------------------------------------------------------------- /contrib/TestHarness2/.gitignore: -------------------------------------------------------------------------------- 1 | /tmp/ 2 | /venv 3 | -------------------------------------------------------------------------------- /contrib/fmt-8.1.1/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | -------------------------------------------------------------------------------- /bindings/python/fdb/fdb_c.dll.pth: -------------------------------------------------------------------------------- 1 | ../../../bin/release/fdb_c.dll -------------------------------------------------------------------------------- /bindings/python/fdb/libfdb_c.so.pth: -------------------------------------------------------------------------------- 1 | ../../../lib/libfdb_c.so -------------------------------------------------------------------------------- /fdbkubernetesmonitor/.gitignore: -------------------------------------------------------------------------------- 1 | fdbkubernetesmonitor 2 | 3 | -------------------------------------------------------------------------------- /contrib/Implib.so/.gitattributes: -------------------------------------------------------------------------------- 1 | arch/*/*.tpl linguist-vendored 2 | -------------------------------------------------------------------------------- /bindings/python/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | include LICENSE 3 | -------------------------------------------------------------------------------- /bindings/python/fdb/libfdb_c.dylib.pth: -------------------------------------------------------------------------------- 1 | ../../../lib/libfdb_c.dylib 2 | -------------------------------------------------------------------------------- /fdbkubernetesmonitor/api/.testdata/fdb.cluster: -------------------------------------------------------------------------------- 1 | test:test@127.0.0.1:4501 2 | -------------------------------------------------------------------------------- /tests/pt.TXT: -------------------------------------------------------------------------------- 1 | testTitle=UnitPerf 2 | testName=UnitPerf 3 | startDelay=0 4 | -------------------------------------------------------------------------------- /packaging/docker/samples/golang/app/fdb.cluster: -------------------------------------------------------------------------------- 1 | docker:docker@127.0.0.1:4500 2 | -------------------------------------------------------------------------------- /tests/performance.txt: -------------------------------------------------------------------------------- 1 | testTitle=PerformanceProbe 2 | testName=Performance 3 | -------------------------------------------------------------------------------- /tests/randomSelector.txt: -------------------------------------------------------------------------------- 1 | testTitle=RYOW_Test 2 | testName=RandomSelector 3 | -------------------------------------------------------------------------------- /bindings/c/fdb_c.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | fdb_*; 4 | local: 5 | *; 6 | }; 7 | -------------------------------------------------------------------------------- /fdb.cluster.cmake: -------------------------------------------------------------------------------- 1 | ${CLUSTER_DESCRIPTION1}:${CLUSTER_DESCRIPTION1}@127.0.0.1:4000 2 | -------------------------------------------------------------------------------- /fdbkubernetesmonitor/errcheck_excludes.txt: -------------------------------------------------------------------------------- 1 | (io.Closer).Close 2 | (*os.File).Close 3 | -------------------------------------------------------------------------------- /bindings/python/fdb/apiversion.py.cmake: -------------------------------------------------------------------------------- 1 | LATEST_API_VERSION = @FDB_AV_LATEST_BINDINGS_VERSION@ -------------------------------------------------------------------------------- /cmake/Config.cmake.in: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") 2 | -------------------------------------------------------------------------------- /tests/selectorCorrectness.txt: -------------------------------------------------------------------------------- 1 | testTitle=RYOW_Test 2 | testName=SelectorCorrectness 3 | -------------------------------------------------------------------------------- /FDBLibTLS/FDBLibTLS.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | get_plugin; 4 | local: 5 | *; 6 | }; 7 | -------------------------------------------------------------------------------- /flow/SourceVersion.h.cmake: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define sourceVersion "${CURRENT_GIT_VERSION}" 3 | -------------------------------------------------------------------------------- /packaging/fdb.cluster.cmake: -------------------------------------------------------------------------------- 1 | ${CLUSTER_DESCRIPTION1}:${CLUSTER_DESCRIPTION1}@127.0.0.1:4500 2 | -------------------------------------------------------------------------------- /tests/ping.TXT: -------------------------------------------------------------------------------- 1 | testTitle=Ping 2 | testName=Ping 3 | logging=true 4 | startDelay=0.0 -------------------------------------------------------------------------------- /contrib/Implib.so/arch/x86_64/config.ini: -------------------------------------------------------------------------------- 1 | [Arch] 2 | PointerSize = 8 3 | SymbolReloc = R_X86_64_64 4 | -------------------------------------------------------------------------------- /documentation/FDB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/FDB.pdf -------------------------------------------------------------------------------- /contrib/Implib.so/arch/aarch64/config.ini: -------------------------------------------------------------------------------- 1 | [Arch] 2 | PointerSize = 8 3 | SymbolReloc = R_AARCH64_ABS64 4 | -------------------------------------------------------------------------------- /documentation/sphinx/.pip.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | timeout = 60 3 | index-url = https://pypi.python.org/simple 4 | -------------------------------------------------------------------------------- /flow/actorcompiler/usertype.dat: -------------------------------------------------------------------------------- 1 | ACTOR 2 | loop 3 | state 4 | choose 5 | when 6 | wait 7 | waitNext 8 | DESCR -------------------------------------------------------------------------------- /tests/noSim/SlowTask.txt: -------------------------------------------------------------------------------- 1 | useDB=false 2 | testTitle=Slow Task Stress 3 | testName=SlowTaskWorkload 4 | -------------------------------------------------------------------------------- /bindings/c/external_workload.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | workloadFactory; 4 | local: 5 | *; 6 | }; 7 | 8 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/correctnessTimeout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -u 2 | 3 | 4 | python3 -m test_harness.timeout 5 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/valgrindTimeout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -u 2 | python3 -m test_harness.timeout --use-valgrind 3 | -------------------------------------------------------------------------------- /documentation/FDB_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/FDB_logo.png -------------------------------------------------------------------------------- /packaging/foundationdb.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/foundationdb.ico -------------------------------------------------------------------------------- /packaging/msi/art/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/msi/art/banner.jpg -------------------------------------------------------------------------------- /packaging/msi/art/banner.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/msi/art/banner.xcf -------------------------------------------------------------------------------- /packaging/msi/art/dialog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/msi/art/dialog.jpg -------------------------------------------------------------------------------- /packaging/msi/art/dialog.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/msi/art/dialog.xcf -------------------------------------------------------------------------------- /tests/fast/UDP.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'UDP' 3 | 4 | [[test.workload]] 5 | testName = 'UDPWorkload' 6 | -------------------------------------------------------------------------------- /tests/pingServers.TXT: -------------------------------------------------------------------------------- 1 | testTitle=PingServers 2 | testName=Ping 3 | logging=true 4 | pingWorkers=true 5 | -------------------------------------------------------------------------------- /packaging/deb/DEBIAN-foundationdb-server/conffiles: -------------------------------------------------------------------------------- 1 | /etc/foundationdb/foundationdb.conf 2 | /etc/init.d/foundationdb 3 | -------------------------------------------------------------------------------- /packaging/msi/art/favicon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/msi/art/favicon-60.png -------------------------------------------------------------------------------- /packaging/osx/resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/packaging/osx/resources/logo.png -------------------------------------------------------------------------------- /contrib/Joshua/scripts/binding_test_timeout.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | echo "Binding test timed out" 4 | cat output.log -------------------------------------------------------------------------------- /fdbrpc/libcoroutine/bsd_license.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/fdbrpc/libcoroutine/bsd_license.txt -------------------------------------------------------------------------------- /tests/ThreadSafety.txt: -------------------------------------------------------------------------------- 1 | testTitle=ThreadSafetyTest 2 | runSetup=true 3 | clearAfterTest=true 4 | 5 | testName=ThreadSafety 6 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/longRunningCorrectnessTimeout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -u 2 | 3 | python3 -m test_harness.timeout --long-running 4 | -------------------------------------------------------------------------------- /design/LoadBalancing/LoadBalancing.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/design/LoadBalancing/LoadBalancing.pdf -------------------------------------------------------------------------------- /packaging/description: -------------------------------------------------------------------------------- 1 | FoundationDB is a scalable, fault-tolerant, ordered key-value store 2 | with full ACID transactions. 3 | 4 | -------------------------------------------------------------------------------- /tests/TestRunner/requirements.txt: -------------------------------------------------------------------------------- 1 | Authlib==1.1.0 2 | cffi==1.15.1 3 | cryptography==39.0.1 4 | pycparser==2.21 5 | toml==0.10.2 6 | -------------------------------------------------------------------------------- /tests/fast/Unreadable.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'Unreadable' 3 | 4 | [[test.workload]] 5 | testName = 'Unreadable' 6 | -------------------------------------------------------------------------------- /tests/fast/RandomSelector.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RYOW_Test' 3 | 4 | [[test.workload]] 5 | testName = 'RandomSelector' 6 | -------------------------------------------------------------------------------- /tests/rare/RYWDisable.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RYWDisableTest' 3 | 4 | [[test.workload]] 5 | testName = 'RYWDisable' 6 | -------------------------------------------------------------------------------- /contrib/md5/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(md5 STATIC md5.c) 2 | target_include_directories(md5 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") 3 | -------------------------------------------------------------------------------- /fdbclient/versions.h.cmake: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define FDB_VT_VERSION "${FDB_VERSION}" 3 | #define FDB_VT_PACKAGE_NAME "${FDB_PACKAGE_NAME}" 4 | -------------------------------------------------------------------------------- /tests/errors.txt: -------------------------------------------------------------------------------- 1 | testTitle=WorkerErrorsTest 2 | runSetup=false 3 | clearAfterTest=false 4 | useDB=false 5 | 6 | testName=WorkerErrors 7 | -------------------------------------------------------------------------------- /tests/fast/PrivateEndpoints.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'PrivateEndpoints' 3 | 4 | [[test.workload]] 5 | testName = 'PrivateEndpoints' 6 | -------------------------------------------------------------------------------- /bindings/go/src/fdb/fdb_darwin.go: -------------------------------------------------------------------------------- 1 | package fdb 2 | 3 | //#cgo CFLAGS: -I/usr/local/include/ 4 | //#cgo LDFLAGS: -L/usr/local/lib/ 5 | import "C" 6 | -------------------------------------------------------------------------------- /contrib/fmt-8.1.1/include/fmt/locale.h: -------------------------------------------------------------------------------- 1 | #include "xchar.h" 2 | #warning fmt/locale.h is deprecated, include fmt/format.h or fmt/xchar.h instead 3 | -------------------------------------------------------------------------------- /contrib/local_cluster/README.md: -------------------------------------------------------------------------------- 1 | # `local_cluster` library 2 | 3 | `local_cluster` library provides a way of spawning local FoundationDB processes. -------------------------------------------------------------------------------- /tests/fast/MemoryLifetime.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'MemoryLifetimeTest' 3 | 4 | [[test.workload]] 5 | testName = 'MemoryLifetime' 6 | -------------------------------------------------------------------------------- /tests/fast/SelectorCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RYOW_Test' 3 | 4 | [[test.workload]] 5 | testName = 'SelectorCorrectness' 6 | -------------------------------------------------------------------------------- /tests/rare/FuzzTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'FuzzTest' 3 | useDB = false 4 | 5 | [[test.workload]] 6 | testName = 'ActorFuzz' 7 | -------------------------------------------------------------------------------- /tests/slow/Serializability.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'Serializability' 3 | 4 | [[test.workload]] 5 | testName = 'Serializability' 6 | -------------------------------------------------------------------------------- /bindings/go/src/fdb/fdb_freebsd.go: -------------------------------------------------------------------------------- 1 | package fdb 2 | 3 | //#cgo CFLAGS: -I/usr/local/include/ 4 | //#cgo LDFLAGS: -L/usr/local/lib/ 5 | import "C" 6 | -------------------------------------------------------------------------------- /bindings/go/src/fdb/tuple/testdata/tuples.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/bindings/go/src/fdb/tuple/testdata/tuples.golden -------------------------------------------------------------------------------- /documentation/sphinx/source/images/latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/latency.png -------------------------------------------------------------------------------- /documentation/sphinx/source/images/scaling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/scaling.png -------------------------------------------------------------------------------- /packaging/osx/scripts-clients/postinstall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | /usr/bin/python -m compileall /Library/Python/2.7/site-packages/fdb 4 | 5 | exit 0 6 | -------------------------------------------------------------------------------- /tests/StreamingWrite.txt: -------------------------------------------------------------------------------- 1 | testTitle=StreamingWrite 2 | testName=BulkLoad 3 | testDuration=60 4 | valueBytes=1024 5 | actorCount=100 6 | -------------------------------------------------------------------------------- /contrib/rapidxml/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(rapidxml INTERFACE) 2 | target_include_directories(rapidxml INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") 3 | -------------------------------------------------------------------------------- /documentation/sphinx/source/images/concurrency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/concurrency.png -------------------------------------------------------------------------------- /documentation/sphinx/source/images/throughput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/throughput.png -------------------------------------------------------------------------------- /tests/SimpleExternalTest.txt: -------------------------------------------------------------------------------- 1 | testTitle=SimpleExternalTest 2 | testName=External 3 | libraryName=c_workloads 4 | workloadName=SimpleWorkload 5 | -------------------------------------------------------------------------------- /contrib/SimpleOpt/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(SimpleOpt INTERFACE) 2 | target_include_directories(SimpleOpt INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") 3 | -------------------------------------------------------------------------------- /contrib/monitoring/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(actor_flamegraph actor_flamegraph.cpp) 2 | target_link_libraries(actor_flamegraph PRIVATE Threads::Threads) 3 | -------------------------------------------------------------------------------- /documentation/sphinx/source/images/AP_Partition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/AP_Partition.png -------------------------------------------------------------------------------- /documentation/sphinx/source/images/Architecture.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/Architecture.pdf -------------------------------------------------------------------------------- /documentation/sphinx/source/images/Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/Architecture.png -------------------------------------------------------------------------------- /documentation/sphinx/source/images/FDB_Partition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/FDB_Partition.png -------------------------------------------------------------------------------- /documentation/sphinx/source/images/FDB_read_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/FDB_read_path.png -------------------------------------------------------------------------------- /documentation/sphinx/source/images/FDB_write_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/FDB_write_path.png -------------------------------------------------------------------------------- /tests/PureNetwork.txt: -------------------------------------------------------------------------------- 1 | testTitle=Pure Network Test 2 | testName=ReadLatency 3 | testDuration=30.0 4 | actorCount=2000 5 | simultaneousReads=10 6 | -------------------------------------------------------------------------------- /tests/SystemData.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/SystemData/ -------------------------------------------------------------------------------- /tests/killall.txt: -------------------------------------------------------------------------------- 1 | testTitle=killall 2 | testName=Attrition 3 | machinesToKill=100 4 | machinesToLeave=0 5 | reboot=true 6 | testDuration=1 7 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | ignore = E203, E266, E501, W503, F403, F401, E711, C901, E721, W605 3 | max-line-length = 88 4 | max-complexity = 18 5 | select = B,C,E,F,W,T4,B9 -------------------------------------------------------------------------------- /bindings/python/setup.cfg: -------------------------------------------------------------------------------- 1 | [pycodestyle] 2 | max-line-length = 150 3 | exclude = six.py, fdboptions.py 4 | ignore = E266, E402, E711, E712, E721, E722, W503, W504 5 | -------------------------------------------------------------------------------- /contrib/libb64/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(libb64 STATIC cdecode.c cencode.c) 2 | target_include_directories(libb64 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") 3 | -------------------------------------------------------------------------------- /contrib/linenoise/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(linenoise STATIC linenoise.c) 2 | target_include_directories(linenoise PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") 3 | -------------------------------------------------------------------------------- /documentation/sphinx/source/images/architecture-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/architecture-1.jpeg -------------------------------------------------------------------------------- /documentation/sphinx/source/images/architecture-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/architecture-2.jpeg -------------------------------------------------------------------------------- /documentation/sphinx/source/images/architecture-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/architecture-3.jpeg -------------------------------------------------------------------------------- /documentation/sphinx/source/images/architecture-4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/architecture-4.jpeg -------------------------------------------------------------------------------- /documentation/sphinx/source/images/architecture-5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/architecture-5.jpeg -------------------------------------------------------------------------------- /documentation/sphinx/source/images/architecture-6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/architecture-6.jpeg -------------------------------------------------------------------------------- /documentation/sphinx/.gitignore: -------------------------------------------------------------------------------- 1 | .out 2 | .dist 3 | .DS_Store 4 | 5 | _templates/buildinfo.html 6 | 7 | # Vim 8 | *.swp 9 | 10 | # Intellij IDEA 11 | .idea/ 12 | -------------------------------------------------------------------------------- /documentation/sphinx/source/images/FDB_ha_write_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/FDB_ha_write_path.png -------------------------------------------------------------------------------- /tests/Happy.txt: -------------------------------------------------------------------------------- 1 | testTitle=Unclogged 2 | testName=Cycle 3 | transactionsPerSecond=3500.0 4 | testDuration=2.0 5 | expectedRate=0.80 6 | startDelay=0 7 | -------------------------------------------------------------------------------- /tests/IThreadPool.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/flow/IThreadPool/ -------------------------------------------------------------------------------- /tests/IncrementalDelete.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=1 7 | testsMatching=/fileio 8 | -------------------------------------------------------------------------------- /tests/ReadAfterWrite.txt: -------------------------------------------------------------------------------- 1 | testTitle=ReadAfterWriteTest 2 | testName=ReadAfterWrite 3 | testDuration=10 4 | waitForQuiescenceBegin=false 5 | waitForQuiescenceEnd=false 6 | -------------------------------------------------------------------------------- /tests/fail.txt: -------------------------------------------------------------------------------- 1 | testTitle=AlwaysFails 2 | testName=Cycle 3 | transactionsPerSecond=2500.0 4 | testDuration=5.0 5 | nodeCount=10000.0 6 | expectedRate=2.0 -------------------------------------------------------------------------------- /tests/fast/AtomicOpsApiCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'AtomicOpsCorrectnessTest' 3 | 4 | [[test.workload]] 5 | testName = 'AtomicOpsApiCorrectness' 6 | -------------------------------------------------------------------------------- /tests/fast/ConstrainedRandomSelector.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RYOW_Test' 3 | 4 | [[test.workload]] 5 | testName = 'RandomSelector' 6 | maxKeySpace = 3 7 | -------------------------------------------------------------------------------- /tests/fast/PerpetualWiggleStats.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'PerpetualWiggleStats' 3 | useDB = true 4 | 5 | [[test.workload]] 6 | testName = 'PerpetualWiggleStatsWorkload' -------------------------------------------------------------------------------- /contrib/fmt-8.1.1/support/cmake/fmt-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include(${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake) 4 | check_required_components(fmt) 5 | -------------------------------------------------------------------------------- /packaging/multiversion/clients/prerm: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | update-alternatives --remove fdbclients /usr/lib/foundationdb-@FDB_VERSION@@FDB_BUILDTIME_STRING@/bin/fdbcli 4 | -------------------------------------------------------------------------------- /tests/S3BlobStore.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/backup/blob_store_io 8 | -------------------------------------------------------------------------------- /tests/WorkerTests.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/fdbserver/worker/ 8 | -------------------------------------------------------------------------------- /tests/rare/TransactionCost.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'TransactionCostTest' 3 | 4 | [[test.workload]] 5 | testName = 'TransactionCost' 6 | iterations = 1000 7 | -------------------------------------------------------------------------------- /packaging/multiversion/server/prerm: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | update-alternatives --remove fdbserver /usr/lib/foundationdb-@FDB_VERSION@@FDB_BUILDTIME_STRING@/sbin/fdbserver 4 | -------------------------------------------------------------------------------- /tests/BackupContainers.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/backup/containers/ 8 | -------------------------------------------------------------------------------- /tests/BandwidthThrottle.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/backup/throttling 8 | -------------------------------------------------------------------------------- /tests/LayerStatusMerge.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/status/json/merging 8 | -------------------------------------------------------------------------------- /tests/RedwoodPerfTests.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=:/redwood/performance/ 8 | -------------------------------------------------------------------------------- /tests/negative/ResolverIgnoreReads.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = "ResolverIgnoreReads" 3 | 4 | [[test.workload]] 5 | testName = "ResolverBug" 6 | ignoreReadSetProbability = 0.01 7 | -------------------------------------------------------------------------------- /tests/s3VersionHeaders.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/backup/s3/v4headers 8 | -------------------------------------------------------------------------------- /packaging/rpm/scripts/postclients.sh: -------------------------------------------------------------------------------- 1 | # older versions of this package failed to correctly clean up their .pyc files, which is "very bad" 2 | rm -rf /usr/lib64/python2.6/fdb 3 | exit 0 4 | -------------------------------------------------------------------------------- /tests/CTestCustom.ctest.cmake: -------------------------------------------------------------------------------- 1 | set(CTEST_CUSTOM_PRE_TEST ${CTEST_CUSTOM_PRE_TEST} "@Python3_EXECUTABLE@ @PROJECT_SOURCE_DIR@/tests/TestRunner/TestDirectory.py @PROJECT_BINARY_DIR@") 2 | -------------------------------------------------------------------------------- /tests/RedwoodCorrectness.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/redwood/correctness/ 8 | -------------------------------------------------------------------------------- /tests/RedwoodPerfSet.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=:/redwood/performance/set 8 | -------------------------------------------------------------------------------- /tests/StorageServerInterface.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/StorageServerInterface/ -------------------------------------------------------------------------------- /tests/negative/ResolverIgnoreWrites.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = "ResolverIgnoreReads" 3 | 4 | [[test.workload]] 5 | testName = "ResolverBug" 6 | ignoreWriteSetProbability = 0.01 7 | -------------------------------------------------------------------------------- /tests/rare/HighContentionPrefixAllocator.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'HighContentionPrefixAllocator' 3 | 4 | [[test.workload]] 5 | testName = 'HighContentionPrefixAllocator' 6 | -------------------------------------------------------------------------------- /contrib/TestHarness2/test_harness/__init__.py: -------------------------------------------------------------------------------- 1 | # Currently this file is left intentionally empty. It's main job for now is to indicate that this directory 2 | # should be used as a module. 3 | -------------------------------------------------------------------------------- /tests/RedwoodPerfRandomRangeScans.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | testName=UnitTests 3 | startDelay=0 4 | useDB=false 5 | maxTestCases=0 6 | testsMatching=!/redwood/performance/randomRangeScans 7 | -------------------------------------------------------------------------------- /tests/fast/TimeKeeperCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'TimeKeeperCorrectness' 3 | 4 | [[test.workload]] 5 | testName = 'TimeKeeperCorrectness' 6 | testDuration = 40.0 7 | -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # clang-format the entire codebase 2 | df90cc89de67ea4748c8cadd18e6fc4ce7fda12e 3 | 2c788c233db56ccec4ed90d7da31887487b9f3b7 4 | 69508b980f3cc5aabea6322f292e53b07bb27544 5 | -------------------------------------------------------------------------------- /bindings/go/src/fdb/fdb_windows.go: -------------------------------------------------------------------------------- 1 | package fdb 2 | 3 | //#cgo CFLAGS: -I"C:/Program Files/foundationdb/include" 4 | //#cgo LDFLAGS: -L"C:/Program Files/foundationdb/bin" -lfdb_c 5 | import "C" 6 | -------------------------------------------------------------------------------- /documentation/sphinx/requirements.txt: -------------------------------------------------------------------------------- 1 | --index-url https://pypi.python.org/simple 2 | setuptools==65.5.1 3 | sphinx==5.1.1 4 | sphinx-bootstrap-theme==0.8.1 5 | docutils==0.19 6 | Jinja2==3.1.2 7 | -------------------------------------------------------------------------------- /tests/ClusterControllerTests.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/fdbserver/clustercontroller/ 8 | -------------------------------------------------------------------------------- /tests/RedwoodCorrectnessBTree.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/redwood/correctness/btree 8 | -------------------------------------------------------------------------------- /tests/RedwoodCorrectnessPager.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=:/redwood/correctness/pager 8 | -------------------------------------------------------------------------------- /tests/RedwoodCorrectnessUnits.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/redwood/correctness/unit/ 8 | -------------------------------------------------------------------------------- /tests/fast/ReadHotDetectionCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'ReadHotDetection' 3 | 4 | [[test.workload]] 5 | testName = 'ReadHotDetection' 6 | transactionsPerSecond = 1000 7 | -------------------------------------------------------------------------------- /bindings/go/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/apple/foundationdb/bindings/go 2 | 3 | // The FoundationDB go bindings currently have no external golang dependencies outside of 4 | // the go standard library. 5 | -------------------------------------------------------------------------------- /documentation/sphinx/source/images/FDB_multiple_txn_swimlane_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/FDB_multiple_txn_swimlane_diagram.png -------------------------------------------------------------------------------- /documentation/sphinx/source/redwood.rst: -------------------------------------------------------------------------------- 1 | .. _redwood-storage-engine: 2 | 3 | ###################### 4 | Redwood Storage Engine 5 | ###################### 6 | 7 | .. include:: guide-common.rst.inc 8 | -------------------------------------------------------------------------------- /tests/SpecificUnitTest.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | runSetup=false 5 | 6 | testName=UnitTests 7 | maxTestCases=0 8 | testsMatching=/status/json/builder 9 | -------------------------------------------------------------------------------- /tests/TraceEventMetrics.txt: -------------------------------------------------------------------------------- 1 | testTitle=TraceEventMetrics 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=/fdbserver/metrics/TraceEvents 8 | -------------------------------------------------------------------------------- /tests/fast/MutationLogReaderCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'MutationLogReaderCorrectness' 3 | useDB = true 4 | 5 | [[test.workload]] 6 | testName = 'MutationLogReaderCorrectness' 7 | -------------------------------------------------------------------------------- /documentation/sphinx/source/images/serialized_mutation_metadata_format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/denoland/foundationdb/main/documentation/sphinx/source/images/serialized_mutation_metadata_format.png -------------------------------------------------------------------------------- /documentation/tutorial/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(TUTORIAL_SRCS tutorial.actor.cpp) 2 | 3 | add_flow_target(EXECUTABLE NAME tutorial SRCS "${TUTORIAL_SRCS}") 4 | target_link_libraries(tutorial PUBLIC fdbclient) 5 | -------------------------------------------------------------------------------- /tests/fast/RESTUtilsUnit.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RESTUtilsTest' 3 | startDelay = 0 4 | useDB = false 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | testsMatching = '/RESTUtils' -------------------------------------------------------------------------------- /tests/fast/WriteDuringReadClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | StderrSeverity = 30 3 | 4 | [[test]] 5 | testTitle = 'WriteDuringReadTest' 6 | 7 | [[test.workload]] 8 | testName = 'WriteDuringRead' 9 | -------------------------------------------------------------------------------- /tests/performance-fs.txt: -------------------------------------------------------------------------------- 1 | testTitle=PerformanceProbeFS 2 | testName=Performance 3 | probeWorkload=FileSystem 4 | fileCount=100000 5 | discardEdgeMeasurements=true 6 | testDuration=5 7 | -------------------------------------------------------------------------------- /tests/status/separate_no_coordinators.txt: -------------------------------------------------------------------------------- 1 | Using cluster file `tcf/separatecoordinator.cluster'. 2 | 3 | Could not communicate with a quorum of coordination servers: 4 | 127.0.0.1:4991 (unreachable) 5 | -------------------------------------------------------------------------------- /contrib/folly_memcpy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(UNIX AND NOT APPLE) 2 | add_library(folly_memcpy STATIC folly_memcpy.S) 3 | target_include_directories(folly_memcpy PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") 4 | endif() 5 | -------------------------------------------------------------------------------- /tests/RedwoodPerfSequentialInsert.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=:/redwood/performance/sequentialInsert 8 | -------------------------------------------------------------------------------- /tests/StorageMetricsSampleTests.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | testName=UnitTests 5 | maxTestCases=0 6 | testsMatching=/fdbserver/StorageMetricSample/readHotDetect/ 7 | -------------------------------------------------------------------------------- /tests/fast/ProtocolVersion.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | startIncompatibleProcess = true 3 | 4 | [[test]] 5 | testTitle = 'ProtocolVersionTest' 6 | 7 | [[test.workload]] 8 | testName = 'ProtocolVersion' 9 | -------------------------------------------------------------------------------- /cmake/user-config.jam.cmake: -------------------------------------------------------------------------------- 1 | using @BOOST_TOOLSET@ : : @BOOST_CXX_COMPILER@ : @BOOST_ADDITIONAL_COMPILE_OPTIONS@ ; 2 | using zstd : 1.5.2 : /@CMAKE_BINARY_DIR@/zstd/lib /@CMAKE_BINARY_DIR@/lib ; 3 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/valgrindTest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | OLDBINDIR="${OLDBINDIR:-/app/deploy/global_data/oldBinaries}" 3 | python3 -m test_harness.app -s ${JOSHUA_SEED} --old-binaries-path ${OLDBINDIR} --use-valgrind 4 | -------------------------------------------------------------------------------- /tests/ConsistencyCheck.txt: -------------------------------------------------------------------------------- 1 | testTitle=ConsistencyCheck 2 | testName=ConsistencyCheck 3 | performQuiescentChecks=true 4 | quiescentWaitTimeout=600.0 5 | distributed=true 6 | shardSampleFactor=1 7 | -------------------------------------------------------------------------------- /tests/PerfUnitTests.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'PerfUnitTests' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | #maxTestCases = 1 9 | testsMatching = '#' -------------------------------------------------------------------------------- /tests/RedwoodPerfPrefixCompression.txt: -------------------------------------------------------------------------------- 1 | testTitle=UnitTests 2 | startDelay=0 3 | useDB=false 4 | 5 | testName=UnitTests 6 | maxTestCases=0 7 | testsMatching=:/redwood/performance/prefixSizeComparison 8 | -------------------------------------------------------------------------------- /tests/fast/TaskBucketCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'TaskBucketCorrectness' 3 | 4 | [[test.workload]] 5 | testName = 'TaskBucketCorrectness' 6 | chained = false 7 | subtaskCount = 20 8 | -------------------------------------------------------------------------------- /tests/rare/RandomReadWriteTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RandomReadWriteTest' 3 | 4 | [[test.workload]] 5 | testName = 'ReadWrite' 6 | testDuration = 30.0 7 | transactionsPerSecond = 1000.0 8 | -------------------------------------------------------------------------------- /tests/fast/GetMappedRange.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'GetMappedRange' 3 | useDB = true 4 | 5 | [[test.workload]] 6 | testName = 'GetMappedRange' 7 | checkStorageQueueSeconds=300 8 | queueMaxLength=1000 -------------------------------------------------------------------------------- /tests/rare/AllSimUnitTests.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'UnitTests' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | #maxTestCases = 1 9 | testsMatching = '/' -------------------------------------------------------------------------------- /tests/rare/DataDistributionMetrics.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | 4 | [[test]] 5 | testTitle = 'DataDistributionMetricsTest' 6 | 7 | [[test.workload]] 8 | testName = 'DataDistributionMetrics' 9 | -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13/StorefrontTestRestart-2.txt: -------------------------------------------------------------------------------- 1 | testTitle=StorefrontTest 2 | runSetup=false 3 | testName=Storefront 4 | actorsPerClient=20 5 | transactionsPerSecond=200 6 | itemCount=20000 7 | maxOrderSize=4 8 | -------------------------------------------------------------------------------- /contrib/tsan.suppressions: -------------------------------------------------------------------------------- 1 | # ThreadSanitizer suppressions file for FDB 2 | # https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions 3 | 4 | # FDB signal handler is not async-signal safe 5 | signal:crashHandler 6 | -------------------------------------------------------------------------------- /tests/fast/CompressionUtilsUnit.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CompressionUtilsTest' 3 | startDelay = 0 4 | useDB = false 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | testsMatching = '/CompressionUtils' -------------------------------------------------------------------------------- /flow/actorcompiler/actorcompiler.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net5.0 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/restarting/from_5.0.0_until_6.3.0/StorefrontTestRestart-2.txt: -------------------------------------------------------------------------------- 1 | testTitle=StorefrontTest 2 | runSetup=false 3 | testName=Storefront 4 | actorsPerClient=20 5 | transactionsPerSecond=200 6 | itemCount=20000 7 | maxOrderSize=4 8 | -------------------------------------------------------------------------------- /tests/slow/FastTriggeredWatches.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'FastTriggeredWatchesTest' 3 | connectionFailuresDisableDuration = 100000 4 | timeout = 1500 5 | 6 | [[test.workload]] 7 | testName = 'FastTriggeredWatches' 8 | -------------------------------------------------------------------------------- /tests/FileSystem.txt: -------------------------------------------------------------------------------- 1 | testTitle=FileSystemSimTest 2 | testName=FileSystem 3 | discardEdgeMeasurements=false 4 | fileCount=100000 5 | ;operationName=deletionQuery 6 | ;performingWrites=true 7 | ;writeActorCount=1 8 | -------------------------------------------------------------------------------- /tests/fast/Watches.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'WatchesTest' 3 | 4 | [[test.workload]] 5 | testName = 'Watches' 6 | 7 | [[test.workload]] 8 | testName = 'WatchesSameKeyCorrectness' 9 | numWatches = 3 10 | -------------------------------------------------------------------------------- /tests/BlobManagerUnit.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'BlobManagerUnit' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 0 9 | testsMatching = /blobmanager/ 10 | -------------------------------------------------------------------------------- /tests/fast/SpecialKeySpaceRobustness.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | tenantModes = ['optional', 'required'] 3 | 4 | [[test]] 5 | testTitle = 'SpecialKeySpaceRobustnessTest' 6 | 7 | [[test.workload]] 8 | testName = 'SpecialKeySpaceRobustness' 9 | -------------------------------------------------------------------------------- /bindings/c/test/fdb_c90_test.c: -------------------------------------------------------------------------------- 1 | #define FDB_API_VERSION 720 2 | #include 3 | 4 | int main(int argc, char* argv[]) { 5 | (void)argc; 6 | (void)argv; 7 | fdb_select_api_version(FDB_API_VERSION); 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /bindings/flow/tester/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(TEST_SRCS 2 | DirectoryTester.actor.cpp 3 | Tester.actor.cpp 4 | Tester.actor.h) 5 | add_flow_target(EXECUTABLE NAME fdb_flow_tester SRCS ${TEST_SRCS}) 6 | target_link_libraries(fdb_flow_tester fdb_flow) 7 | -------------------------------------------------------------------------------- /tests/rare/ConflictRangeCheck.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | 4 | [[test]] 5 | testTitle = 'RandomReadWriteTest' 6 | connectionFailuresDisableDuration = 100000 7 | 8 | [[test.workload]] 9 | testName = 'ConflictRange' 10 | -------------------------------------------------------------------------------- /tests/rare/StatusBuilderPerf.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'StatusBuilderPerf' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 1 9 | testsMatching = 'Lstatus/json/builderPerf' -------------------------------------------------------------------------------- /cmake/foundationdb-client.pc.in: -------------------------------------------------------------------------------- 1 | libdir=/@LIB_DIR@ 2 | includedir=/@INCLUDE_DIR@ 3 | 4 | Name: foundationdb-client 5 | Description: FoundationDB c client 6 | Version: @FDB_VERSION@ 7 | 8 | Libs: -L${libdir} -lfdb_c 9 | Cflags: -I${includedir} 10 | -------------------------------------------------------------------------------- /tests/fast/SimpleAtomicAdd.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'SimpleAtomicAdd' 3 | 4 | [[test.workload]] 5 | testName = 'SimpleAtomicAdd' 6 | initialize = true 7 | initialValue = 15 8 | iterations = 200 9 | addValue = 10 10 | -------------------------------------------------------------------------------- /contrib/Implib.so/.gitignore: -------------------------------------------------------------------------------- 1 | # Bytecode 2 | __pycache__/ 3 | *.py[cod] 4 | *.swp 5 | .*.swp 6 | 7 | # Temp files 8 | *.tramp.S 9 | *.init.c 10 | *.so* 11 | tests/*/a.out* 12 | tests/*/*.log 13 | 14 | # Coverage 15 | *.coverage 16 | *coverage.xml 17 | -------------------------------------------------------------------------------- /tests/DiskDurability.txt: -------------------------------------------------------------------------------- 1 | testTitle=DiskDurability 2 | useDB=false 3 | timeout=360000 4 | 5 | testName=DiskDurability 6 | pagesPerWrite=1 7 | writers=64 8 | fileName=deleteme 9 | filePages=1000000 10 | testDuration=360000 11 | -------------------------------------------------------------------------------- /contrib/lsan.suppressions: -------------------------------------------------------------------------------- 1 | # LeakSanitizer suppressions file for FDB 2 | # https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer 3 | 4 | # Not all incoming connections are cleanly shut down in client API tests 5 | leak:ConnectionReaderActorState 6 | -------------------------------------------------------------------------------- /tests/fast/VersionStamp.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'VersionStamp' 3 | 4 | [[test.workload]] 5 | testName = 'VersionStamp' 6 | soleOwnerOfMetadataVersionKey = true 7 | 8 | [[test.workload]] 9 | testName = 'LockDatabaseFrequently' 10 | -------------------------------------------------------------------------------- /tests/noSim/ShardedRocksDBTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'UnitTests' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 10 9 | testsMatching = 'noSim/ShardedRocksDB/' 10 | -------------------------------------------------------------------------------- /tests/rare/RedwoodCorrectnessBTree.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'UnitTests' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 1 9 | testsMatching = 'Lredwood/correctness/btree' 10 | -------------------------------------------------------------------------------- /tests/slow/StorefrontTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'StorefrontTest' 3 | 4 | [[test.workload]] 5 | testName = 'Storefront' 6 | actorsPerClient = 20 7 | transactionsPerSecond = 200 8 | itemCount = 20000 9 | maxOrderSize = 4 10 | -------------------------------------------------------------------------------- /tests/fast/EncryptKeyProxyTest.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | testClass = "Encryption" 3 | encryptModes = ['domain_aware', 'cluster_aware'] 4 | 5 | [[test]] 6 | testTitle = 'EncryptKeyProxy' 7 | 8 | [[test.workload]] 9 | testName = 'EncryptKeyProxyTest' 10 | -------------------------------------------------------------------------------- /tests/rare/InventoryTestHeavyWrites.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'InventoryTestHeavyWrites' 3 | 4 | [[test.workload]] 5 | testName = 'InventoryTest' 6 | transactionsPerSecond = 10000.0 7 | testDuration = 10.0 8 | fractionWriteTransactions = 0.8 9 | -------------------------------------------------------------------------------- /tests/status/separate_1_of_3_coordinators_remain.txt: -------------------------------------------------------------------------------- 1 | Using cluster file `/home/ajb/fdb.cluster'. 2 | 3 | Could not communicate with a quorum of coordination servers: 4 | 10.0.3.1:9191 (unreachable) 5 | 10.0.3.1:9192 (unreachable) 6 | 10.0.3.1:9193 (reachable) 7 | -------------------------------------------------------------------------------- /tests/BGServerCommonUnit.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'BlobGranuleServerCommonUnit' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 0 9 | testsMatching = /blobgranule/server/common/ 10 | -------------------------------------------------------------------------------- /tests/authorization/requirements.txt: -------------------------------------------------------------------------------- 1 | attrs==22.1.0 2 | Authlib==1.0.1 3 | cffi==1.15.1 4 | cryptography==39.0.1 5 | iniconfig==1.1.1 6 | packaging==21.3 7 | pluggy==1.0.0 8 | py==1.11.0 9 | pycparser==2.21 10 | pyparsing==3.0.9 11 | pytest==7.1.2 12 | tomli==2.0.1 13 | -------------------------------------------------------------------------------- /tests/status/separate_not_enough_servers.txt: -------------------------------------------------------------------------------- 1 | Using cluster file `tcf/separatecoordinator.cluster'. 2 | 3 | Recruiting new transaction servers. 4 | 5 | Need at least 3 log servers, 1 commit proxies, 1 grv proxies and 1 resolvers. 6 | 7 | Have 1 processes on 1 machines. 8 | -------------------------------------------------------------------------------- /bindings/python/README.rst: -------------------------------------------------------------------------------- 1 | Complete documentation of the FoundationDB Python API can be found at https://apple.github.io/foundationdb/api-python.html. 2 | 3 | These bindings require the FoundationDB client. The client can be obtained from https://www.foundationdb.org/download/. 4 | -------------------------------------------------------------------------------- /packaging/rpm/scripts/preclients.sh: -------------------------------------------------------------------------------- 1 | getent group foundationdb >/dev/null || groupadd -r foundationdb >/dev/null 2 | getent passwd foundationdb >/dev/null || useradd -c "FoundationDB" -g foundationdb -s /bin/false -r -d /var/lib/foundationdb foundationdb >/dev/null 3 | exit 0 4 | -------------------------------------------------------------------------------- /tests/fast/BlobCipherUnitTest.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | enable_configurable_encryption = true 3 | 4 | [[test]] 5 | testTitle = 'BlobCipherUnitTest' 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | testsMatching = '/blobCipher' -------------------------------------------------------------------------------- /tests/latency.txt: -------------------------------------------------------------------------------- 1 | testTitle=CycleTest 2 | testName=Cycle 3 | transactionsPerSecond=2500.0 4 | testDuration=10.0 5 | expectedRate=0.8 6 | nodeCount=50000 7 | 8 | testName=Ping 9 | testDuration=10.0 10 | logging=true 11 | pingWorkers=true 12 | -------------------------------------------------------------------------------- /tests/noSim/KeyValueStoreRocksDBTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'UnitTests' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 10 9 | testsMatching = 'noSim/fdbserver/KeyValueStoreRocksDB/' 10 | -------------------------------------------------------------------------------- /tests/rare/TLogVersionMessagesOverheadFactor.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'TLogVersionMessagesOverheadFactor' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | testsMatching = 'Lfdbserver/tlogserver/VersionMessagesOverheadFactor' -------------------------------------------------------------------------------- /versions.target.cmake: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ${FDB_VERSION} 5 | ${FDB_MAJOR}.${FDB_MINOR} 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/rare/ConflictRangeRYOWCheck.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | 4 | [[test]] 5 | testTitle = 'RandomReadWriteTest' 6 | connectionFailuresDisableDuration = 100000 7 | 8 | [[test.workload]] 9 | testName = 'ConflictRange' 10 | testReadYourWrites = true 11 | -------------------------------------------------------------------------------- /tests/BlobGranuleFileUnit.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | enable_rest_kms_communication = true 3 | 4 | [[test]] 5 | testTitle = 'BlobGranuleFileUnit' 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | testsMatching = '/blobgranule/files/' 12 | -------------------------------------------------------------------------------- /tests/fast/ConfigureLocked.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | configureLocked = true 3 | 4 | [[test]] 5 | testTitle = 'ConfigureLocked' 6 | runConsistencyCheck = false 7 | clearAfterTest = false 8 | 9 | [[test.workload]] 10 | testName = 'LockDatabase' 11 | onlyCheckLocked = true 12 | -------------------------------------------------------------------------------- /tests/fast/LongStackWriteDuringRead.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | StderrSeverity = 30 3 | 4 | [[test]] 5 | testTitle = 'WriteDuringReadTest' 6 | 7 | [[test.workload]] 8 | testName = 'WriteDuringRead' 9 | numOps = 10000 10 | rarelyCommit = true 11 | testDuration = 30 12 | -------------------------------------------------------------------------------- /tests/noSim/RandomUnitTests.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | rocksdb_empty_range_check=false 3 | 4 | [[test]] 5 | testTitle = 'UnitTests' 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | maxTestCases = 1 12 | testsMatching = 'noSim/' 13 | -------------------------------------------------------------------------------- /fdbrpc/libcoroutine/Base.h: -------------------------------------------------------------------------------- 1 | #ifndef IOBASE_DEFINED 2 | #define IOBASE_DEFINED 1 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /tests/RandomRangeRead.txt: -------------------------------------------------------------------------------- 1 | testTitle=RandomReadWriteTest 2 | testName=ReadWrite 3 | testDuration=10.0 4 | transactionsPerSecond=2500 5 | writesPerTransactionA=0 6 | readsPerTransactionA=10 7 | rangeReads=true 8 | alpha=0 9 | nodeCount=50000 10 | valueBytes=16 11 | discardEdgeMeasurements=false 12 | -------------------------------------------------------------------------------- /tests/TestRunner/fdb_version.py.cmake: -------------------------------------------------------------------------------- 1 | CURRENT_VERSION = "${FDB_CURRENT_VERSION}" 2 | FUTURE_VERSION = "${FDB_FUTURE_VERSION}" 3 | PREV_RELEASE_VERSION = "${FDB_PREV_RELEASE_VERSION}" 4 | PREV2_RELEASE_VERSION = "${FDB_PREV2_RELEASE_VERSION}" 5 | PREV3_RELEASE_VERSION = "${FDB_PREV3_RELEASE_VERSION}" 6 | -------------------------------------------------------------------------------- /contrib/pkg_tester/requirements.txt: -------------------------------------------------------------------------------- 1 | attrs==21.2.0 2 | colored==1.4.2 3 | importlib-metadata==4.0.1 4 | iniconfig==1.1.1 5 | packaging==20.9 6 | pluggy==0.13.1 7 | py==1.10.0 8 | pyparsing==2.4.7 9 | pytest==6.2.4 10 | syrupy==1.2.3 11 | toml==0.10.2 12 | typing-extensions==3.10.0.0 13 | zipp==3.4.1 14 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/SnapTestRestart-2.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=4,5 2 | 3 | buggify=off 4 | 5 | ; verify all keys are even numbered 6 | testTitle=SnapTestVerify 7 | testName=SnapTest 8 | numSnaps=1 9 | maxSnapDelay=3.0 10 | testID=3 11 | enableDD=true 12 | -------------------------------------------------------------------------------- /contrib/debug_determinism/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(debug_determinism STATIC debug_determinism.cpp) 2 | 3 | # So that we can link to libfdb_c.so. Not strictly necessary but convenient for use with our 4 | # TRACE_PC_GUARD_INSTRUMENTATION_LIB cmake option 5 | target_compile_options(debug_determinism PRIVATE -fPIC) -------------------------------------------------------------------------------- /tests/RandomRead.txt: -------------------------------------------------------------------------------- 1 | testTitle=RandomReadWriteTest 2 | testName=ReadWrite 3 | testDuration=10.0 4 | transactionsPerSecond=2500 5 | writesPerTransactionA=0 6 | readsPerTransactionA=10 7 | alpha=0 8 | nodeCount=50000 9 | valueBytes=16 10 | discardEdgeMeasurements=false 11 | -------------------------------------------------------------------------------- /tests/fast/RESTKmsConnectorUnit.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | rest_kms_connector_remove_trailing_newline = true 3 | 4 | [[test]] 5 | testTitle = 'RESTKmsConnectorTest' 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | testsMatching = '/KmsConnector/REST/' 12 | -------------------------------------------------------------------------------- /tests/fast/TenantEntryCache.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['disabled', 'optional'] 4 | 5 | [[test]] 6 | testTitle = 'TenantEntryCacheTest' 7 | clearAfterTest = false 8 | 9 | [[test.workload]] 10 | testName = 'TenantEntryCache' 11 | maxTenants = 100 12 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/SnapTestSimpleRestart-2.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=4,5 2 | 3 | buggify=off 4 | 5 | ; verify all keys are even numbered 6 | testTitle=SnapSimpleVerify 7 | testName=SnapTest 8 | numSnaps=1 9 | maxSnapDelay=3.0 10 | testID=3 11 | enableDD=true 12 | -------------------------------------------------------------------------------- /fdbkubernetesmonitor/api/.testdata/test_env.sh: -------------------------------------------------------------------------------- 1 | export FDB_PUBLIC_IP=127.0.0.1 2 | export FDB_POD_IP=127.0.0.1 3 | export FDB_ZONE_ID=localhost 4 | export FDB_MACHINE_ID=localhost 5 | export FDB_INSTANCE_ID=storage-1 6 | export KUBERNETES_SERVICE_HOST=kubernetes.docker.internal 7 | export KUBERNETES_SERVICE_PORT=6443 8 | -------------------------------------------------------------------------------- /tests/fast/FuzzApiCorrectnessClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | StderrSeverity = 30 3 | allowDefaultTenant = false 4 | tenantModes = ['optional', 'required'] 5 | 6 | [[test]] 7 | testTitle = 'FuzzApiCorrectness' 8 | 9 | [[test.workload]] 10 | testName = 'FuzzApiCorrectness' 11 | testDuration = 30.0 12 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/psf/black 3 | rev: 2018e667a6a36ee3fbfa8041cd36512f92f60d49 # frozen: 22.8.0 4 | hooks: 5 | - id: black 6 | - repo: https://github.com/pycqa/flake8 7 | rev: f8e1b317742036ff11ff86356fd2b68147e169f7 # frozen: 5.0.4 8 | hooks: 9 | - id: flake8 -------------------------------------------------------------------------------- /tests/fast/AutomaticIdempotency.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'AutomaticIdempotency' 3 | 4 | [[test.workload]] 5 | testName = 'AutomaticIdempotencyCorrectness' 6 | minMinAgeSeconds = 15 7 | pollingInterval = 5.0 8 | 9 | [[test.workload]] 10 | testName='Attrition' 11 | testDuration=10.0 12 | -------------------------------------------------------------------------------- /tests/rare/CycleWithKills.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CycleTestWithKills' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 2500.0 7 | testDuration = 30.0 8 | expectedRate = 0 9 | 10 | [[test.workload]] 11 | testName = 'Attrition' 12 | testDuration = 30.0 13 | -------------------------------------------------------------------------------- /documentation/sphinx/source/contents.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | Site Map 4 | ======== 5 | 6 | The full contents of this documentation site are listed below. 7 | If you are having trouble finding something in particular, try the search box in the navbar. 8 | 9 | .. toctree:: 10 | :glob: 11 | :includehidden: 12 | 13 | index -------------------------------------------------------------------------------- /tests/ReadAbsent.txt: -------------------------------------------------------------------------------- 1 | testTitle=ReadAbsentTest 2 | testName=ReadWrite 3 | testDuration=10.0 4 | transactionsPerSecond=2500 5 | writesPerTransactionA=0 6 | readsPerTransactionA=10 7 | alpha=0 8 | nodeCount=50000 9 | valueBytes=16 10 | discardEdgeMeasurements=false 11 | absentFrac=1.0 12 | -------------------------------------------------------------------------------- /tests/fast/LocalRatekeeper.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'LocalRateKeeper' 3 | 4 | [[test.workload]] 5 | testName = 'LocalRatekeeper' 6 | startAfter = 60.0 7 | blockWritesFor = 80.0 8 | 9 | [[test.workload]] 10 | testName = 'Cycle' 11 | transactionsPerSecond = 25 12 | testDuration = 200 13 | -------------------------------------------------------------------------------- /tests/fast/SpecialKeySpaceCorrectness.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | tenantModes = ['optional', 'required'] 3 | 4 | [[test]] 5 | testTitle = 'SpecialKeySpaceCorrectnessTest' 6 | 7 | [[test.workload]] 8 | testName = 'SpecialKeySpaceCorrectness' 9 | testDuration = 30.0 10 | valueBytes = 16 11 | keyBytes = 16 12 | -------------------------------------------------------------------------------- /tests/rare/ThroughputQuota.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle='ThroughputQuotaTest' 3 | 4 | [[test.workload]] 5 | testName='ThroughputQuota' 6 | transactionTag='a' 7 | totalQuota=16384 8 | 9 | [[test.workload]] 10 | testName = 'Cycle' 11 | transactionsPerSecond = 250.0 12 | testDuration = 30.0 13 | expectedRate = 0 14 | -------------------------------------------------------------------------------- /tests/restarting/from_5.0.0_until_6.3.0/StorefrontTestRestart-1.txt: -------------------------------------------------------------------------------- 1 | testTitle=StorefrontTest 2 | clearAfterTest=false 3 | testName=Storefront 4 | actorsPerClient=20 5 | transactionsPerSecond=200 6 | itemCount=20000 7 | maxOrderSize=4 8 | testName=SaveAndKill 9 | restartInfoLocation=simfdb/restartInfo.ini 10 | testDuration=10.0 11 | -------------------------------------------------------------------------------- /tests/ReadHalfAbsent.txt: -------------------------------------------------------------------------------- 1 | testTitle=ReadHalfAbsentTest 2 | testName=ReadWrite 3 | testDuration=10.0 4 | transactionsPerSecond=2500 5 | writesPerTransactionA=0 6 | readsPerTransactionA=10 7 | alpha=0 8 | nodeCount=50000 9 | valueBytes=16 10 | discardEdgeMeasurements=false 11 | absentFrac=0.5 12 | -------------------------------------------------------------------------------- /tests/negative/ResolverIgnoreTooOld.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | enable_version_vector = false 3 | max_read_transaction_life_versions = 1000000 4 | max_write_transaction_life_versions = 1000000 5 | 6 | [[test]] 7 | testTitle = "ResolverIgnoreTooOld" 8 | 9 | [[test.workload]] 10 | testName = "ResolverBug" 11 | ignoreTooOldProbability = 0.2 12 | -------------------------------------------------------------------------------- /tests/slow/CycleRollbackPlain.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'UncloggedRollbackCycleTest' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 5000.0 7 | testDuration = 30.0 8 | expectedRate = 0.05 9 | 10 | [[test.workload]] 11 | testName = 'Rollback' 12 | testDuration = 30.0 13 | -------------------------------------------------------------------------------- /fdbservice/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(FDBSERVICE_SRCS FDBService.cpp ServiceBase.cpp) 2 | add_executable(fdbmonitor ${FDBSERVICE_SRCS}) 3 | 4 | get_target_property(fdbclient_target_includes fdbclient INCLUDE_DIRECTORIES) 5 | target_link_libraries(fdbmonitor PUBLIC SimpleOpt) 6 | target_include_directories(fdbmonitor PUBLIC "${fdbclient_target_includes}") 7 | -------------------------------------------------------------------------------- /contrib/fmt-8.1.1/support/cmake/fmt.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@libdir_for_pc_file@ 4 | includedir=@includedir_for_pc_file@ 5 | 6 | Name: fmt 7 | Description: A modern formatting library 8 | Version: @FMT_VERSION@ 9 | Libs: -L${libdir} -l@FMT_LIB_NAME@ 10 | Cflags: -I${includedir} 11 | 12 | -------------------------------------------------------------------------------- /tests/AsyncFileWrite.txt: -------------------------------------------------------------------------------- 1 | testTitle=AsyncFileWriteTest 2 | runSetup=true 3 | clearAfterTest=false 4 | useDB=false 5 | 6 | testName=AsyncFileWrite 7 | testDuration=10.0 8 | numParallelWrites=200 9 | writeSize=16384 10 | ;fileName=/home/ajb/testfile 11 | fileSize=10002432 12 | unbufferedIO=true 13 | sequential=false 14 | -------------------------------------------------------------------------------- /tests/KVStoreTestWrite.txt: -------------------------------------------------------------------------------- 1 | testTitle=RandomWriteSaturation 2 | testName=KVStoreTest 3 | testDuration=20.0 4 | saturation=true 5 | operationsPerSecond=10000 6 | commitFraction=0.0001 7 | setFraction=1.0 8 | nodeCount=20000000 9 | keyBytes=16 10 | valueBytes=96 11 | filename=bttest 12 | setup=false 13 | clear=false 14 | count=false 15 | useDB=false 16 | -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13/StorefrontTestRestart-1.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=3 2 | testTitle=StorefrontTest 3 | clearAfterTest=false 4 | testName=Storefront 5 | actorsPerClient=20 6 | transactionsPerSecond=200 7 | itemCount=20000 8 | maxOrderSize=4 9 | testName=SaveAndKill 10 | restartInfoLocation=simfdb/restartInfo.ini 11 | testDuration=10.0 12 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/SnapTestAttrition-2.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=4,5 2 | 3 | buggify=off 4 | 5 | ; verify all keys are even numbered 6 | testTitle=SnapTestVerify 7 | testName=SnapTest 8 | numSnaps=1 9 | maxSnapDelay=3.0 10 | testID=3 11 | restartInfoLocation=simfdb/restartInfo.ini 12 | enableDD=true 13 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/SnapCycleRestart-2.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=4,5 2 | buggify=off 3 | 4 | testTitle=SnapCycleRestore 5 | runSetup=false 6 | 7 | ;Post snap restore test 8 | testName=Cycle 9 | transactionsPerSecond=2500.0 10 | nodeCount=2500 11 | testDuration=10.0 12 | expectedRate=0 13 | enableDD=true 14 | -------------------------------------------------------------------------------- /contrib/fmt-8.1.1/support/cmake/FindSetEnv.cmake: -------------------------------------------------------------------------------- 1 | # A CMake script to find SetEnv.cmd. 2 | 3 | find_program(WINSDK_SETENV NAMES SetEnv.cmd 4 | PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]/bin") 5 | if (WINSDK_SETENV AND PRINT_PATH) 6 | execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${WINSDK_SETENV}") 7 | endif () 8 | -------------------------------------------------------------------------------- /tests/KVStoreTestRead.txt: -------------------------------------------------------------------------------- 1 | testTitle=RandomReadSaturation 2 | useDB=false 3 | 4 | testName=KVStoreTest 5 | testDuration=60.0 6 | saturation=true 7 | commitFraction=0 8 | setFraction=0 9 | nodeCount=20000000 10 | keyBytes=16 11 | valueBytes=96 12 | filename=bttest 13 | setup=false 14 | clear=false 15 | count=false 16 | -------------------------------------------------------------------------------- /tests/rare/ConfigDBUnitTest.toml: -------------------------------------------------------------------------------- 1 | # This test can't run as part of RandomUnitTests.toml, so run it less frequently 2 | testPriority = '10' 3 | 4 | [[test]] 5 | testTitle = "ConfigDBUnitTest" 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | maxTestCases = 1 12 | testsMatching = '/fdbserver/ConfigDB/' 13 | -------------------------------------------------------------------------------- /tests/AsyncFileCorrectness.txt: -------------------------------------------------------------------------------- 1 | testTitle=AsyncFileCorrectnessTest 2 | useDB=false 3 | runSetup=true 4 | clearAfterTest=false 5 | 6 | testName=AsyncFileCorrectness 7 | testDuration=10.0 8 | unbufferedIO=true 9 | ;fileName=/home/ajb/testfilecorrectness 10 | targetFileSize=327680 11 | maxOperationSize=8192 12 | numSimultaneousOperations=10 13 | -------------------------------------------------------------------------------- /tests/rare/Throttling.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle='ThrottlingTest' 3 | [[test.workload]] 4 | testName='Throttling' 5 | testDuration = 60.0 6 | actorsPerClient=10 7 | readsPerTransaction=10 8 | writesPerTransaction=10 9 | throttlingMultiplier=0.5 10 | maxBurst=10000 11 | 12 | [[test.workload]] 13 | testName='HealthMetricsApi' 14 | -------------------------------------------------------------------------------- /tests/fast/CacheTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'Cached' 3 | 4 | [[test.workload]] 5 | testName = 'Cache' 6 | keyPrefix = 'foo/' 7 | 8 | [[test]] 9 | testTitle = 'Cycle' 10 | 11 | [[test.workload]] 12 | testName = 'Cycle' 13 | transactionsPerSecond = 2500.0 14 | testDuration = 10.0 15 | expectedRate = 0.01 16 | keyPrefix = 'foo/' 17 | -------------------------------------------------------------------------------- /tests/fast/ValidateStorage.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | config = 'triple' 3 | generateFearless = true 4 | allowDefaultTenant = false 5 | machineCount = 18 6 | 7 | [[knobs]] 8 | shard_encode_location_metadata = true 9 | 10 | [[test]] 11 | testTitle = 'ValidateStorageWorkload' 12 | useDB = true 13 | 14 | [[test.workload]] 15 | testName = 'ValidateStorageWorkload' 16 | -------------------------------------------------------------------------------- /tests/fast/StorageServerCheckpointRestore.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | config = 'triple' 3 | storageEngineType = 4 4 | processesPerMachine = 1 5 | coordinators = 3 6 | machineCount = 15 7 | allowDefaultTenant = false 8 | 9 | [[test]] 10 | testTitle = 'SSCheckpointRestoreWorkload' 11 | useDB = true 12 | 13 | [[test.workload]] 14 | testName = 'SSCheckpointRestoreWorkload' 15 | -------------------------------------------------------------------------------- /tests/slow/LongRunning.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | longRunningTest = true 3 | 4 | [[test]] 5 | testTitle = 'CycleTestWithKills' 6 | 7 | [[test.workload]] 8 | testName = 'Cycle' 9 | transactionsPerSecond = 2500.0 10 | testDuration = 10000.0 11 | expectedRate = 0 12 | 13 | [[test.workload]] 14 | testName = 'Attrition' 15 | testDuration = 10000.0 16 | -------------------------------------------------------------------------------- /tests/KVStoreReadMostly.txt: -------------------------------------------------------------------------------- 1 | testTitle=KVStore Read-mostly 2 | useDB=false 3 | 4 | testName=KVStoreTest 5 | testDuration=30.0 6 | operationsPerSecond=10000 7 | commitFraction=0.001 8 | setFraction=0.001 9 | nodeCount=20000000 10 | keyBytes=16 11 | valueBytes=96 12 | filename=bttest 13 | setup=false 14 | clear=false 15 | count=false 16 | -------------------------------------------------------------------------------- /tests/status/separate_no_database.txt: -------------------------------------------------------------------------------- 1 | Using cluster file `fdb.cluster'. 2 | 3 | The coordinator(s) have no record of this database. Either the coordinator 4 | addresses are incorrect, the coordination state on those machines is missing, or 5 | no database has been created. 6 | 7 | 127.0.0.1:4701 (reachable) 8 | 127.0.0.1:4703 (reachable) 9 | 127.0.0.1:4704 (reachable) 10 | -------------------------------------------------------------------------------- /tests/rare/SpecificUnitTests.toml: -------------------------------------------------------------------------------- 1 | # This is modified by scripted testing tools to specify specific unit tests 2 | [[knobs]] 3 | rocksdb_empty_range_check=false 4 | 5 | [[test]] 6 | testTitle = 'UnitTests' 7 | useDB = false 8 | startDelay = 0 9 | runSetup=false 10 | 11 | [[test.workload]] 12 | testName = 'UnitTests' 13 | maxTestCases = 1 14 | testsMatching = 'noSim/' 15 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/binding_test_start.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | set -e 4 | set -o pipefail 5 | 6 | # It is necessary to tee to output.log in case timeout happens 7 | python3 ./binding_test.py --stop-at-failure 10 --fdbserver-path $(pwd)/fdbserver --fdbcli-path $(pwd)/fdbcli --libfdb-path $(pwd) --num-ops 1000 --num-hca-ops 100 --concurrency 5 --test-timeout 60 --random 2>&1 | tee output.log 8 | -------------------------------------------------------------------------------- /tests/AsyncFileReadRandom.txt: -------------------------------------------------------------------------------- 1 | testTitle=AsyncFileReadTest (Uncached) 2 | useDB=false 3 | runSetup=true 4 | clearAfterTest=false 5 | 6 | testName=AsyncFileRead 7 | testDuration=10.0 8 | numParallelReads=1000 9 | readSize=4096 10 | unbufferedIO=true 11 | uncachedIO=true 12 | fileName=aftest.bin 13 | fileSize=10000000 14 | sequential=false 15 | unbatched=true 16 | -------------------------------------------------------------------------------- /tests/RRW2500.txt: -------------------------------------------------------------------------------- 1 | testTitle=RandomReadWriteTest 2 | testName=ReadWrite 3 | testDuration=30.0 4 | transactionsPerSecond=250 5 | writesPerTransactionA=0 6 | readsPerTransactionA=10 7 | writesPerTransactionB=10 8 | readsPerTransactionB=1 9 | alpha=0.5 10 | nodeCount=100000 11 | valueBytes=16 12 | discardEdgeMeasurements=false 13 | warmingDelay=20.0 14 | -------------------------------------------------------------------------------- /tests/fast/DataLossRecovery.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generateFearless = false 3 | config = 'triple' 4 | storageEngineType = 0 5 | processesPerMachine = 2 6 | coordinators = 3 7 | machineCount = 45 8 | asanMachineCount = 20 9 | allowDefaultTenant = false 10 | 11 | [[test]] 12 | testTitle = 'DataLossRecovery' 13 | useDB = true 14 | 15 | [[test.workload]] 16 | testName = 'DataLossRecovery' 17 | -------------------------------------------------------------------------------- /tests/slow/TenantCapacityLimits.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | allowCreatingTenants = false 5 | extraDatabaseMode = 'Single' 6 | 7 | [[test]] 8 | testTitle = 'TenantCapacityLimitTest' 9 | clearAfterTest = true 10 | timeout = 2100 11 | runSetup = true 12 | 13 | [[test.workload]] 14 | testName = 'TenantCapacityLimits' 15 | -------------------------------------------------------------------------------- /packaging/rpm/scripts/preunserver.sh: -------------------------------------------------------------------------------- 1 | if [ $1 -eq 0 ]; then 2 | 3 | if pidof systemd 4 | then 5 | /usr/bin/systemctl stop foundationdb >/dev/null 2>&1 6 | /usr/bin/systemctl disable foundationdb >/dev/null 2>&1 7 | else 8 | /sbin/service foundationdb stop >/dev/null 2>&1 9 | /sbin/chkconfig --del foundationdb >/dev/null 2>&1 10 | fi 11 | fi 12 | exit 0 13 | -------------------------------------------------------------------------------- /tests/BigInsert.txt: -------------------------------------------------------------------------------- 1 | testTitle=RandomReadWriteTest 2 | testName=ReadWrite 3 | testDuration=30.0 4 | transactionsPerSecond=1000 5 | writesPerTransactionA=0 6 | readsPerTransactionA=10 7 | writesPerTransactionB=10 8 | readsPerTransactionB=1 9 | alpha=0.5 10 | nodeCount=2000000 11 | valueBytes=128 12 | discardEdgeMeasurements=false 13 | warmingDelay=10.0 14 | -------------------------------------------------------------------------------- /cmake/AssertFileDoesntExist.cmake: -------------------------------------------------------------------------------- 1 | set(error_msg 2 | ${CMAKE_SOURCE_DIR}/versions.h exists. This usually means that 3 | you did run `make` "(the old build system)" in this directory before. 4 | This can result in unexpected behavior. run `make clean` in the 5 | source directory to continue) 6 | if(EXISTS "${FILE}") 7 | list(JOIN error_msg " " err) 8 | message(FATAL_ERROR "${err}") 9 | endif() 10 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/bindingTest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 3 | ulimit -S -c unlimited 4 | 5 | unset FDB_NETWORK_OPTION_EXTERNAL_CLIENT_DIRECTORY 6 | WORKDIR="$(pwd)/tmp/$$" 7 | if [ ! -d "${WORKDIR}" ] ; then 8 | mkdir -p "${WORKDIR}" 9 | fi 10 | DEBUGLEVEL=0 DISPLAYERROR=1 RANDOMTEST=1 WORKDIR="${WORKDIR}" ${SCRIPTDIR}/bindingTestScript.sh 1 11 | -------------------------------------------------------------------------------- /fdbrpc/LinkTest.cpp: -------------------------------------------------------------------------------- 1 | // When creating a static or shared library, undefined symbols will be ignored. 2 | // Since we want to ensure no symbols from other modules are used, each module 3 | // will create an executable so the linker will throw errors if it can't find 4 | // the declaration of a symbol. This class defines a dummy main function so the 5 | // executable can be built. 6 | int main() { 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /flow/LinkTest.cpp: -------------------------------------------------------------------------------- 1 | // When creating a static or shared library, undefined symbols will be ignored. 2 | // Since we want to ensure no symbols from other modules are used, each module 3 | // will create an executable so the linker will throw errors if it can't find 4 | // the declaration of a symbol. This class defines a dummy main function so the 5 | // executable can be built. 6 | int main() { 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /documentation/sphinx/source/deadlock-blurb.rst.inc: -------------------------------------------------------------------------------- 1 | .. note:: Because of a `bug in the Linux kernel `_, **FoundationDB might deadlock when running on Ubuntu 12.04 or 12.10** using the default ext4 filesystem. This was fixed in the 3.7 kernel (released 12/10/2012) thanks to the `hard work of Dmitry Monakhov `_. -------------------------------------------------------------------------------- /fdbclient/LinkTest.cpp: -------------------------------------------------------------------------------- 1 | // When creating a static or shared library, undefined symbols will be ignored. 2 | // Since we want to ensure no symbols from other modules are used, each module 3 | // will create an executable so the linker will throw errors if it can't find 4 | // the declaration of a symbol. This class defines a dummy main function so the 5 | // executable can be built. 6 | int main() { 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /tests/Mako.txt: -------------------------------------------------------------------------------- 1 | testTitle=MakoTest 2 | testName=Mako 3 | testDuration=10.0 4 | transactionsPerSecond=100000 5 | rows=1000000 6 | sampleSize=100 7 | valueBytes=16 8 | keyBytes=16 9 | operations=g5gr5:10i5ir5:10grv5 10 | actorCountPerClient=256 11 | enableLogging=false 12 | commitGet=false 13 | populateData=true 14 | runBenchmark=true 15 | preserveData=true 16 | -------------------------------------------------------------------------------- /documentation/sphinx/source/visibility.rst: -------------------------------------------------------------------------------- 1 | .. _visibility: 2 | 3 | #################### 4 | Visibility Documents 5 | #################### 6 | 7 | Curation of documents related to Visibility into FDB. 8 | 9 | * :doc:`request-tracing` provides fine-grained visibility into the flow of transactions through the system. 10 | 11 | .. toctree:: 12 | :maxdepth: 2 13 | :titlesonly: 14 | :hidden: 15 | 16 | request-tracing 17 | -------------------------------------------------------------------------------- /tests/fast/KillRegionCycle.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | minimumRegions = 2 3 | 4 | [[test]] 5 | testTitle = 'KillRegionCycle' 6 | clearAfterTest = false 7 | 8 | [[test.workload]] 9 | testName = 'Cycle' 10 | nodeCount = 30000 11 | transactionsPerSecond = 2500.0 12 | testDuration = 30.0 13 | expectedRate = 0 14 | 15 | [[test.workload]] 16 | testName = 'KillRegion' 17 | testDuration = 30.0 18 | -------------------------------------------------------------------------------- /tests/fast/RawTenantAccessClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['required'] 4 | allowCreatingTenants = false 5 | 6 | [[knobs]] 7 | proxy_use_resolver_private_mutations = false 8 | 9 | [[test]] 10 | testTitle = 'RawTenantAccessClean' 11 | runSetup = true 12 | 13 | [[test.workload]] 14 | testName = 'RawTenantAccess' 15 | tenantCount = 1000 16 | testDuration = 120 17 | -------------------------------------------------------------------------------- /tests/AsyncFileMix.txt: -------------------------------------------------------------------------------- 1 | testTitle=AsyncFileReadWriteTest (Uncached) 2 | useDB=false 3 | runSetup=true 4 | clearAfterTest=false 5 | 6 | testName=AsyncFileRead 7 | testDuration=10.0 8 | numParallelReads=1000 9 | readSize=4096 10 | unbufferedIO=true 11 | uncachedIO=true 12 | fileName=aftest.bin 13 | fileSize=10000000 14 | sequential=false 15 | unbatched=true 16 | writeFraction=0.999 17 | -------------------------------------------------------------------------------- /tests/slow/ConfigureTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CloggedConfigureDatabaseTest' 3 | 4 | [[test.workload]] 5 | testName = 'ConfigureDatabase' 6 | testDuration = 300.0 7 | 8 | [[test.workload]] 9 | testName = 'RandomClogging' 10 | testDuration = 300.0 11 | 12 | [[test.workload]] 13 | testName = 'RandomClogging' 14 | testDuration = 300.0 15 | scale = 0.1 16 | clogginess = 2.0 17 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/correctnessTest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Simulation currently has memory leaks. We need to investigate before we can enable leak detection in joshua. 4 | export ASAN_OPTIONS="detect_leaks=0" 5 | 6 | OLDBINDIR="${OLDBINDIR:-/app/deploy/global_data/oldBinaries}" 7 | #mono bin/TestHarness.exe joshua-run "${OLDBINDIR}" false 8 | 9 | python3 -m test_harness.app -s ${JOSHUA_SEED} --old-binaries-path ${OLDBINDIR} 10 | -------------------------------------------------------------------------------- /tests/fast/RandomUnitTests.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | rocksdb_empty_range_check=false 3 | 4 | [[test]] 5 | testTitle = 'UnitTests' 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | maxTestCases = 10 12 | testsMatching = '/' 13 | # ConfigDB tests persist state, so running these tests 14 | # sequentially can cause issues 15 | testsIgnored = '/fdbserver/ConfigDB/' 16 | -------------------------------------------------------------------------------- /fdbrpc/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(NOT WIN32) 2 | add_flow_target(EXECUTABLE NAME authz_tls_unittest SRCS AuthzTlsTest.actor.cpp) 3 | target_link_libraries(authz_tls_unittest PRIVATE flow fdbrpc fmt::fmt) 4 | if(NOT OPEN_FOR_IDE) 5 | add_test(NAME authorization_tls_unittest 6 | COMMAND $) 7 | set_tests_properties(authorization_tls_unittest PROPERTIES TIMEOUT 120) 8 | endif() 9 | endif() 10 | -------------------------------------------------------------------------------- /tests/slow/TenantManagement.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | allowCreatingTenants = false 5 | extraDatabaseMode = 'Single' 6 | 7 | [[test]] 8 | testTitle = 'TenantManagementTest' 9 | clearAfterTest = true 10 | timeout = 2100 11 | runSetup = true 12 | 13 | [[test.workload]] 14 | testName = 'TenantManagement' 15 | maxTenants = 1000 16 | testDuration = 120 17 | -------------------------------------------------------------------------------- /tests/fast/ReportConflictingKeys.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | 4 | [[test]] 5 | testTitle = 'ReportConflictingKeysTest' 6 | connectionFailuresDisableDuration = 100000 7 | 8 | [[test.workload]] 9 | testName = 'ReportConflictingKeys' 10 | testDuration = 20.0 11 | nodeCount = 10000 12 | keyPrefix = 'RCK' 13 | keyBytes = 64 14 | readConflictRangeCountPerTx = 10 15 | writeConflictRangeCountPerTx = 10 16 | -------------------------------------------------------------------------------- /tests/SampleNoSimAttrition.txt: -------------------------------------------------------------------------------- 1 | testTitle=Temp 2 | testName=Cycle 3 | transactionsPerSecond=2500.0 4 | testDuration=10.0 5 | expectedRate=0 6 | 7 | testName=Attrition 8 | killDc=true 9 | targetId=2 10 | reboot=true 11 | testDuration=10.0 12 | suspendDuration=5.0 13 | 14 | testName=Attrition 15 | killMachine=true 16 | targetId=1 17 | reboot=true 18 | testDuration=10.0 19 | suspendDuration=2.0 -------------------------------------------------------------------------------- /tests/rare/DcLag.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generateFearless = true 3 | processesPerMachine = 1 4 | machineCount = 20 5 | minimumRegions = 2 6 | 7 | [[test]] 8 | testTitle = 'DcLag' 9 | 10 | [[test.workload]] 11 | testName = 'Cycle' 12 | nodeCount = 3000 13 | transactionsPerSecond = 250.0 14 | testDuration = 200.0 15 | expectedRate = 0 16 | 17 | [[test.workload]] 18 | testName = 'DcLag' 19 | testDuration = 1000.0 20 | -------------------------------------------------------------------------------- /bindings/go/src/fdb/subspace/subspace_test.go: -------------------------------------------------------------------------------- 1 | package subspace 2 | 3 | import ( 4 | "fmt" 5 | "testing" 6 | ) 7 | 8 | func TestSubspaceString(t *testing.T) { 9 | printed := fmt.Sprint(Sub([]byte("hello"), "world", 42, 0x99)) 10 | expected := "Subspace(rawPrefix=\\x01hello\\x00\\x02world\\x00\\x15*\\x15\\x99)" 11 | 12 | if printed != expected { 13 | t.Fatalf("printed subspace result differs, expected %v, got %v", expected, printed) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/longRunningCorrectnessTest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Simulation currently has memory leaks. We need to investigate before we can enable leak detection in joshua. 4 | export ASAN_OPTIONS="detect_leaks=0" 5 | 6 | OLDBINDIR="${OLDBINDIR:-/app/deploy/global_data/oldBinaries}" 7 | #mono bin/TestHarness.exe joshua-run "${OLDBINDIR}" false 8 | 9 | python3 -m test_harness.app -s ${JOSHUA_SEED} --old-binaries-path ${OLDBINDIR} --long-running 10 | -------------------------------------------------------------------------------- /FDBLibTLS/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | FDBLibTLSPlugin.cpp 3 | FDBLibTLSPlugin.h 4 | FDBLibTLSPolicy.cpp 5 | FDBLibTLSPolicy.h 6 | FDBLibTLSSession.cpp 7 | FDBLibTLSSession.h 8 | FDBLibTLSVerify.cpp 9 | FDBLibTLSVerify.h) 10 | 11 | add_library(FDBLibTLS STATIC ${SRCS}) 12 | target_link_libraries(FDBLibTLS PUBLIC OpenSSL::SSL boost_target PRIVATE flow) 13 | target_include_directories(FDBLibTLS INTERFACE OpenSSL::SSL boost_target PRIVATE flow) 14 | -------------------------------------------------------------------------------- /cmake/FindWIX.cmake: -------------------------------------------------------------------------------- 1 | # Find WIX 2 | 3 | set(WIX_INSTALL_DIR $ENV{WIX}) 4 | 5 | find_program(WIX_CANDLE 6 | candle 7 | HINTS ${WIX_INSTALL_DIR}/bin) 8 | 9 | find_program(WIX_LIGHT 10 | light 11 | HINTS ${WIX_INSTALL_DIR}/bin) 12 | 13 | find_package_handle_standard_args(WIX 14 | REQUIRED_VARS 15 | WIX_CANDLE 16 | WIX_LIGHT 17 | FAIL_MESSAGE 18 | "Could not find WIX installation - try setting WIX_ROOT or the WIX environment variable") 19 | -------------------------------------------------------------------------------- /contrib/crc32/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(crc32 STATIC crc32.S crc32_wrapper.c crc32c.cpp) 2 | if (CLANG) 3 | # This is necessary for clang since the compiler reports that crc32_align is 4 | # defined but not used. With -Werror, crc32 will not compile. 5 | # TODO: Remove this when the upstream issue is repaired. 6 | target_compile_options(crc32 PUBLIC -Wno-unused-function) 7 | endif () 8 | target_include_directories(crc32 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") 9 | -------------------------------------------------------------------------------- /packaging/osx/resources/conclusion.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 2 | {\fonttbl\f0\fnil\fcharset0 LucidaGrande;} 3 | {\colortbl;\red255\green255\blue255;} 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural 5 | 6 | \f0\fs26 \cf0 Thank you for installing FoundationDB. For documentation, please visit {\field{\*\fldinst HYPERLINK "https://www.foundationdb.org"}{\fldrslt https://www.foundationdb.org}}.} -------------------------------------------------------------------------------- /tests/slow/BlobGranuleCorrectnessClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | blobGranulesEnabled = true 3 | allowDefaultTenant = false 4 | tenantModes = ['optional', 'required'] 5 | 6 | [[knobs]] 7 | bg_metadata_source = "tenant" 8 | enable_configurable_encryption = true 9 | enable_rest_kms_communication = true 10 | 11 | [[test]] 12 | testTitle = 'BlobGranuleCorrectness' 13 | 14 | [[test.workload]] 15 | testName = 'BlobGranuleCorrectnessWorkload' 16 | testDuration = 120.0 -------------------------------------------------------------------------------- /tests/slow/TenantManagementConcurrency.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | allowCreatingTenants = false 5 | extraDatabaseMode = 'Single' 6 | 7 | [[test]] 8 | testTitle = 'TenantManagementConcurrencyTest' 9 | clearAfterTest = true 10 | timeout = 2100 11 | runSetup = true 12 | 13 | [[test.workload]] 14 | testName = 'TenantManagementConcurrency' 15 | maxTenants = 100 16 | testDuration = 120 17 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleErrorsSingleThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule Errors Single Threaded' 3 | minClients = 1 4 | maxClients = 3 5 | multiThreaded = false 6 | 7 | [[server]] 8 | blob_granules_enabled = true 9 | 10 | [[test.workload]] 11 | name = 'BlobGranuleErrors' 12 | minKeyLength = 1 13 | maxKeyLength = 64 14 | minValueLength = 1 15 | maxValueLength = 1000 16 | maxKeysPerTransaction = 50 17 | initialSize = 100 18 | numRandomOperations = 100 19 | -------------------------------------------------------------------------------- /tests/fast/PhysicalShardMove.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | config = 'triple' 3 | storageEngineType = 5 4 | processesPerMachine = 1 5 | coordinators = 3 6 | machineCount = 15 7 | allowDefaultTenant = false 8 | 9 | [[knobs]] 10 | shard_encode_location_metadata = true 11 | enable_dd_physical_shard = true 12 | min_byte_sampling_probability = 0.99 13 | 14 | [[test]] 15 | testTitle = 'PhysicalShardMove' 16 | useDB = true 17 | 18 | [[test.workload]] 19 | testName = 'PhysicalShardMove' 20 | -------------------------------------------------------------------------------- /packaging/rpm/foundationdb.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=FoundationDB Key-Value Store 3 | After=syslog.target network-online.target 4 | Wants=network-online.target 5 | 6 | [Service] 7 | Type=forking 8 | PIDFile=/var/run/fdbmonitor.pid 9 | ExecStart=/usr/lib/foundationdb/fdbmonitor --conffile /etc/foundationdb/foundationdb.conf --lockfile /var/run/fdbmonitor.pid --daemonize 10 | KillMode=mixed 11 | Restart=on-failure 12 | RestartSec=60s 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /tests/fast/EncryptionUnitTests.toml: -------------------------------------------------------------------------------- 1 | [[knobs]] 2 | enable_configurable_encryption = true 3 | 4 | [[test]] 5 | testTitle = 'BlobCipherUnitTest' 6 | useDB = false 7 | startDelay = 0 8 | 9 | [[test.workload]] 10 | testName = 'UnitTests' 11 | testsMatching = '/blobCipher' 12 | 13 | [[test]] 14 | testTitle = 'EncryptKeyProxyUnitTest' 15 | useDB = false 16 | startDelay = 0 17 | 18 | [[test.workload]] 19 | testName = 'UnitTests' 20 | testsMatching = '/EncryptKeyProxy' 21 | -------------------------------------------------------------------------------- /tests/restarting/from_5.1.7_until_6.3.0/DrUpgradeRestart-2.txt: -------------------------------------------------------------------------------- 1 | extraDatabaseMode=Local 2 | 3 | testTitle=DrUpgrade 4 | runSetup=false 5 | clearAfterTest=false 6 | simBackupAgents=BackupToDB 7 | waitForQuiescenceBegin=false 8 | 9 | testName=Cycle 10 | nodeCount=30000 11 | transactionsPerSecond=2500.0 12 | testDuration=30.0 13 | expectedRate=0 14 | 15 | testName=BackupToDBUpgrade 16 | backupAfter=10.0 17 | backupRangesCount=-1 18 | stopDifferentialAfter=70.0 19 | -------------------------------------------------------------------------------- /tests/slow/DifferentClustersSameRV.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = 'Single' 3 | # Temporarily disable default tenants in this test pending tenant implementation changes 4 | allowDefaultTenant = false 5 | 6 | [[test]] 7 | testTitle = 'DifferentClustersSameRV' 8 | clearAfterTest = false 9 | 10 | [[test.workload]] 11 | testName = 'DifferentClustersSameRV' 12 | testDuration = 500 13 | switchAfter = 50 14 | keyToRead = 'someKey' 15 | keyToWatch = 'anotherKey' 16 | -------------------------------------------------------------------------------- /tests/fast/TenantLock.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | 5 | [[test]] 6 | testTitle = 'TenantCreation' 7 | clearAfterTest = false 8 | 9 | [[test.workload]] 10 | testName = 'CreateTenant' 11 | name = 'First' 12 | 13 | [[test.workload]] 14 | testName = 'CreateTenant' 15 | name = 'Second' 16 | 17 | [[test]] 18 | testTitle = 'TenantLock' 19 | 20 | [[test.workload]] 21 | testName = 'TenantLock' 22 | tenant1 = 'First' 23 | tenant2 = 'Second' -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13_until_7.2.0/DrUpgradeRestart-2.txt: -------------------------------------------------------------------------------- 1 | extraDatabaseMode=Local 2 | 3 | testTitle=DrUpgrade 4 | runSetup=false 5 | clearAfterTest=false 6 | simBackupAgents=BackupToDB 7 | waitForQuiescenceBegin=false 8 | 9 | testName=Cycle 10 | nodeCount=30000 11 | transactionsPerSecond=2500.0 12 | testDuration=30.0 13 | expectedRate=0 14 | 15 | testName=BackupToDBUpgrade 16 | backupAfter=10.0 17 | backupRangesCount=-1 18 | stopDifferentialAfter=70.0 19 | -------------------------------------------------------------------------------- /tests/slow/MetaclusterManagement.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | allowCreatingTenants = false 5 | extraDatabaseMode = 'Multiple' 6 | extraDatabaseCount = 5 7 | 8 | [[test]] 9 | testTitle = 'MetaclusterManagementTest' 10 | clearAfterTest = true 11 | timeout = 2100 12 | runSetup = true 13 | 14 | [[test.workload]] 15 | testName = 'MetaclusterManagement' 16 | maxTenants = 1000 17 | maxTenantGroups = 20 18 | testDuration = 60 19 | -------------------------------------------------------------------------------- /cmake/FindValgrind.cmake: -------------------------------------------------------------------------------- 1 | find_path(VALGRIND_INCLUDE_DIR 2 | NAMES 3 | valgrind.h 4 | PATH_SUFFIXES include valgrind) 5 | 6 | find_package_handle_standard_args(Valgrind 7 | REQUIRED_VARS VALGRIND_INCLUDE_DIR 8 | FAIL_MESSAGE "Could not find Valgrind header files, try set the path to the Valgrind headers in the variable Valgrind_ROOT") 9 | 10 | if(VALGRIND_FOUND) 11 | add_library(Valgrind INTERFACE) 12 | target_include_directories(Valgrind INTERFACE "${VALGRIND_INCLUDE_DIR}") 13 | endif() 14 | -------------------------------------------------------------------------------- /contrib/local_cluster/lib/__init__.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import sys 3 | 4 | 5 | def _setup_logs(): 6 | logger = logging.getLogger(__name__) 7 | 8 | logger.handlers.clear() 9 | 10 | log_format = logging.Formatter( 11 | "%(asctime)s | %(name)20s :: %(levelname)-8s :: %(message)s" 12 | ) 13 | 14 | stdout_handler = logging.StreamHandler(stream=sys.stderr) 15 | stdout_handler.setFormatter(log_format) 16 | 17 | logger.addHandler(stdout_handler) 18 | 19 | 20 | _setup_logs() 21 | -------------------------------------------------------------------------------- /packaging/docker/samples/golang/app/go.sum: -------------------------------------------------------------------------------- 1 | github.com/apple/foundationdb/bindings/go v0.0.0-20210812163112-fc36abe69119 h1:ifng5y63mUfkrh8aegna8s3I0OqjFBrVAEXTDcku0zM= 2 | github.com/apple/foundationdb/bindings/go v0.0.0-20210812163112-fc36abe69119/go.mod h1:w63jdZTFCtvdjsUj5yrdKgjxaAD5uXQX6hJ7EaiLFRs= 3 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= 4 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 5 | -------------------------------------------------------------------------------- /tests/fast/BlobGranuleVerifySmallClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | blobGranulesEnabled = true 3 | allowDefaultTenant = false 4 | testClass = "BlobGranule" 5 | 6 | [[test]] 7 | testTitle = 'BlobGranuleVerifySmallClean' 8 | 9 | [[test.workload]] 10 | testName = 'WriteDuringRead' 11 | testDuration = 60.0 12 | useSystemKeys = false 13 | maximumDataWritten=50000000 14 | 15 | [[test.workload]] 16 | testName = 'BlobGranuleVerifier' 17 | testDuration = 60.0 18 | enablePurging = false 19 | -------------------------------------------------------------------------------- /tests/rare/RedwoodDeltaTree.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RedwoodDeltaTree' 3 | useDB = false 4 | startDelay = 0 5 | 6 | [[test.workload]] 7 | testName = 'UnitTests' 8 | maxTestCases = 1 9 | testsMatching = 'Lredwood/correctness/unit/deltaTree/IntIntPair' 10 | 11 | [[test]] 12 | testTitle = "RedwoodRecordRef" 13 | 14 | [[test.workload]] 15 | testName = 'UnitTests' 16 | maxTestCases = 2 # there are two of those 17 | testsMatching = 'Lredwood/correctness/unit/deltaTree/RedwoodRecordRef' -------------------------------------------------------------------------------- /fdbclient/include/fdbclient/zipf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * zipfian distribution copied from YCSB 3 | * https://github.com/brianfrankcooper/YCSB 4 | */ 5 | 6 | #ifndef ZIPF_H 7 | #define ZIPF_H 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #define ZIPFIAN_CONSTANT 0.99 15 | 16 | void zipfian_generator3(int min, int max, double zipfianconstant); 17 | void zipfian_generator(int items); 18 | int zipfian_next(); 19 | 20 | #ifdef __cplusplus 21 | } 22 | #endif 23 | 24 | #endif /* ZIPF_H */ 25 | -------------------------------------------------------------------------------- /tests/slow/RyowCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RyowCorrectnessTest' 3 | clearAfterTest = true 4 | timeout = 2100 5 | runSetup = true 6 | 7 | [[test.workload]] 8 | testName = 'RyowCorrectness' 9 | numKeys = 5000 10 | onlyLowerCase = true 11 | shortKeysRatio = 0.5 12 | minShortKeyLength = 1 13 | maxShortKeyLength = 3 14 | minLongKeyLength = 1 15 | maxLongKeyLength = 128 16 | minValueLength = 1 17 | maxValueLength = 1000 18 | duration = 60 19 | opsPerTransaction = 50 20 | -------------------------------------------------------------------------------- /packaging/osx/scripts-server/preinstall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p -m 0700 $SERVERDIR/usr/local/foundationdb/data 4 | mkdir -p -m 0700 $SERVERDIR/usr/local/foundationdb/logs 5 | 6 | if [ -f /Library/LaunchDaemons/com.foundationdb.fdbmonitor.plist ]; then 7 | /bin/launchctl unload /Library/LaunchDaemons/com.foundationdb.fdbmonitor.plist || : 8 | fi 9 | 10 | if [ -f /usr/local/etc/foundationdb/foundationdb.conf ]; then 11 | mv /usr/local/etc/foundationdb/foundationdb.conf /usr/local/etc/foundationdb/foundationdb.conf.old 12 | fi 13 | -------------------------------------------------------------------------------- /tests/slow/ConfigureStorageMigrationTest.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | 4 | [[test]] 5 | testTitle = 'CloggedConfigureDatabaseTest' 6 | 7 | [[test.workload]] 8 | testName = 'ConfigureDatabase' 9 | testDuration = 300.0 10 | allowTestStorageMigration = true 11 | 12 | [[test.workload]] 13 | testName = 'RandomClogging' 14 | testDuration = 300.0 15 | 16 | [[test.workload]] 17 | testName = 'RandomClogging' 18 | testDuration = 300.0 19 | scale = 0.1 20 | clogginess = 2.0 21 | -------------------------------------------------------------------------------- /tests/restarting/from_5.1.7_until_6.3.0/DrUpgradeRestart-1.txt: -------------------------------------------------------------------------------- 1 | extraDB=3 2 | 3 | testTitle=DrUpgrade 4 | clearAfterTest=false 5 | simBackupAgents=BackupToDB 6 | 7 | testName=Cycle 8 | nodeCount=30000 9 | transactionsPerSecond=2500.0 10 | testDuration=30.0 11 | expectedRate=0 12 | 13 | testName=BackupToDBUpgrade 14 | backupAfter=10.0 15 | stopDifferentialAfter=50.0 16 | backupRangesCount=-1 17 | 18 | testName=SaveAndKill 19 | restartInfoLocation=simfdb/restartInfo.ini 20 | testDuration=40.0 21 | -------------------------------------------------------------------------------- /tests/restarting/from_7.3.0/ConfigureTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | randomlyRenameZoneId=true 3 | 4 | [[test]] 5 | testTitle='CloggedConfigureDatabaseTest' 6 | runSetup=false 7 | 8 | [[test.workload]] 9 | testName='ConfigureDatabase' 10 | testDuration=300.0 11 | allowDescriptorChange=false 12 | 13 | [[test.workload]] 14 | testName='RandomClogging' 15 | testDuration=300.0 16 | 17 | [[test.workload]] 18 | testName='RandomClogging' 19 | testDuration=300.0 20 | scale=0.1 21 | clogginess=2.0 22 | -------------------------------------------------------------------------------- /tests/negative/StorageCorruption.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = "StorageCorruption" 3 | 4 | [[test.workload]] 5 | testName = "StorageCorruption" 6 | corruptionProbability = 0.001 7 | testDuration = 60.0 8 | 9 | [[test.workload]] 10 | testName = 'ReadWrite' 11 | testDuration = 60.0 12 | transactionsPerSecond = 200 13 | writesPerTransactionA = 5 14 | readsPerTransactionA = 1 15 | writesPerTransactionB = 10 16 | readsPerTransactionB = 1 17 | alpha = 0.5 18 | nodeCount = 10000 19 | valueBytes = 128 20 | discardEdgeMeasurements = false 21 | warmingDelay = 10.0 -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/ConfigureTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | randomlyRenameZoneId=true 3 | 4 | [[test]] 5 | testTitle='CloggedConfigureDatabaseTest' 6 | runSetup=false 7 | 8 | [[test.workload]] 9 | testName='ConfigureDatabase' 10 | testDuration=300.0 11 | allowDescriptorChange=false 12 | 13 | [[test.workload]] 14 | testName='RandomClogging' 15 | testDuration=300.0 16 | 17 | [[test.workload]] 18 | testName='RandomClogging' 19 | testDuration=300.0 20 | scale=0.1 21 | clogginess=2.0 22 | -------------------------------------------------------------------------------- /tests/restarting/from_7.2.0_until_7.3.0/ConfigureTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | randomlyRenameZoneId=true 3 | 4 | [[test]] 5 | testTitle='CloggedConfigureDatabaseTest' 6 | runSetup=false 7 | 8 | [[test.workload]] 9 | testName='ConfigureDatabase' 10 | testDuration=300.0 11 | allowDescriptorChange=false 12 | 13 | [[test.workload]] 14 | testName='RandomClogging' 15 | testDuration=300.0 16 | 17 | [[test.workload]] 18 | testName='RandomClogging' 19 | testDuration=300.0 20 | scale=0.1 21 | clogginess=2.0 22 | -------------------------------------------------------------------------------- /contrib/TestHarness/VersionInfo.cs.cmake: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SummarizeTest { 4 | static class VersionInfo { 5 | public static int Show() 6 | { 7 | Console.WriteLine("Version: 1.02"); 8 | 9 | Console.WriteLine("FDB Project Ver: " + "${FDB_VERSION}"); 10 | Console.WriteLine("FDB Version: " + "${FDB_VERSION_MAJOR}" + "." + "${FDB_VERSION_MINOR}"); 11 | Console.WriteLine("Source Version: " + "${CURRENT_GIT_VERSION}"); 12 | return 1; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /packaging/deb/foundationdb-clients.control.in: -------------------------------------------------------------------------------- 1 | Package: foundationdb-clients 2 | Version: VERSION-RELEASE 3 | Section: database 4 | Priority: optional 5 | Architecture: amd64 6 | Conflicts: foundationdb (<< 0.1.4) 7 | Depends: libc6 (>= 2.11), adduser 8 | Maintainer: FoundationDB 9 | Homepage: https://www.foundationdb.org 10 | Description: FoundationDB clients and library 11 | FoundationDB is a scalable, fault-tolerant, ordered key-value store 12 | with full ACID transactions. 13 | . 14 | This package contains client utilities and libraries. 15 | -------------------------------------------------------------------------------- /tests/rare/CheckRelocation.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RandomReadWriteTest' 3 | simCheckRelocationDuration = true 4 | connectionFailuresDisableDuration = 100000 5 | 6 | [[test.workload]] 7 | testName = 'ReadWrite' 8 | testDuration = 30.0 9 | transactionsPerSecond = 750 10 | writesPerTransactionA = 0 11 | readsPerTransactionA = 10 12 | writesPerTransactionB = 10 13 | readsPerTransactionB = 1 14 | alpha = 0.5 15 | nodeCount = 150000 16 | valueBytes = 128 17 | discardEdgeMeasurements = false 18 | warmingDelay = 10.0 19 | -------------------------------------------------------------------------------- /bindings/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(c) 2 | if(NOT OPEN_FOR_IDE) 3 | # flow bindings currently doesn't support that 4 | add_subdirectory(flow) 5 | endif() 6 | if(WITH_PYTHON_BINDING) 7 | add_subdirectory(python) 8 | endif() 9 | if(WITH_JAVA_BINDING) 10 | add_subdirectory(java) 11 | endif() 12 | if(WITH_GO_BINDING AND NOT OPEN_FOR_IDE) 13 | add_subdirectory(go) 14 | endif() 15 | if(WITH_RUBY_BINDING) 16 | add_subdirectory(ruby) 17 | endif() 18 | if(NOT WIN32 AND NOT OPEN_FOR_IDE) 19 | package_bindingtester() 20 | package_bindingtester2() 21 | endif() 22 | -------------------------------------------------------------------------------- /bindings/c/symbolify.py: -------------------------------------------------------------------------------- 1 | if __name__ == "__main__": 2 | import re 3 | import sys 4 | 5 | r = re.compile("^DLLEXPORT[^(]*(fdb_[^(]*)[(].*$", re.MULTILINE) 6 | header_files = sys.argv[1:-1] 7 | symbols_file = sys.argv[-1] 8 | symbols = set() 9 | for header_file in header_files: 10 | with open(header_file, "r") as f: 11 | symbols.update("_" + m.group(1) for m in r.finditer(f.read())) 12 | symbols = sorted(symbols) 13 | with open(symbols_file, "w") as f: 14 | f.write("\n".join(symbols)) 15 | f.write("\n") 16 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiMultiTenantCorrectnessMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Multi-tenant API Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minClients = 2 8 | maxClients = 8 9 | minTenants = 2 10 | maxTenants = 5 11 | 12 | [[test.workload]] 13 | name = 'ApiCorrectness' 14 | minKeyLength = 1 15 | maxKeyLength = 64 16 | minValueLength = 1 17 | maxValueLength = 1000 18 | maxKeysPerTransaction = 5 19 | initialSize = 100 20 | numRandomOperations = 200 21 | readExistingKeysRatio = 0.9 22 | -------------------------------------------------------------------------------- /cmake/EnableCsharp.cmake: -------------------------------------------------------------------------------- 1 | if(WIN32) 2 | # C# is currently only supported on Windows. 3 | # On other platforms we find mono manually 4 | enable_language(CSharp) 5 | else() 6 | # for other platforms we currently use mono 7 | 8 | find_program(MONO_EXECUTABLE mono) 9 | if (NOT MONO_EXECUTABLE) 10 | message(FATAL_ERROR "Could not find 'mono' executable!") 11 | endif() 12 | 13 | find_program(MCS_EXECUTABLE mcs) 14 | if (NOT MCS_EXECUTABLE) 15 | message(FATAL_ERROR "Could not find 'mcs' executable, which is part of Mono!") 16 | endif() 17 | endif() 18 | -------------------------------------------------------------------------------- /tests/fast/LowLatencySingleClog.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | minimumReplication = 2 4 | 5 | [[test]] 6 | testTitle = 'Clogged' 7 | connectionFailuresDisableDuration = 100000 8 | 9 | [[test.workload]] 10 | testName = 'Cycle' 11 | transactionsPerSecond = 1000.0 12 | testDuration = 60.0 13 | expectedRate = 0 14 | 15 | [[test.workload]] 16 | testName = 'LowLatency' 17 | maxGRVLatency = 40.0 18 | maxCommitLatency = 40.0 19 | testDuration = 60.0 20 | 21 | [[test.workload]] 22 | testName = 'ClogSingleConnection' 23 | -------------------------------------------------------------------------------- /tests/fast/IDDTxnProcessorMoveKeys.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generateFearless = false # prevent generating remote dc because in MGS there's no region setting yet 3 | disableTss = true # There's no TSS in MGS this prevent the DD operate TSS mapping 4 | 5 | [[knobs]] 6 | max_added_sources_multiplier = 0 # set to 0 because it's impossible to make sure SS and mock SS will finish fetch keys at the same time. 7 | 8 | [[test]] 9 | testTitle = 'IDDTxnProcessorMoveKeys' 10 | 11 | [[test.workload]] 12 | testName = 'IDDTxnProcessorApiCorrectness' 13 | testDuration = 50.0 14 | -------------------------------------------------------------------------------- /tests/rare/CloggedCycleWithKills.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CloggedCycleTestWithKills' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 5000.0 7 | testDuration = 30.0 8 | expectedRate = 0.01 9 | 10 | [[test.workload]] 11 | testName = 'RandomClogging' 12 | testDuration = 30.0 13 | 14 | [[test.workload]] 15 | testName = 'RandomClogging' 16 | testDuration = 30.0 17 | scale = 0.1 18 | clogginess = 2.0 19 | 20 | [[test.workload]] 21 | testName = 'Attrition' 22 | testDuration = 30.0 23 | -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13_until_7.2.0/DrUpgradeRestart-1.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=3 2 | extraDB=3 3 | 4 | testTitle=DrUpgrade 5 | clearAfterTest=false 6 | simBackupAgents=BackupToDB 7 | 8 | testName=Cycle 9 | nodeCount=30000 10 | transactionsPerSecond=2500.0 11 | testDuration=30.0 12 | expectedRate=0 13 | 14 | testName=BackupToDBUpgrade 15 | backupAfter=10.0 16 | stopDifferentialAfter=50.0 17 | backupRangesCount=-1 18 | 19 | testName=SaveAndKill 20 | restartInfoLocation=simfdb/restartInfo.ini 21 | testDuration=40.0 22 | -------------------------------------------------------------------------------- /tests/fast/ConfigIncrementWithKills.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | configDB = 'paxos' 3 | 4 | [[test]] 5 | testTitle = 'ConfigIncrementWithKills' 6 | 7 | [[test.workload]] 8 | testName = 'ConfigIncrement' 9 | incrementActors = 2 10 | incrementsPerActor = 10 11 | meanSleepWithinTransactions = 0.01 12 | meanSleepBetweenTransactions = 0.1 13 | 14 | [[test.workload]] 15 | testName = 'Attrition' 16 | reboot = false 17 | 18 | [[test.workload]] 19 | testName = 'ChangeConfig' 20 | maxDelayBeforeChange = 120.0 21 | coordinators = 'auto' 22 | coordinatorChanges = 2 23 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/SnapIncrementalRestore-2.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=4,5 2 | 3 | testTitle=RestoreBackup 4 | simBackupAgents=BackupToFile 5 | clearAfterTest=false 6 | 7 | testName=IncrementalBackup 8 | tag=default 9 | restoreOnly=true 10 | checkBeginVersion=true 11 | clearBackupAgentKeys=true 12 | 13 | testTitle=VerifyCycleAndAtomics 14 | checkOnly=true 15 | 16 | testName=Cycle 17 | nodeCount=3000 18 | transactionsPerSecond=3000.0 19 | testDuration=10.0 20 | expectedRate=0 21 | 22 | testName=SimpleAtomicAdd 23 | -------------------------------------------------------------------------------- /tests/fast/EncryptionOps.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | testClass = "Encryption" 4 | encryptModes = ['disabled'] 5 | 6 | [[knobs]] 7 | enable_configurable_encryption = true 8 | 9 | [[test]] 10 | testTitle = 'EncryptDecrypt' 11 | 12 | [[test.workload]] 13 | testName = 'EncryptionOps' 14 | pageSize = 4096 15 | maxBufSize = 524288 16 | numIterations = 25000 17 | fixedSize = 1 18 | 19 | [[test.workload]] 20 | testName = 'EncryptionOps' 21 | pageSize = 4096 22 | maxBufSize = 524288 23 | numIterations = 400 24 | fixedSize = 0 25 | 26 | -------------------------------------------------------------------------------- /contrib/Implib.so/arch/README.md: -------------------------------------------------------------------------------- 1 | This folder contains target-specific config files and code snippets. 2 | 3 | Basically to add a new target one needs to provide an .ini file with basic platform info 4 | (like pointer sizes) and code templates for 5 | * shim code which checks that real function address is available (and either jumps there or calls the slow path) 6 | * the "slow path" code which 7 | - saves function arguments (to avoid trashing them in next steps) 8 | - calls code which loads the target library and locates function addresses 9 | - restores saved arguments and returns 10 | -------------------------------------------------------------------------------- /contrib/stacktrace/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(stacktrace STATIC stacktrace.amalgamation.cpp) 2 | target_include_directories(stacktrace PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") 3 | if (USE_ASAN) 4 | target_compile_definitions(stacktrace PRIVATE ADDRESS_SANITIZER) 5 | elseif(USE_MSAN) 6 | target_compile_definitions(stacktrace PRIVATE MEMORY_SANITIZER) 7 | elseif(USE_UBSAN) 8 | target_compile_definitions(stacktrace PRIVATE UNDEFINED_BEHAVIOR_SANITIZER) 9 | elseif(USE_TSAN) 10 | target_compile_definitions(stacktrace PRIVATE THREAD_SANITIZER DYNAMIC_ANNOTATIONS_EXTERNAL_IMPL=1) 11 | endif() 12 | -------------------------------------------------------------------------------- /metacluster/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | fdb_find_sources(METACLUSTER_SRCS) 2 | 3 | make_directory(${CMAKE_CURRENT_BINARY_DIR}/include/metacluster/) 4 | 5 | ################################################################################ 6 | # Build information 7 | ################################################################################ 8 | 9 | add_flow_target(STATIC_LIBRARY NAME metacluster SRCS ${METACLUSTER_SRCS}) 10 | target_include_directories(metacluster PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}/include") 11 | target_link_libraries(metacluster PUBLIC fdbclient) 12 | 13 | -------------------------------------------------------------------------------- /packaging/deb/foundationdb-server.control.in: -------------------------------------------------------------------------------- 1 | Package: foundationdb-server 2 | Version: VERSION-RELEASE 3 | Section: database 4 | Priority: optional 5 | Architecture: amd64 6 | Conflicts: foundationdb (<< 0.1.4) 7 | Depends: foundationdb-clients (= VERSION-RELEASE), adduser, libc6 (>= 2.11) 8 | Recommends: python (>= 2.6) 9 | Maintainer: FoundationDB 10 | Homepage: https://www.foundationdb.org 11 | Description: FoundationDB server 12 | FoundationDB is a scalable, fault-tolerant, ordered key-value store 13 | with full ACID transactions. 14 | . 15 | This package contains the server. 16 | -------------------------------------------------------------------------------- /tests/fast/InventoryTestSomeWrites.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'InventoryTestSomeWrites' 3 | 4 | [[test.workload]] 5 | testName = 'InventoryTest' 6 | transactionsPerSecond = 10000.0 7 | testDuration = 10.0 8 | fractionWriteTransactions = 0.1 9 | 10 | [[test.workload]] 11 | testName = 'Attrition' 12 | machinesToKill = 10 13 | machinesToLeave = 3 14 | reboot = true 15 | testDuration = 10.0 16 | 17 | [[test.workload]] 18 | testName = 'Attrition' 19 | machinesToKill = 10 20 | machinesToLeave = 3 21 | reboot = true 22 | testDuration = 10.0 23 | -------------------------------------------------------------------------------- /tests/slow/CloggedCycleTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CloggedCycleTest' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 1250.0 7 | testDuration = 30.0 8 | expectedRate = 0.005 9 | 10 | [[test.workload]] 11 | testName = 'RandomClogging' 12 | testDuration = 30.0 13 | 14 | [[test.workload]] 15 | testName = 'RandomClogging' 16 | testDuration = 30.0 17 | scale = 0.1 18 | clogginess = 2.0 19 | 20 | [[test.workload]] 21 | testName = 'ChangeConfig' 22 | maxDelayBeforeChange = 30.0 23 | coordinators = 'auto' 24 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleCorrectnessSingleThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule API Correctness Single Threaded' 3 | minClients = 1 4 | maxClients = 3 5 | multiThreaded = false 6 | 7 | [[server]] 8 | blob_granules_enabled = true 9 | 10 | [[test.workload]] 11 | name = 'ApiBlobGranuleCorrectness' 12 | minKeyLength = 1 13 | maxKeyLength = 64 14 | minValueLength = 1 15 | maxValueLength = 1000 16 | maxKeysPerTransaction = 50 17 | # TODO - increase initialSize and/or buggify down BG_SNAPSHOT_FILE_TARGET_BYTES to force multiple granules 18 | initialSize = 100 19 | numRandomOperations = 100 20 | -------------------------------------------------------------------------------- /documentation/sphinx/source/api-reference.rst: -------------------------------------------------------------------------------- 1 | .. FoundationDB documentation master file, created by 2 | sphinx-quickstart on Tue Oct 16 12:48:09 2012. 3 | 4 | API Reference 5 | ============= 6 | 7 | The following documents give detailed descriptions of the API for each language: 8 | 9 | .. toctree:: 10 | :maxdepth: 1 11 | :titlesonly: 12 | 13 | api-python 14 | api-ruby 15 | Java API 16 | Go API 17 | api-c 18 | api-error-codes 19 | special-keys 20 | global-configuration 21 | -------------------------------------------------------------------------------- /tests/restarting/from_7.3.0/DrUpgradeRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = "Local" 3 | 4 | [[test]] 5 | testTitle = "DrUpgrade" 6 | runSetup = false 7 | clearAfterTest = false 8 | simBackupAgents = "BackupToDB" 9 | waitForQuiescenceBegin = false 10 | 11 | [[test.workload]] 12 | testName = "Cycle" 13 | nodeCount = 30000 14 | transactionsPerSecond = 2500.0 15 | testDuration = 30.0 16 | expectedRate = 0 17 | 18 | [[test.workload]] 19 | testName = "BackupToDBUpgrade" 20 | backupAfter = 10.0 21 | backupRangesCount = -1 22 | stopDifferentialAfter = 70.0 23 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCancelTransactionCB.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Cancel Transactions with Future Callbacks' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[test.workload]] 15 | name = 'CancelTransaction' 16 | minKeyLength = 1 17 | maxKeyLength = 64 18 | minValueLength = 1 19 | maxValueLength = 1000 20 | maxKeysPerTransaction = 50 21 | initialSize = 100 22 | numRandomOperations = 100 23 | readExistingKeysRatio = 0.9 24 | -------------------------------------------------------------------------------- /tests/fast/ConfigIncrement.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | configDB = 'random' 3 | 4 | [[test]] 5 | testTitle = 'ConfigIncrement' 6 | 7 | [[test.workload]] 8 | testName = 'ConfigIncrement' 9 | incrementActors = 2 10 | incrementsPerActor = 10 11 | meanSleepWithinTransactions = 0.01 12 | meanSleepBetweenTransactions = 0.1 13 | 14 | [[test.workload]] 15 | testName = 'Attrition' 16 | machinesToKill = 10 17 | machinesToLeave = 3 18 | reboot = true 19 | testDuration = 10.0 20 | 21 | [[test.workload]] 22 | testName = 'ChangeConfig' 23 | maxDelayBeforeChange = 120.0 24 | coordinators = 'auto' 25 | -------------------------------------------------------------------------------- /tests/rare/ClogTlog.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generateFearless = false 3 | processesPerMachine = 1 4 | machineCount = 20 5 | commitProxyCount = 4 6 | config = 'triple' 7 | desiredTLogCount = 6 8 | 9 | [[knobs]] 10 | enable_worker_health_monitor = true 11 | cc_enable_worker_health_monitor = true 12 | 13 | [[test]] 14 | testTitle = 'ClogTlog' 15 | 16 | [[test.workload]] 17 | testName = 'Cycle' 18 | nodeCount = 30000 19 | transactionsPerSecond = 2500.0 20 | testDuration = 60.0 21 | expectedRate = 0 22 | 23 | [[test.workload]] 24 | testName = 'ClogTlog' 25 | testDuration = 150.0 26 | -------------------------------------------------------------------------------- /packaging/docker/README.md: -------------------------------------------------------------------------------- 1 | # packaging/docker 2 | This directory contains the pieces for building FoundationDB docker images. 3 | 4 | `build-images.sh` will optionally take a single parameter that will be used as an 5 | image tag postfix. 6 | 7 | For more details it is best to read the `build-images.sh` shell script itself to 8 | learn more about how the images are built. 9 | 10 | For details about what is in the images, peruse `Dockerfile{,.eks}` 11 | 12 | the `samples` directory is out of date, and anything therein should be used with 13 | the expectation that it is, at least, partially (if not entirely) incorrect. -------------------------------------------------------------------------------- /tests/restarting/from_7.2.0_until_7.3.0/DrUpgradeRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = "Local" 3 | 4 | [[test]] 5 | testTitle = "DrUpgrade" 6 | runSetup = false 7 | clearAfterTest = false 8 | simBackupAgents = "BackupToDB" 9 | waitForQuiescenceBegin = false 10 | 11 | [[test.workload]] 12 | testName = "Cycle" 13 | nodeCount = 30000 14 | transactionsPerSecond = 2500.0 15 | testDuration = 30.0 16 | expectedRate = 0 17 | 18 | [[test.workload]] 19 | testName = "BackupToDBUpgrade" 20 | backupAfter = 10.0 21 | backupRangesCount = -1 22 | stopDifferentialAfter = 70.0 23 | -------------------------------------------------------------------------------- /tests/slow/BlobGranuleVerifyBalanceClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | blobGranulesEnabled = true 3 | allowDefaultTenant = false 4 | 5 | [[test]] 6 | testTitle = 'BlobGranuleVerifyBalanceClean' 7 | 8 | [[test.workload]] 9 | testName = 'DDBalance' 10 | testDuration = 120.0 11 | transactionsPerSecond = 250.0 12 | binCount = 1000 13 | writesPerTransaction = 5 14 | keySpaceDriftFactor = 10 15 | moversPerClient = 10 16 | actorsPerClient = 100 17 | nodes = 100000 18 | 19 | [[test.workload]] 20 | testName = 'BlobGranuleVerifier' 21 | testDuration = 120.0 22 | enablePurging = false 23 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiTamperClusterFile.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Test tampering the cluster file' 3 | multiThreaded = true 4 | buggify = true 5 | tamperClusterFile = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 4 8 | minDatabases = 2 9 | maxDatabases = 4 10 | minClientThreads = 2 11 | maxClientThreads = 4 12 | minClients = 2 13 | maxClients = 4 14 | 15 | [[test.workload]] 16 | name = 'ApiCorrectness' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | numRandomOperations = 100 24 | readExistingKeysRatio = 0.9 25 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/SnapCycleRestart-1.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=4,5 2 | logAntiQuorum=0 3 | 4 | ;Take snap and do cycle test 5 | testTitle=SnapCyclePre 6 | clearAfterTest=false 7 | 8 | testName=Cycle 9 | transactionsPerSecond=2500.0 10 | nodeCount=2500 11 | testDuration=10.0 12 | expectedRate=0 13 | 14 | testName=SnapTest 15 | numSnaps=1 16 | maxSnapDelay=10.0 17 | testID=1 18 | 19 | ;save and shutdown 20 | testTitle=SnapCycleShutdown 21 | testName=SaveAndKill 22 | restartInfoLocation=simfdb/restartInfo.ini 23 | testDuration=10.0 24 | isRestoring=1 25 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleErrorsMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule Errors Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[server]] 15 | blob_granules_enabled = true 16 | 17 | [[test.workload]] 18 | name = 'BlobGranuleErrors' 19 | minKeyLength = 1 20 | maxKeyLength = 64 21 | minValueLength = 1 22 | maxValueLength = 1000 23 | maxKeysPerTransaction = 50 24 | initialSize = 100 25 | numRandomOperations = 100 26 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiMultiTenantCorrectnessTLS.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Multi-tenant API Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minClients = 2 8 | maxClients = 8 9 | minTenants = 2 10 | maxTenants = 5 11 | 12 | [[server]] 13 | tls_enabled = true 14 | max_num_processes = 1 15 | 16 | [[test.workload]] 17 | name = 'ApiCorrectness' 18 | minKeyLength = 1 19 | maxKeyLength = 64 20 | minValueLength = 1 21 | maxValueLength = 1000 22 | maxKeysPerTransaction = 5 23 | initialSize = 100 24 | numRandomOperations = 200 25 | readExistingKeysRatio = 0.9 26 | -------------------------------------------------------------------------------- /cmake/FindEditline.cmake: -------------------------------------------------------------------------------- 1 | find_package(Curses) 2 | include(FindPackageHandleStandardArgs) 3 | 4 | if(CURSES_FOUND) 5 | find_path(Editline_INCLUDE_DIR editline/readline.h) 6 | find_library(Editline_LIBRARY edit) 7 | find_package_handle_standard_args( 8 | Editline DEFAULT_MSG Editline_LIBRARY Editline_INCLUDE_DIR) 9 | if(Editline_FOUND) 10 | set(Editline_LIBRARIES ${Editline_LIBRARY} ${CURSES_LIBRARIES}) 11 | set(Editline_INCLUDE_DIRS ${Editline_INCLUDE_DIR} ${CURSES_INCLUDE_DIRS}) 12 | mark_as_advanced(Editline_INCLUDE_DIR Editline_LIBRARY) 13 | endif() 14 | else() 15 | set(Editline_FOUND False) 16 | endif() 17 | -------------------------------------------------------------------------------- /tests/restarting/from_7.3.0/ConfigureTestRestart-1.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle='CloggedConfigureDatabaseTest' 3 | clearAfterTest=false 4 | 5 | [[test.workload]] 6 | testName='ConfigureDatabase' 7 | testDuration=30.0 8 | allowDescriptorChange=false 9 | 10 | [[test.workload]] 11 | testName='RandomClogging' 12 | testDuration=30.0 13 | 14 | [[test.workload]] 15 | testName='RandomClogging' 16 | testDuration=30.0 17 | scale=0.1 18 | clogginess=2.0 19 | 20 | [[test.workload]] 21 | testName='SaveAndKill' 22 | restartInfoLocation='simfdb/restartInfo.ini' 23 | testDuration=30.0 24 | -------------------------------------------------------------------------------- /tests/fast/InventoryTestAlmostReadOnly.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'InventoryTestAlmostReadOnly' 3 | 4 | [[test.workload]] 5 | testName = 'InventoryTest' 6 | transactionsPerSecond = 5000.0 7 | testDuration = 10.0 8 | fractionWriteTransactions = 0.01 9 | actorCount = 1000 10 | 11 | [[test.workload]] 12 | testName = 'Attrition' 13 | machinesToKill = 10 14 | machinesToLeave = 3 15 | reboot = true 16 | testDuration = 10.0 17 | 18 | [[test.workload]] 19 | testName = 'Attrition' 20 | machinesToKill = 10 21 | machinesToLeave = 3 22 | reboot = true 23 | testDuration = 10.0 24 | -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13/CycleTestRestart-2.txt: -------------------------------------------------------------------------------- 1 | testTitle=Clogged 2 | runSetup=false 3 | 4 | testName=Cycle 5 | transactionsPerSecond=2500.0 6 | nodeCount=2500 7 | testDuration=10.0 8 | expectedRate=0 9 | 10 | testName=RandomClogging 11 | testDuration=10.0 12 | 13 | testName=Rollback 14 | meanDelay=10.0 15 | testDuration=10.0 16 | 17 | testName=Attrition 18 | machinesToKill=10 19 | machinesToLeave=3 20 | reboot=true 21 | testDuration=10.0 22 | 23 | testName=Attrition 24 | machinesToKill=10 25 | machinesToLeave=3 26 | reboot=true 27 | testDuration=10.0 28 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleErrorsOnExternalThread.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule Errors Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[server]] 15 | blob_granules_enabled = true 16 | 17 | [[test.workload]] 18 | name = 'BlobGranuleErrors' 19 | minKeyLength = 1 20 | maxKeyLength = 64 21 | minValueLength = 1 22 | maxValueLength = 1000 23 | maxKeysPerTransaction = 50 24 | initialSize = 100 25 | numRandomOperations = 100 26 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCancelTransactionBlocking.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Cancel Transaction with Blocking Waits' 3 | multiThreaded = true 4 | buggify = true 5 | blockOnFutures = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[test.workload]] 16 | name = 'CancelTransaction' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | numRandomOperations = 100 24 | readExistingKeysRatio = 0.9 25 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/ConfigureTestRestart-1.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle='CloggedConfigureDatabaseTest' 3 | clearAfterTest=false 4 | 5 | [[test.workload]] 6 | testName='ConfigureDatabase' 7 | testDuration=30.0 8 | allowDescriptorChange=false 9 | 10 | [[test.workload]] 11 | testName='RandomClogging' 12 | testDuration=30.0 13 | 14 | [[test.workload]] 15 | testName='RandomClogging' 16 | testDuration=30.0 17 | scale=0.1 18 | clogginess=2.0 19 | 20 | [[test.workload]] 21 | testName='SaveAndKill' 22 | restartInfoLocation='simfdb/restartInfo.ini' 23 | testDuration=30.0 24 | -------------------------------------------------------------------------------- /tests/slow/MetaclusterRecovery.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | allowCreatingTenants = false 4 | extraDatabaseMode = 'Multiple' 5 | extraDatabaseCount = 3 6 | extraDatabaseBackupAgents = true 7 | tenantModes = ['optional', 'required'] 8 | config = 'triple' 9 | generateFearless = false 10 | processesPerMachine = 1 11 | machineCount = 5 12 | 13 | [[test]] 14 | testTitle = 'MetaclusterRestoreTest' 15 | clearAfterTest = true 16 | timeout = 2100 17 | runSetup = true 18 | simBackupAgents = 'BackupToFile' 19 | 20 | [[test.workload]] 21 | testName = 'MetaclusterRestore' 22 | maxTenants = 500 23 | maxTenantGroups = 10 24 | -------------------------------------------------------------------------------- /contrib/sqlite/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(sqlite STATIC 2 | btree.h 3 | hash.h 4 | sqlite3.h 5 | sqlite3ext.h 6 | sqliteInt.h 7 | sqliteLimit.h 8 | sqlite3.amalgamation.c) 9 | 10 | 11 | target_include_directories(sqlite PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 12 | # Suppress warnings in sqlite since it's third party 13 | if(NOT WIN32) 14 | target_compile_definitions(sqlite PRIVATE $<$:NDEBUG>) 15 | target_compile_options(sqlite BEFORE PRIVATE -w) # disable warnings for third party 16 | endif() 17 | 18 | # SQLite won't build with -ffast-math 19 | if(ICX) 20 | target_compile_options(sqlite PRIVATE -fno-fast-math) 21 | endif() -------------------------------------------------------------------------------- /documentation/sphinx/source/earlier-release-notes.rst: -------------------------------------------------------------------------------- 1 | ##################### 2 | Earlier Release Notes 3 | ##################### 4 | 5 | Contained here is a historical list of release notes related to the FoundationDB key-value store 6 | that may be useful for determining when a feature was introduced. Earlier release notes refer 7 | to the product prior to its acquisition from Apple and were previously on the public web. 8 | Release notes after the acquisition often include links to the relevant Radars which 9 | were used to track the feature's development. 10 | 11 | .. toctree:: 12 | :maxdepth: 1 13 | :glob: 14 | 15 | release-notes/* 16 | -------------------------------------------------------------------------------- /tests/DataDistributionMetrics.txt: -------------------------------------------------------------------------------- 1 | testTitle=DataDistributionMetricsCorrectness 2 | testName=DataDistributionMetrics 3 | testDuration=10.0 4 | nodeCount=100000 5 | actorCount=64 6 | keyPrefix=DDMetrics 7 | 8 | testName=Cycle 9 | transactionsPerSecond=2500.0 10 | testDuration=10.0 11 | expectedRate=0.025 12 | 13 | testName=Mako 14 | testDuration=10.0 15 | transactionsPerSecond=2500 16 | rows=100000 17 | sampleSize=100 18 | valueBytes=16 19 | keyBytes=16 20 | operations=u8i 21 | actorCountPerClient=64 22 | populateData=true 23 | runBenchmark=true 24 | preserveData=false 25 | -------------------------------------------------------------------------------- /tests/restarting/from_5.0.0_until_6.3.0/CycleTestRestart-2.txt: -------------------------------------------------------------------------------- 1 | testTitle=Clogged 2 | runSetup=false 3 | 4 | testName=Cycle 5 | transactionsPerSecond=2500.0 6 | nodeCount=2500 7 | testDuration=10.0 8 | expectedRate=0 9 | 10 | testName=RandomClogging 11 | testDuration=10.0 12 | 13 | testName=Rollback 14 | meanDelay=10.0 15 | testDuration=10.0 16 | 17 | testName=Attrition 18 | machinesToKill=10 19 | machinesToLeave=3 20 | reboot=true 21 | testDuration=10.0 22 | 23 | testName=Attrition 24 | machinesToKill=10 25 | machinesToLeave=3 26 | reboot=true 27 | testDuration=10.0 28 | -------------------------------------------------------------------------------- /tests/restarting/from_7.3.0/ConfigureStorageMigrationTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | 4 | [[test]] 5 | testTitle = 'CloggedConfigureDatabaseTest' 6 | runSetup=false 7 | waitForQuiescenceBegin=false 8 | 9 | [[test.workload]] 10 | testName = 'ConfigureDatabase' 11 | testDuration = 300.0 12 | waitStoreTypeCheck = true 13 | storageMigrationCompatibleConf = true 14 | 15 | [[test.workload]] 16 | testName = 'RandomClogging' 17 | testDuration = 300.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomClogging' 21 | testDuration = 300.0 22 | scale = 0.1 23 | clogginess = 2.0 -------------------------------------------------------------------------------- /contrib/stacktrace/stacktrace_internal/stacktrace_unimplemented-inl.inc: -------------------------------------------------------------------------------- 1 | #ifndef ABSL_DEBUGGING_INTERNAL_STACKTRACE_UNIMPLEMENTED_INL_H_ 2 | #define ABSL_DEBUGGING_INTERNAL_STACKTRACE_UNIMPLEMENTED_INL_H_ 3 | 4 | template 5 | static int UnwindImpl(void** /* result */, int* /* sizes */, 6 | int /* max_depth */, int /* skip_count */, 7 | const void* /* ucp */, int *min_dropped_frames) { 8 | if (min_dropped_frames != nullptr) { 9 | *min_dropped_frames = 0; 10 | } 11 | return 0; 12 | } 13 | 14 | #endif // ABSL_DEBUGGING_INTERNAL_STACKTRACE_UNIMPLEMENTED_INL_H_ 15 | -------------------------------------------------------------------------------- /tests/RandomReadWrite.txt: -------------------------------------------------------------------------------- 1 | ; This file is used by the Atlas Load Generator 2 | testTitle=RandomReadWriteTest 3 | testName=ReadWrite 4 | testDuration=600.0 5 | transactionsPerSecond=10000 6 | writesPerTransactionA=0 7 | readsPerTransactionA=10 8 | writesPerTransactionB=10 9 | readsPerTransactionB=1 10 | ; Fraction of transactions that will be of type B 11 | alpha=0.1 12 | ; Produces 12TB 13 | nodeCount=20000000000 14 | valueBytes=1000 15 | ; average 600 16 | minValueBytes=200 17 | discardEdgeMeasurements=false 18 | warmingDelay=20.0 19 | timeout=300000.0 20 | databasePingDelay=300000.0 21 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCancelTransactionDBPerTX.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Cancel Transaction with Database per Transaction' 3 | multiThreaded = true 4 | buggify = true 5 | databasePerTransaction = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[test.workload]] 16 | name = 'CancelTransaction' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | numRandomOperations = 100 24 | readExistingKeysRatio = 0.9 25 | -------------------------------------------------------------------------------- /flow/include/flow/Hash3.h: -------------------------------------------------------------------------------- 1 | #ifndef FLOW_HASH3_H 2 | #define FLOW_HASH3_H 3 | #pragma once 4 | 5 | #include 6 | #include 7 | 8 | // Prototypes for Bob Jenkins' "lookup3" hash 9 | // See Hash3.c for detailed documentation 10 | 11 | extern "C" { 12 | 13 | uint32_t hashlittle(const void* key, size_t length, uint32_t initval); 14 | 15 | void hashlittle2(const void* key, /* the key to hash */ 16 | size_t length, /* length of the key */ 17 | uint32_t* pc, /* IN: primary initval, OUT: primary hash */ 18 | uint32_t* pb); /* IN: secondary initval, OUT: secondary hash */ 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /tests/fast/IDDTxnProcessorRawStartMovement.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generateFearless = false # prevent generating remote dc because in MGS there's no region setting yet 3 | disableTss = true # There's no TSS in MGS this prevent the DD operate TSS mapping 4 | 5 | [[knobs]] 6 | max_added_sources_multiplier = 0 # set to 0 because it's impossible to make sure SS and mock SS will finish fetch keys at the same time. 7 | 8 | [[test]] 9 | testTitle = 'IDDTxnProcessorRawStartMovement' 10 | 11 | [[test.workload]] 12 | testName = 'IDDTxnProcessorApiCorrectness' 13 | testDuration = 50.0 14 | testStartOnly = true # only test startMovement implementation 15 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/ConfigureStorageMigrationTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | 4 | [[test]] 5 | testTitle = 'CloggedConfigureDatabaseTest' 6 | runSetup=false 7 | waitForQuiescenceBegin=false 8 | 9 | [[test.workload]] 10 | testName = 'ConfigureDatabase' 11 | testDuration = 300.0 12 | waitStoreTypeCheck = true 13 | storageMigrationCompatibleConf = true 14 | 15 | [[test.workload]] 16 | testName = 'RandomClogging' 17 | testDuration = 300.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomClogging' 21 | testDuration = 300.0 22 | scale = 0.1 23 | clogginess = 2.0 -------------------------------------------------------------------------------- /tests/restarting/from_7.2.0_until_7.3.0/ConfigureStorageMigrationTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | 4 | [[test]] 5 | testTitle = 'CloggedConfigureDatabaseTest' 6 | runSetup=false 7 | waitForQuiescenceBegin=false 8 | 9 | [[test.workload]] 10 | testName = 'ConfigureDatabase' 11 | testDuration = 300.0 12 | waitStoreTypeCheck = true 13 | storageMigrationCompatibleConf = true 14 | 15 | [[test.workload]] 16 | testName = 'RandomClogging' 17 | testDuration = 300.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomClogging' 21 | testDuration = 300.0 22 | scale = 0.1 23 | clogginess = 2.0 -------------------------------------------------------------------------------- /tests/slow/MetaclusterManagementConcurrency.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | allowCreatingTenants = false 5 | extraDatabaseMode = 'Multiple' 6 | extraDatabaseCount = 5 7 | 8 | [[test]] 9 | testTitle = 'MetaclusterManagementConcurrencyTest' 10 | clearAfterTest = true 11 | timeout = 2100 12 | runSetup = true 13 | 14 | [[test.workload]] 15 | testName = 'MetaclusterManagementConcurrency' 16 | testDuration = 30 17 | 18 | [[test.workload]] 19 | testName = 'TenantManagementConcurrency' 20 | useMetacluster = true 21 | createMetacluster = false 22 | testDuration = 30 23 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCorrectnessSingleThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'API Correctness Single Threaded' 3 | minClients = 1 4 | maxClients = 3 5 | multiThreaded = false 6 | 7 | [[test.workload]] 8 | name = 'ApiCorrectness' 9 | minKeyLength = 1 10 | maxKeyLength = 64 11 | minValueLength = 1 12 | maxValueLength = 1000 13 | maxKeysPerTransaction = 50 14 | initialSize = 100 15 | numRandomOperations = 100 16 | readExistingKeysRatio = 0.9 17 | 18 | [[test.workload]] 19 | name = 'AtomicOpsCorrectness' 20 | initialSize = 0 21 | numRandomOperations = 100 22 | 23 | [[test.workload]] 24 | name = 'WatchAndWait' 25 | initialSize = 0 26 | numRandomOperations = 10 27 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/upgrade/ApiBlobGranulesCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Mixed Workload for Upgrade Tests with a Multi-Threaded Client' 3 | multiThreaded = true 4 | buggify = true 5 | databasePerTransaction = false 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[test.workload]] 16 | name = 'ApiBlobGranuleCorrectness' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | runUntilStop = true -------------------------------------------------------------------------------- /tests/fast/MoveKeysCycle.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'MoveKeysCycle' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 2500.0 7 | testDuration = 10.0 8 | expectedRate = 0.025 9 | 10 | [[test.workload]] 11 | testName = 'RandomMoveKeys' 12 | testDuration = 10.0 13 | 14 | [[test.workload]] 15 | testName = 'Attrition' 16 | machinesToKill = 1 17 | machinesToLeave = 3 18 | reboot = true 19 | testDuration = 10.0 20 | 21 | [[test.workload]] 22 | testName = 'Attrition' 23 | machinesToKill = 1 24 | machinesToLeave = 3 25 | reboot = true 26 | testDuration = 10.0 27 | -------------------------------------------------------------------------------- /tests/slow/CloggedStorefront.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CloggedStorefrontTest' 3 | 4 | [[test.workload]] 5 | testName = 'Storefront' 6 | actorsPerClient = 20 7 | transactionsPerSecond = 200 8 | itemCount = 20000 9 | maxOrderSize = 6 10 | testDuration = 30.0 11 | 12 | [[test.workload]] 13 | testName = 'RandomClogging' 14 | testDuration = 30.0 15 | 16 | [[test.workload]] 17 | testName = 'RandomClogging' 18 | testDuration = 30.0 19 | scale = 0.1 20 | clogginess = 2.0 21 | 22 | [[test.workload]] 23 | testName = 'ChangeConfig' 24 | maxDelayBeforeChange = 30.0 25 | coordinators = 'auto' 26 | -------------------------------------------------------------------------------- /tests/slow/GcGenerations.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generateFearless = true 3 | processesPerMachine = 1 4 | machineCount = 20 5 | minimumRegions = 2 6 | coordinators = 1 7 | remoteConfig = 'remote_double' 8 | 9 | [[knobs]] 10 | max_write_transaction_life_versions = 5000000 11 | 12 | [[test]] 13 | testTitle = 'GcGenerations' 14 | 15 | [[test.knobs]] 16 | dbinfo_send_amount = 50 17 | 18 | [[test.workload]] 19 | testName = 'Cycle' 20 | nodeCount = 3000 21 | transactionsPerSecond = 250.0 22 | testDuration = 300.0 23 | expectedRate = 0 24 | 25 | [[test.workload]] 26 | testName = 'GcGenerations' 27 | testDuration = 1000.0 28 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCancelTransactionWithTimeout.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Cancel Transactions with Timeouts' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[test.workload]] 15 | name = 'CancelTransaction' 16 | minKeyLength = 1 17 | maxKeyLength = 64 18 | minValueLength = 1 19 | maxValueLength = 1000 20 | maxKeysPerTransaction = 50 21 | initialSize = 100 22 | numRandomOperations = 100 23 | readExistingKeysRatio = 0.9 24 | minTxTimeoutMs = 10 25 | maxTxTimeoutMs = 10000 26 | -------------------------------------------------------------------------------- /bindings/java/suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /contrib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(rapidjson INTERFACE) 2 | target_include_directories(rapidjson INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/rapidjson) 3 | 4 | add_subdirectory(crc32) 5 | add_subdirectory(stacktrace) 6 | add_subdirectory(folly_memcpy) 7 | add_subdirectory(rapidxml) 8 | add_subdirectory(sqlite) 9 | add_subdirectory(SimpleOpt) 10 | add_subdirectory(fmt-8.1.1) 11 | add_subdirectory(md5) 12 | add_subdirectory(libb64) 13 | if(NOT WIN32) 14 | add_subdirectory(linenoise) 15 | add_subdirectory(debug_determinism) 16 | add_subdirectory(monitoring) 17 | add_subdirectory(TraceLogHelper) 18 | add_subdirectory(TestHarness) 19 | endif() 20 | add_subdirectory(mockkms) 21 | -------------------------------------------------------------------------------- /tests/slow/MoveKeysClean.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'MoveKeysNew' 3 | 4 | [[test.workload]] 5 | testName = 'Sideband' 6 | testDuration = 300.0 7 | 8 | [[test.workload]] 9 | testName = 'RandomClogging' 10 | testDuration = 300.0 11 | scale = 0.5 12 | clogginess = 0.1 13 | 14 | [[test.workload]] 15 | testName = 'Rollback' 16 | testDuration = 300.0 17 | meanDelay = 150.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomMoveKeys' 21 | testDuration = 300.0 22 | meanDelay = 2 23 | 24 | [[test.workload]] 25 | testName = 'ChangeConfig' 26 | maxDelayBeforeChange = 300.0 27 | coordinators = 'auto' 28 | -------------------------------------------------------------------------------- /tests/AsyncFileRead.txt: -------------------------------------------------------------------------------- 1 | testTitle=AsyncFileReadTest 2 | useDB=false 3 | runSetup=true 4 | clearAfterTest=false 5 | 6 | testName=AsyncFileRead 7 | testDuration=36.0 8 | ;testDuration=36000.0 ;for a very long test 9 | numParallelReads=32 10 | readSize=4096 11 | unbufferedIO=true 12 | sequential=false 13 | fileName=testfile 14 | fileSize=1000000000 ;1GB 15 | ;fileSize=7000000000 ;7GB 16 | ;fileSize=100377287000 ;80% on 128GB drives 17 | ;fileSize=141774800000 ;80% on intel drive 18 | unbatched=true 19 | writeFraction=0.33 20 | uncachedIO=true 21 | fillRandom=true 22 | timeout=1000000000.0 23 | ;fixedRate=15000 24 | -------------------------------------------------------------------------------- /tests/rare/CycleRollbackClogged.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'RollbackCycleTest' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 2500.0 7 | testDuration = 30.0 8 | expectedRate = 0 9 | 10 | [[test.workload]] 11 | testName = 'Rollback' 12 | testDuration = 30.0 13 | meanDelay = 10 14 | 15 | [[test.workload]] 16 | testName = 'RandomClogging' 17 | testDuration = 30.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomClogging' 21 | testDuration = 30.0 22 | scale = 0.1 23 | clogginess = 2.0 24 | 25 | [[test.workload]] 26 | testName = 'Attrition' 27 | testDuration = 30.0 28 | -------------------------------------------------------------------------------- /tests/restarting/to_7.3.0/ConfigureStorageMigrationTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | allowDefaultTenant = false 4 | 5 | [[test]] 6 | testTitle = 'CloggedConfigureDatabaseTest' 7 | runSetup=false 8 | waitForQuiescenceBegin=false 9 | 10 | [[test.workload]] 11 | testName = 'ConfigureDatabase' 12 | testDuration = 300.0 13 | waitStoreTypeCheck = true 14 | storageMigrationCompatibleConf = true 15 | 16 | [[test.workload]] 17 | testName = 'RandomClogging' 18 | testDuration = 300.0 19 | 20 | [[test.workload]] 21 | testName = 'RandomClogging' 22 | testDuration = 300.0 23 | scale = 0.1 24 | clogginess = 2.0 -------------------------------------------------------------------------------- /tests/fast/LowLatency.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | minimumReplication = 2 4 | 5 | [[test]] 6 | testTitle = 'Clogged' 7 | connectionFailuresDisableDuration = 100000 8 | 9 | [[test.workload]] 10 | testName = 'Cycle' 11 | transactionsPerSecond = 1000.0 12 | testDuration = 30.0 13 | expectedRate = 0 14 | 15 | [[test.workload]] 16 | testName = 'LowLatency' 17 | testDuration = 30.0 18 | 19 | [[test.workload]] 20 | testName = 'Attrition' 21 | machinesToKill = 1 22 | machinesToLeave = 3 23 | reboot = true 24 | testDuration = 30.0 25 | waitForVersion = true 26 | allowFaultInjection = false 27 | killDc = false 28 | -------------------------------------------------------------------------------- /tests/rare/ReadSkewReadWrite.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'SkewedReadWriteTest' 3 | connectionFailuresDisableDuration = 100000 4 | # waitForQuiescenceBegin= false 5 | # waitForQuiescenceEnd=false 6 | clearAfterTest = true 7 | runSetup = true # false 8 | timeout = 3600.0 9 | 10 | [[test.workload]] 11 | testName = 'SkewedReadWrite' 12 | transactionsPerSecond = 100 13 | testDuration = 40.0 14 | skewRound = 1 15 | nodeCount = 3000 # 30000000 16 | valueBytes = 100 17 | readsPerTransactionA = 8 18 | writesPerTransactionA = 0 19 | alpha = 0 20 | discardEdgeMeasurements = false 21 | hotServerFraction = 0.2 22 | hotServerReadFrac = 0.8 23 | # hotServerShardFraction = 0.3 24 | warmingDelay = 180.0 25 | -------------------------------------------------------------------------------- /tests/restarting/to_7.1.0_until_7.2.0/ConfigureStorageMigrationTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | allowDefaultTenant = false 4 | 5 | [[test]] 6 | testTitle = 'CloggedConfigureDatabaseTest' 7 | runSetup=false 8 | waitForQuiescenceBegin=false 9 | 10 | [[test.workload]] 11 | testName = 'ConfigureDatabase' 12 | testDuration = 300.0 13 | waitStoreTypeCheck = true 14 | storageMigrationCompatibleConf = true 15 | 16 | [[test.workload]] 17 | testName = 'RandomClogging' 18 | testDuration = 300.0 19 | 20 | [[test.workload]] 21 | testName = 'RandomClogging' 22 | testDuration = 300.0 23 | scale = 0.1 24 | clogginess = 2.0 -------------------------------------------------------------------------------- /tests/restarting/to_7.2.0_until_7.3.0/ConfigureStorageMigrationTestRestart-2.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | allowDefaultTenant = false 4 | 5 | [[test]] 6 | testTitle = 'CloggedConfigureDatabaseTest' 7 | runSetup=false 8 | waitForQuiescenceBegin=false 9 | 10 | [[test.workload]] 11 | testName = 'ConfigureDatabase' 12 | testDuration = 300.0 13 | waitStoreTypeCheck = true 14 | storageMigrationCompatibleConf = true 15 | 16 | [[test.workload]] 17 | testName = 'RandomClogging' 18 | testDuration = 300.0 19 | 20 | [[test.workload]] 21 | testName = 'RandomClogging' 22 | testDuration = 300.0 23 | scale = 0.1 24 | clogginess = 2.0 -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiRunLoopProfiler.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Test run loop profiler' 3 | multiThreaded = true 4 | buggify = true 5 | runLoopProfiler = true 6 | minFdbThreads = 8 7 | maxFdbThreads = 8 8 | minDatabases = 8 9 | maxDatabases = 8 10 | minClientThreads = 16 11 | maxClientThreads = 16 12 | minClients = 32 13 | maxClients = 32 14 | 15 | [[test.workload]] 16 | name = 'ApiCorrectness' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | numRandomOperations = 100 24 | readExistingKeysRatio = 0.9 25 | 26 | [[knobs]] 27 | run_loop_profiling_interval=0.001 -------------------------------------------------------------------------------- /packaging/msi/generate_wxs.cmake: -------------------------------------------------------------------------------- 1 | string(REPLACE "/" "\\" fdbserver "${fdbserver}") 2 | string(REPLACE "/" "\\" fdbcli "${fdbcli}") 3 | string(REPLACE "/" "\\" fdbbackup "${fdbbackup}") 4 | string(REPLACE "/" "\\" fdbmonitor "${fdbmonitor}") 5 | string(REPLACE "/" "\\" fdbc "${fdbc}") 6 | string(REPLACE "dll" "lib" fdbc_lib "${fdbc}") 7 | string(REPLACE "/" "\\" SOURCE_ROOT "${SOURCE_ROOT}\\") 8 | string(REPLACE "/" "\\" BUILD_ROOT "${BUILD_ROOT}\\") 9 | string(REPLACE "/" "\\" CURRENT_SOURCE_DIR "${CURRENT_SOURCE_DIR}\\") 10 | message(STATUS "Configure WIX (from ${IN} to ${OUT}) with ${fdbserver} ${fdbcli} ${fdbbackup} ${fdbmonitor} ${fdbc}") 11 | configure_file(${IN} ${OUT} @ONLY NEWLINE_STYLE DOS) 12 | -------------------------------------------------------------------------------- /tests/restarting/from_7.2.0_until_7.3.0/ConfigureTestRestart-1.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | disableEncryption=true 3 | 4 | [[test]] 5 | testTitle='CloggedConfigureDatabaseTest' 6 | clearAfterTest=false 7 | 8 | [[test.workload]] 9 | testName='ConfigureDatabase' 10 | testDuration=30.0 11 | allowDescriptorChange=false 12 | 13 | [[test.workload]] 14 | testName='RandomClogging' 15 | testDuration=30.0 16 | 17 | [[test.workload]] 18 | testName='RandomClogging' 19 | testDuration=30.0 20 | scale=0.1 21 | clogginess=2.0 22 | 23 | [[test.workload]] 24 | testName='SaveAndKill' 25 | restartInfoLocation='simfdb/restartInfo.ini' 26 | testDuration=30.0 27 | -------------------------------------------------------------------------------- /tests/slow/ApiCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'ApiCorrectnessTest' 3 | clearAfterTest = true 4 | timeout = 2100 5 | runSetup = true 6 | 7 | [[test.workload]] 8 | testName = 'ApiCorrectness' 9 | numKeys = 5000 10 | onlyLowerCase = true 11 | shortKeysRatio = 0.5 12 | minShortKeyLength = 1 13 | maxShortKeyLength = 3 14 | minLongKeyLength = 1 15 | maxLongKeyLength = 128 16 | minValueLength = 1 17 | maxValueLength = 1000 18 | numGets = 1000 19 | numGetRanges = 100 20 | numGetRangeSelectors = 100 21 | numGetKeys = 100 22 | numClears = 100 23 | numClearRanges = 10 24 | maxTransactionBytes = 500000 25 | randomTestDuration = 60 26 | -------------------------------------------------------------------------------- /contrib/TestHarness2/test_harness/test_valgrind_parser.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from test_harness.valgrind import parse_valgrind_output 4 | from pathlib import Path 5 | 6 | 7 | if __name__ == '__main__': 8 | errors = parse_valgrind_output(Path(sys.argv[1])) 9 | for valgrind_error in errors: 10 | print('ValgrindError: what={}, kind={}'.format(valgrind_error.what.what, valgrind_error.kind)) 11 | print('Backtrace: {}'.format(valgrind_error.what.backtrace)) 12 | counter = 0 13 | for aux in valgrind_error.aux: 14 | print('Aux {}:'.format(counter)) 15 | print(' What: {}'.format(aux.what)) 16 | print(' Backtrace: {}'.format(aux.backtrace)) 17 | -------------------------------------------------------------------------------- /packaging/osx/com.foundationdb.fdbmonitor.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.foundationdb.fdbmonitor 7 | ProgramArguments 8 | 9 | /usr/local/libexec/fdbmonitor 10 | --conffile 11 | /usr/local/etc/foundationdb/foundationdb.conf 12 | --lockfile 13 | /var/run/FoundationDB.pid 14 | 15 | KeepAlive 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiTamperClusterFileTLS.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Test tampering the cluster file with TLS' 3 | multiThreaded = true 4 | buggify = true 5 | tamperClusterFile = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 4 8 | minDatabases = 2 9 | maxDatabases = 4 10 | minClientThreads = 2 11 | maxClientThreads = 4 12 | minClients = 2 13 | maxClients = 4 14 | 15 | [[server]] 16 | tls_enabled = true 17 | max_num_processes = 1 18 | 19 | [[test.workload]] 20 | name = 'ApiCorrectness' 21 | minKeyLength = 1 22 | maxKeyLength = 64 23 | minValueLength = 1 24 | maxValueLength = 1000 25 | maxKeysPerTransaction = 50 26 | initialSize = 100 27 | numRandomOperations = 100 28 | readExistingKeysRatio = 0.9 29 | -------------------------------------------------------------------------------- /fdbclient/azurestorage.cmake: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | 3 | project(azurestorage-download) 4 | 5 | include(ExternalProject) 6 | ExternalProject_Add(azurestorage 7 | GIT_REPOSITORY https://github.com/Azure/azure-storage-cpplite.git 8 | GIT_TAG 11e1f98b021446ef340f4886796899a6eb1ad9a5 # v0.3.0 9 | SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/azurestorage-src" 10 | BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/azurestorage-build" 11 | CMAKE_ARGS "-DCMAKE_BUILD_TYPE=Release" 12 | CONFIGURE_COMMAND "" 13 | BUILD_COMMAND "" 14 | INSTALL_COMMAND "" 15 | TEST_COMMAND "" 16 | BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/libazure-storage-lite.a" 17 | ) 18 | -------------------------------------------------------------------------------- /packaging/deb/DEBIAN-foundationdb-server/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | # summary of how this script can be called: 4 | # * `remove' 5 | # * `upgrade' 6 | # * `failed-upgrade' 7 | # * `remove' `in-favour' 8 | # * `deconfigure' `in-favour' 9 | # `removing' 10 | # 11 | # for details, see http://www.debian.org/doc/debian-policy/ or 12 | # the debian-policy package 13 | 14 | if [ "$1" = remove ] || [ "$1" = deconfigure ]; then 15 | invoke-rc.d foundationdb stop || : 16 | fi 17 | -------------------------------------------------------------------------------- /tests/slow/VersionStampBackupToDB.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = 'Single' 3 | # required tenant mode is not supported for Disaster Recovery yet 4 | tenantModes = ['disabled', 'optional'] 5 | 6 | [[test]] 7 | testTitle = 'VersionStampBackupToDB' 8 | simBackupAgents = 'BackupToDB' 9 | 10 | [[test.workload]] 11 | testName = 'VersionStamp' 12 | failIfDataLost = false 13 | validateExtraDB = true 14 | testDuration = 60.0 15 | 16 | [[test.workload]] 17 | testName = 'BackupToDBAbort' 18 | abortDelay = 40.0 19 | 20 | [[test.workload]] 21 | testName = 'Attrition' 22 | machinesToKill = 10 23 | machinesToLeave = 3 24 | reboot = true 25 | testDuration = 60.0 26 | -------------------------------------------------------------------------------- /tests/fast/BackupCorrectnessWithTenantDeletion.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['required'] 4 | allowCreatingTenants = false 5 | 6 | [[test]] 7 | testTitle = 'BackupAndRestoreWithTenantDeletion' 8 | clearAfterTest = false 9 | simBackupAgents = 'BackupToFile' 10 | 11 | [[test.workload]] 12 | testName = 'BulkLoadWithTenants' 13 | maxNumTenants = 100 14 | minNumTenants = 1 15 | deleteTenants = true 16 | transactionsPerSecond = 2500.0 17 | testDuration = 60.0 18 | 19 | [[test.workload]] 20 | testName = 'BackupAndRestoreCorrectness' 21 | defaultBackup = true 22 | backupAfter = 10.0 23 | restoreAfter = 100.0 24 | backupRangesCount = -1 25 | -------------------------------------------------------------------------------- /tests/slow/ddbalance.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'DDBalance_Test' 3 | 4 | [[test.workload]] 5 | testName = 'DDBalance' 6 | testDuration = 120.0 7 | transactionsPerSecond = 250.0 8 | binCount = 1000 9 | writesPerTransaction = 5 10 | keySpaceDriftFactor = 10 11 | moversPerClient = 10 12 | actorsPerClient = 100 13 | nodes = 100000 14 | 15 | [[test.workload]] 16 | testName = 'BackgroundSelector' 17 | testDuration = 120.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomClogging' 21 | testDuration = 120.0 22 | swizzle = 1 23 | 24 | [[test.workload]] 25 | testName = 'ChangeConfig' 26 | maxDelayBeforeChange = 120.0 27 | coordinators = 'auto' 28 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleTenantCorrectnessMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule API Tenant Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minClients = 1 8 | maxClients = 8 9 | minTenants = 1 10 | maxTenants = 5 11 | 12 | [[server]] 13 | blob_granules_enabled = true 14 | 15 | [[test.workload]] 16 | name = 'ApiBlobGranuleCorrectness' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | # TODO - increase initialSize and/or buggify down BG_SNAPSHOT_FILE_TARGET_BYTES to force multiple granules 23 | initialSize = 100 24 | numRandomOperations = 100 25 | -------------------------------------------------------------------------------- /fdbclient/CommitProxyInterface.cpp: -------------------------------------------------------------------------------- 1 | #include "fdbclient/CommitProxyInterface.h" 2 | #include "fdbclient/CoordinationInterface.h" 3 | #include "fdbclient/GetEncryptCipherKeys_impl.actor.h" 4 | 5 | // Instantiate ClientDBInfo related tempates 6 | template class ReplyPromise; 7 | template class ReplyPromise>; 8 | template class GetEncryptCipherKeys; 9 | 10 | // Instantiate OpenDatabaseCoordRequest related templates 11 | template struct NetNotifiedQueue; 12 | 13 | // Instantiate GetKeyServerLocationsReply related templates 14 | template class ReplyPromise; 15 | template struct NetSAV; -------------------------------------------------------------------------------- /tests/slow/LowLatencyWithFailures.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | minimumReplication = 2 3 | 4 | [[test]] 5 | testTitle = 'Clogged' 6 | connectionFailuresDisableDuration = 60 7 | 8 | [[test.workload]] 9 | testName = 'Cycle' 10 | transactionsPerSecond = 1000.0 11 | testDuration = 300.0 12 | expectedRate = 0 13 | 14 | [[test.workload]] 15 | testName = 'LowLatency' 16 | testDuration = 300.0 17 | maxGRVLatency = 50.0 18 | testWrites = false 19 | 20 | [[test.workload]] 21 | testName = 'Attrition' 22 | machinesToKill = 1 23 | machinesToLeave = 3 24 | reboot = true 25 | testDuration = 300.0 26 | waitForVersion = true 27 | allowFaultInjection = false 28 | killDc = false 29 | -------------------------------------------------------------------------------- /tests/fast/StreamingRangeRead.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'StreamingRangeReadTest' 3 | 4 | [[test.workload]] 5 | testName = 'StreamingRangeRead' 6 | testDuration = 60.0 7 | 8 | [[test.workload]] 9 | testName = 'RandomClogging' 10 | testDuration = 60.0 11 | 12 | [[test.workload]] 13 | testName = 'Rollback' 14 | meanDelay = 60.0 15 | testDuration = 60.0 16 | 17 | [[test.workload]] 18 | testName = 'Attrition' 19 | machinesToKill = 10 20 | machinesToLeave = 3 21 | reboot = true 22 | testDuration = 60.0 23 | 24 | [[test.workload]] 25 | testName = 'Attrition' 26 | machinesToKill = 10 27 | machinesToLeave = 3 28 | reboot = true 29 | testDuration = 60.0 30 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCorrectnessDisableBypass.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'API Correctness Single Threaded' 3 | minClients = 1 4 | maxClients = 3 5 | minDatabases = 1 6 | maxDatabases = 3 7 | multiThreaded = false 8 | disableClientBypass = true 9 | 10 | [[test.workload]] 11 | name = 'ApiCorrectness' 12 | minKeyLength = 1 13 | maxKeyLength = 64 14 | minValueLength = 1 15 | maxValueLength = 1000 16 | maxKeysPerTransaction = 50 17 | initialSize = 100 18 | numRandomOperations = 100 19 | readExistingKeysRatio = 0.9 20 | 21 | [[test.workload]] 22 | name = 'AtomicOpsCorrectness' 23 | initialSize = 0 24 | numRandomOperations = 100 25 | 26 | [[test.workload]] 27 | name = 'WatchAndWait' 28 | initialSize = 0 29 | numRandomOperations = 10 30 | -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13/ClientTransactionProfilingCorrectness-2.txt: -------------------------------------------------------------------------------- 1 | testTitle=ClientTransactionProfilingCorrectness 2 | clearAfterTest=true 3 | timeout=2100 4 | runSetup=true 5 | 6 | testName=ApiCorrectness 7 | numKeys=5000 8 | onlyLowerCase=true 9 | shortKeysRatio=0.5 10 | minShortKeyLength=1 11 | maxShortKeyLength=3 12 | minLongKeyLength=1 13 | maxLongKeyLength=128 14 | minValueLength=1 15 | maxValueLength=1000 16 | numGets=1000 17 | numGetRanges=100 18 | numGetRangeSelectors=100 19 | numGetKeys=100 20 | numClears=100 21 | numClearRanges=10 22 | maxTransactionBytes=500000 23 | randomTestDuration=60 24 | 25 | testName=ClientTransactionProfileCorrectness 26 | 27 | -------------------------------------------------------------------------------- /tests/slow/VersionStampSwitchover.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = 'Single' 3 | # required tenant mode is not supported for Disaster Recovery yet 4 | tenantModes = ['disabled', 'optional'] 5 | 6 | [[test]] 7 | testTitle = 'VersionStampCorrectnessTest' 8 | clearAfterTest = false 9 | simBackupAgents = 'BackupToDB' 10 | 11 | [[test.workload]] 12 | testName = 'VersionStamp' 13 | testDuration = 60.0 14 | 15 | [[test.workload]] 16 | testName = 'AtomicSwitchover' 17 | switch1delay = 20.0 18 | switch2delay = 20.0 19 | stopDelay = 20.0 20 | 21 | [[test.workload]] 22 | testName = 'Attrition' 23 | machinesToKill = 10 24 | machinesToLeave = 3 25 | reboot = true 26 | testDuration = 60.0 27 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCancelTransactionDBPerTX_TLS.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Cancel Transaction with Database per Transaction with TLS' 3 | multiThreaded = true 4 | buggify = true 5 | databasePerTransaction = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[server]] 16 | tls_enabled = true 17 | max_num_processes = 1 18 | 19 | [[test.workload]] 20 | name = 'CancelTransaction' 21 | minKeyLength = 1 22 | maxKeyLength = 64 23 | minValueLength = 1 24 | maxValueLength = 1000 25 | maxKeysPerTransaction = 50 26 | initialSize = 100 27 | numRandomOperations = 100 28 | readExistingKeysRatio = 0.9 29 | -------------------------------------------------------------------------------- /tests/slow/BlobGranuleVerifyLargeClean.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | blobGranulesEnabled = true 3 | allowDefaultTenant = false 4 | 5 | [[test]] 6 | testTitle = 'BlobGranuleVerifyLargeClean' 7 | 8 | [[test.workload]] 9 | testName = 'ReadWrite' 10 | testDuration = 120.0 11 | transactionsPerSecond = 200 12 | writesPerTransactionA = 5 13 | readsPerTransactionA = 1 14 | writesPerTransactionB = 10 15 | readsPerTransactionB = 1 16 | alpha = 0.5 17 | nodeCount = 2000000 18 | valueBytes = 128 19 | discardEdgeMeasurements = false 20 | warmingDelay = 10.0 21 | setup = false 22 | 23 | [[test.workload]] 24 | testName = 'BlobGranuleVerifier' 25 | testDuration = 120.0 26 | enablePurging = false 27 | -------------------------------------------------------------------------------- /tests/fast/Sideband.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CausalConsistencyTest' 3 | 4 | [[test.workload]] 5 | testName = 'Sideband' 6 | testDuration = 30.0 7 | operationsPerSecond = 500 8 | 9 | [[test.workload]] 10 | testName = 'RandomClogging' 11 | testDuration = 30.0 12 | 13 | [[test.workload]] 14 | testName = 'Rollback' 15 | meanDelay = 10.0 16 | testDuration = 30.0 17 | 18 | [[test.workload]] 19 | testName = 'Attrition' 20 | machinesToKill = 10 21 | machinesToLeave = 3 22 | reboot = true 23 | testDuration = 30.0 24 | 25 | [[test.workload]] 26 | testName = 'Attrition' 27 | machinesToKill = 10 28 | machinesToLeave = 3 29 | reboot = true 30 | testDuration = 30.0 31 | -------------------------------------------------------------------------------- /tests/rare/LargeApiCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'ApiCorrectnessTest' 3 | clearAfterTest = true 4 | timeout = 2100 5 | connectionFailuresDisableDuration = 100000 6 | runSetup = true 7 | 8 | [[test.workload]] 9 | testName = 'ApiCorrectness' 10 | numKeys = 3000 11 | onlyLowerCase = true 12 | shortKeysRatio = 0.5 13 | minShortKeyLength = 1 14 | maxShortKeyLength = 3 15 | minLongKeyLength = 1 16 | maxLongKeyLength = 128 17 | minValueLength = 1 18 | maxValueLength = 5000 19 | numGets = 400 20 | numGetRanges = 40 21 | numGetRangeSelectors = 40 22 | numGetKeys = 40 23 | numClears = 40 24 | numClearRanges = 10 25 | maxTransactionBytes = 5000000 26 | randomTestDuration = 60 27 | -------------------------------------------------------------------------------- /tests/restarting/from_5.2.0_until_6.3.0/ClientTransactionProfilingCorrectness-2.txt: -------------------------------------------------------------------------------- 1 | testTitle=ClientTransactionProfilingCorrectness 2 | clearAfterTest=true 3 | timeout=2100 4 | runSetup=true 5 | 6 | testName=ApiCorrectness 7 | numKeys=5000 8 | onlyLowerCase=true 9 | shortKeysRatio=0.5 10 | minShortKeyLength=1 11 | maxShortKeyLength=3 12 | minLongKeyLength=1 13 | maxLongKeyLength=128 14 | minValueLength=1 15 | maxValueLength=1000 16 | numGets=1000 17 | numGetRanges=100 18 | numGetRangeSelectors=100 19 | numGetKeys=100 20 | numClears=100 21 | numClearRanges=10 22 | maxTransactionBytes=500000 23 | randomTestDuration=60 24 | 25 | testName=ClientTransactionProfileCorrectness 26 | 27 | -------------------------------------------------------------------------------- /tests/slow/DiskFailureCycle.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | buggify = false 3 | minimumReplication = 3 4 | minimumRegions = 3 5 | logAntiQuorum = 0 6 | storageEngineExcludeTypes = [1, 2, 4, 5] 7 | disableRemoteKVS = true 8 | 9 | [[test]] 10 | testTitle = 'DiskFailureCycle' 11 | 12 | [[test.workload]] 13 | testName = 'Cycle' 14 | transactionsPerSecond = 2500.0 15 | testDuration = 30.0 16 | expectedRate = 0 17 | 18 | [[test.workload]] 19 | testName = 'DiskFailureInjection' 20 | testDuration = 120.0 21 | verificationMode = true 22 | startDelay = 3.0 23 | throttleDisk = true 24 | stallInterval = 5.0 25 | stallPeriod = 5.0 26 | throttlePeriod = 30.0 27 | corruptFile = true 28 | percentBitFlips = 10 29 | -------------------------------------------------------------------------------- /tests/restarting/from_7.3.0/ConfigureStorageMigrationTestRestart-1.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | 4 | [[test]] 5 | testTitle = 'CloggedConfigureDatabaseTest' 6 | clearAfterTest = false 7 | 8 | [[test.workload]] 9 | testName = 'ConfigureDatabase' 10 | testDuration = 30.0 11 | allowTestStorageMigration = true 12 | allowDescriptorChange = false 13 | 14 | [[test.workload]] 15 | testName = 'RandomClogging' 16 | testDuration = 30.0 17 | 18 | [[test.workload]] 19 | testName = 'RandomClogging' 20 | testDuration = 30.0 21 | scale = 0.1 22 | clogginess = 2.0 23 | 24 | [[test.workload]] 25 | testName='SaveAndKill' 26 | restartInfoLocation='simfdb/restartInfo.ini' 27 | testDuration=30.0 -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleCorrectnessMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule API Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[server]] 15 | blob_granules_enabled = true 16 | 17 | [[test.workload]] 18 | name = 'ApiBlobGranuleCorrectness' 19 | minKeyLength = 1 20 | maxKeyLength = 64 21 | minValueLength = 1 22 | maxValueLength = 1000 23 | maxKeysPerTransaction = 50 24 | # TODO - increase initialSize and/or buggify down BG_SNAPSHOT_FILE_TARGET_BYTES to force multiple granules 25 | initialSize = 100 26 | numRandomOperations = 100 27 | -------------------------------------------------------------------------------- /cmake/GetMsgpack.cmake: -------------------------------------------------------------------------------- 1 | find_package(msgpack 3.3.0 EXACT QUIET CONFIG) 2 | 3 | add_library(msgpack INTERFACE) 4 | 5 | if(msgpack_FOUND) 6 | target_link_libraries(msgpack INTERFACE msgpackc-cxx) 7 | else() 8 | include(ExternalProject) 9 | ExternalProject_add(msgpackProject 10 | URL "https://github.com/msgpack/msgpack-c/releases/download/cpp-3.3.0/msgpack-3.3.0.tar.gz" 11 | URL_HASH SHA256=6e114d12a5ddb8cb11f669f83f32246e484a8addd0ce93f274996f1941c1f07b 12 | CONFIGURE_COMMAND "" 13 | BUILD_COMMAND "" 14 | INSTALL_COMMAND "" 15 | ) 16 | 17 | ExternalProject_Get_property(msgpackProject SOURCE_DIR) 18 | target_include_directories(msgpack SYSTEM INTERFACE "${SOURCE_DIR}/include") 19 | add_dependencies(msgpack msgpackProject) 20 | endif() 21 | -------------------------------------------------------------------------------- /contrib/Joshua/scripts/bindingTimeout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -u 2 | 3 | # Look for the start cluster log file. 4 | notstarted=0 5 | for file in `find . -name startcluster.log` ; do 6 | if [ -n "$(grep 'Could not create database' "${file}")" ] ; then 7 | echo "${file}:" 8 | cat "${file}" 9 | echo 10 | notstarted=1 11 | fi 12 | done 13 | 14 | # Print information on how the server didn't start. 15 | if [ "${notstarted}" -gt 0 ] ; then 16 | for file in `find . -name fdbclient.log` ; do 17 | echo "${file}:" 18 | cat "${file}" 19 | echo 20 | done 21 | fi 22 | 23 | # Print the test output. 24 | for file in `find . -name console.log` ; do 25 | echo "${file}:" 26 | cat "${file}" 27 | echo 28 | done 29 | -------------------------------------------------------------------------------- /tests/restarting/from_5.0.0_until_6.3.0/CycleTestRestart-1.txt: -------------------------------------------------------------------------------- 1 | testTitle=Clogged 2 | clearAfterTest=false 3 | 4 | testName=Cycle 5 | transactionsPerSecond=500.0 6 | nodeCount=2500 7 | testDuration=10.0 8 | expectedRate=0 9 | 10 | testName=RandomClogging 11 | testDuration=10.0 12 | 13 | testName=Rollback 14 | meanDelay=10.0 15 | testDuration=10.0 16 | 17 | testName=Attrition 18 | machinesToKill=10 19 | machinesToLeave=3 20 | reboot=true 21 | testDuration=10.0 22 | 23 | testName=Attrition 24 | machinesToKill=10 25 | machinesToLeave=3 26 | reboot=true 27 | testDuration=10.0 28 | 29 | testName=SaveAndKill 30 | restartInfoLocation=simfdb/restartInfo.ini 31 | testDuration=10.0 32 | -------------------------------------------------------------------------------- /tests/restarting/from_7.1.0_until_7.2.0/ConfigureStorageMigrationTestRestart-1.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | 4 | [[test]] 5 | testTitle = 'CloggedConfigureDatabaseTest' 6 | clearAfterTest = false 7 | 8 | [[test.workload]] 9 | testName = 'ConfigureDatabase' 10 | testDuration = 30.0 11 | allowTestStorageMigration = true 12 | allowDescriptorChange = false 13 | 14 | [[test.workload]] 15 | testName = 'RandomClogging' 16 | testDuration = 30.0 17 | 18 | [[test.workload]] 19 | testName = 'RandomClogging' 20 | testDuration = 30.0 21 | scale = 0.1 22 | clogginess = 2.0 23 | 24 | [[test.workload]] 25 | testName='SaveAndKill' 26 | restartInfoLocation='simfdb/restartInfo.ini' 27 | testDuration=30.0 -------------------------------------------------------------------------------- /contrib/Implib.so/.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | 3 | disable = trailing-whitespace, # In copyrights 4 | invalid-name, # Short variables like 'v' 5 | unused-wildcard-import, # For 'from ... import ...' 6 | fixme, # TODO/FIXME 7 | unspecified-encoding, # Rely on default UTF-8 8 | unused-argument, # Intentional 9 | too-many-locals, too-many-branches, too-many-boolean-expressions, too-many-statements, 10 | too-few-public-methods, 11 | 12 | [FORMAT] 13 | 14 | indent-string = ' ' 15 | indent-after-paren = 2 16 | 17 | [IMPORT] 18 | 19 | allow-wildcard-with-all = yes 20 | 21 | [TYPECHECK] 22 | 23 | disable = bad-option-value # C0209 is unsupported in older versions 24 | -------------------------------------------------------------------------------- /tests/fast/BackupCorrectnessWithEKPKeyFetchFailures.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['required'] 4 | allowCreatingTenants = false 5 | encryptModes = ['domain_aware'] 6 | 7 | [[test]] 8 | testTitle = 'BackupAndRestoreWithEKPKeyFetchFailures' 9 | clearAfterTest = false 10 | simBackupAgents = 'BackupToFile' 11 | 12 | [[test.workload]] 13 | testName = 'BulkLoadWithTenants' 14 | maxNumTenants = 100 15 | minNumTenants = 1 16 | enableEKPKeyFetchFailure = true 17 | transactionsPerSecond = 2500.0 18 | testDuration = 60.0 19 | 20 | [[test.workload]] 21 | testName = 'BackupAndRestoreCorrectness' 22 | defaultBackup = true 23 | backupAfter = 10.0 24 | restoreAfter = 100.0 25 | backupRangesCount = -1 26 | -------------------------------------------------------------------------------- /tests/fast/SidebandSingle.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'SingleClientCausalConsistencyTest' 3 | 4 | [[test.workload]] 5 | testName = 'SidebandSingle' 6 | testDuration = 30.0 7 | operationsPerSecond = 500 8 | 9 | [[test.workload]] 10 | testName = 'RandomClogging' 11 | testDuration = 30.0 12 | 13 | [[test.workload]] 14 | testName = 'Rollback' 15 | meanDelay = 10.0 16 | testDuration = 30.0 17 | 18 | [[test.workload]] 19 | testName = 'Attrition' 20 | machinesToKill = 10 21 | machinesToLeave = 3 22 | reboot = true 23 | testDuration = 30.0 24 | 25 | [[test.workload]] 26 | testName = 'Attrition' 27 | machinesToKill = 10 28 | machinesToLeave = 3 29 | reboot = true 30 | testDuration = 30.0 31 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleTenantEncryptionCorrectnessMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule API Tenant Encryption Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minClients = 1 8 | maxClients = 8 9 | minTenants = 1 10 | maxTenants = 5 11 | 12 | [[server]] 13 | blob_granules_enabled = true 14 | enable_encryption_at_rest = true 15 | 16 | [[test.workload]] 17 | name = 'ApiBlobGranuleCorrectness' 18 | minKeyLength = 1 19 | maxKeyLength = 64 20 | minValueLength = 1 21 | maxValueLength = 1000 22 | maxKeysPerTransaction = 50 23 | # TODO - increase initialSize and/or buggify down BG_SNAPSHOT_FILE_TARGET_BYTES to force multiple granules 24 | initialSize = 100 25 | numRandomOperations = 100 26 | -------------------------------------------------------------------------------- /contrib/libb64/include/libb64/cdecode.h: -------------------------------------------------------------------------------- 1 | /* 2 | cdecode.h - c header for a base64 decoding algorithm 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CDECODE_H 9 | #define BASE64_CDECODE_H 10 | 11 | typedef enum { step_a, step_b, step_c, step_d } base64_decodestep; 12 | 13 | typedef struct { 14 | base64_decodestep step; 15 | char plainchar; 16 | } base64_decodestate; 17 | 18 | void base64_init_decodestate(base64_decodestate* state_in); 19 | 20 | int base64_decode_value(int value_in); 21 | 22 | int base64_decode_block(const char* code_in, const int length_in, char* plaintext_out, base64_decodestate* state_in); 23 | 24 | #endif /* BASE64_CDECODE_H */ 25 | -------------------------------------------------------------------------------- /tests/fast/WriteDuringRead.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | StderrSeverity = 30 3 | 4 | [[test]] 5 | testTitle = 'WriteDuringReadTest' 6 | 7 | [[test.workload]] 8 | testName = 'WriteDuringRead' 9 | testDuration = 30.0 10 | 11 | [[test.workload]] 12 | testName = 'RandomClogging' 13 | testDuration = 30.0 14 | 15 | [[test.workload]] 16 | testName = 'Rollback' 17 | meanDelay = 30.0 18 | testDuration = 30.0 19 | 20 | [[test.workload]] 21 | testName = 'Attrition' 22 | machinesToKill = 10 23 | machinesToLeave = 3 24 | reboot = true 25 | testDuration = 30.0 26 | 27 | [[test.workload]] 28 | testName = 'Attrition' 29 | machinesToKill = 10 30 | machinesToLeave = 3 31 | reboot = true 32 | testDuration = 30.0 33 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleCorrectnessBlocking.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob GranuleAPI Correctness Blocking' 3 | multiThreaded = true 4 | buggify = true 5 | blockOnFutures = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[server]] 16 | blob_granules_enabled = true 17 | 18 | [[test.workload]] 19 | name = 'ApiBlobGranuleCorrectness' 20 | minKeyLength = 1 21 | maxKeyLength = 64 22 | minValueLength = 1 23 | maxValueLength = 1000 24 | maxKeysPerTransaction = 50 25 | # TODO - increase initialSize and/or buggify down BG_SNAPSHOT_FILE_TARGET_BYTES to force multiple granules 26 | initialSize = 100 27 | numRandomOperations = 100 28 | -------------------------------------------------------------------------------- /tests/fast/CloggedSideband.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CloggedCausalConsistencyTest' 3 | 4 | [[test.workload]] 5 | testName = 'Sideband' 6 | testDuration = 30.0 7 | operationsPerSecond = 500 8 | 9 | [[test.workload]] 10 | testName = 'RandomClogging' 11 | testDuration = 30.0 12 | 13 | [[test.workload]] 14 | testName = 'RandomClogging' 15 | testDuration = 30.0 16 | scale = 0.1 17 | clogginess = 2.0 18 | 19 | [[test.workload]] 20 | testName = 'Attrition' 21 | machinesToKill = 10 22 | machinesToLeave = 3 23 | reboot = true 24 | testDuration = 30.0 25 | 26 | [[test.workload]] 27 | testName = 'Attrition' 28 | machinesToKill = 10 29 | machinesToLeave = 3 30 | reboot = true 31 | testDuration = 30.0 32 | -------------------------------------------------------------------------------- /tests/restarting/from_6.3.13/CycleTestRestart-1.txt: -------------------------------------------------------------------------------- 1 | storageEngineExcludeTypes=3 2 | testTitle=Clogged 3 | clearAfterTest=false 4 | 5 | testName=Cycle 6 | transactionsPerSecond=500.0 7 | nodeCount=2500 8 | testDuration=10.0 9 | expectedRate=0 10 | 11 | testName=RandomClogging 12 | testDuration=10.0 13 | 14 | testName=Rollback 15 | meanDelay=10.0 16 | testDuration=10.0 17 | 18 | testName=Attrition 19 | machinesToKill=10 20 | machinesToLeave=3 21 | reboot=true 22 | testDuration=10.0 23 | 24 | testName=Attrition 25 | machinesToKill=10 26 | machinesToLeave=3 27 | reboot=true 28 | testDuration=10.0 29 | 30 | testName=SaveAndKill 31 | restartInfoLocation=simfdb/restartInfo.ini 32 | testDuration=10.0 33 | -------------------------------------------------------------------------------- /bindings/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # __init__.py 3 | # 4 | # This source file is part of the FoundationDB open source project 5 | # 6 | # Copyright 2013-2018 Apple Inc. and the FoundationDB project authors 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | -------------------------------------------------------------------------------- /tests/restarting/from_7.2.0_until_7.3.0/ConfigureStorageMigrationTestRestart-1.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraMachineCountDC = 2 3 | disableEncryption = true 4 | 5 | [[test]] 6 | testTitle = 'CloggedConfigureDatabaseTest' 7 | clearAfterTest = false 8 | 9 | [[test.workload]] 10 | testName = 'ConfigureDatabase' 11 | testDuration = 30.0 12 | allowTestStorageMigration = true 13 | allowDescriptorChange = false 14 | 15 | [[test.workload]] 16 | testName = 'RandomClogging' 17 | testDuration = 30.0 18 | 19 | [[test.workload]] 20 | testName = 'RandomClogging' 21 | testDuration = 30.0 22 | scale = 0.1 23 | clogginess = 2.0 24 | 25 | [[test.workload]] 26 | testName='SaveAndKill' 27 | restartInfoLocation='simfdb/restartInfo.ini' 28 | testDuration=30.0 -------------------------------------------------------------------------------- /contrib/TraceLogHelper/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SRCS 2 | Event.cs 3 | JsonParser.cs 4 | Properties/AssemblyInfo.cs 5 | TraceLogUtil.cs 6 | XmlParser.cs) 7 | 8 | set(TRACE_LOG_HELPER_REFERENCES 9 | "-r:System,System.Core,System.Runtime.Serialization,System.Xml.Linq,System.Data.DataSetExtensions,Microsoft.CSharp,System.Data,System.Xml") 10 | 11 | 12 | set(out_file ${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll) 13 | 14 | add_custom_command(OUTPUT ${out_file} 15 | COMMAND ${MCS_EXECUTABLE} ARGS ${TRACE_LOG_HELPER_REFERENCES} ${SRCS} "-target:library" "-out:${out_file}" 16 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 17 | DEPENDS ${SRCS} 18 | COMMENT "Compile TraceLogHelper" VERBATIM) 19 | add_custom_target(TraceLogHelper DEPENDS ${out_file}) 20 | set(TraceLogHelperDll "${out_file}" PARENT_SCOPE) 21 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCorrectnessMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'API Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[test.workload]] 15 | name = 'ApiCorrectness' 16 | minKeyLength = 1 17 | maxKeyLength = 64 18 | minValueLength = 1 19 | maxValueLength = 1000 20 | maxKeysPerTransaction = 50 21 | initialSize = 100 22 | numRandomOperations = 100 23 | readExistingKeysRatio = 0.9 24 | 25 | [[test.workload]] 26 | name = 'AtomicOpsCorrectness' 27 | initialSize = 0 28 | numRandomOperations = 100 29 | 30 | [[test.workload]] 31 | name = 'WatchAndWait' 32 | initialSize = 0 33 | numRandomOperations = 10 34 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCorrectnessWithTimeout.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'API Correctness with Timeouts' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[test.workload]] 15 | name = 'ApiCorrectness' 16 | minKeyLength = 1 17 | maxKeyLength = 64 18 | minValueLength = 1 19 | maxValueLength = 1000 20 | maxKeysPerTransaction = 50 21 | initialSize = 100 22 | numRandomOperations = 100 23 | readExistingKeysRatio = 0.9 24 | minTxTimeoutMs = 100 25 | maxTxTimeoutMs = 10000 26 | 27 | [[test.workload]] 28 | name = 'AtomicOpsCorrectness' 29 | initialSize = 0 30 | numRandomOperations = 100 31 | minTxTimeoutMs = 100 32 | maxTxTimeoutMs = 10000 33 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiBlobGranuleEncryptionCorrectnessMultiThr.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'Blob Granule API Encryption Correctness Multi Threaded' 3 | multiThreaded = true 4 | buggify = true 5 | minFdbThreads = 2 6 | maxFdbThreads = 8 7 | minDatabases = 2 8 | maxDatabases = 8 9 | minClientThreads = 2 10 | maxClientThreads = 8 11 | minClients = 2 12 | maxClients = 8 13 | 14 | [[server]] 15 | blob_granules_enabled = true 16 | enable_encryption_at_rest = true 17 | 18 | [[test.workload]] 19 | name = 'ApiBlobGranuleCorrectness' 20 | minKeyLength = 1 21 | maxKeyLength = 64 22 | minValueLength = 1 23 | maxValueLength = 1000 24 | maxKeysPerTransaction = 50 25 | # TODO - increase initialSize and/or buggify down BG_SNAPSHOT_FILE_TARGET_BYTES to force multiple granules 26 | initialSize = 100 27 | numRandomOperations = 100 28 | -------------------------------------------------------------------------------- /tests/restarting/from_7.3.0/DrUpgradeRestart-1.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = "Local" 3 | # In 7.2, DR is not supported in required tenant mode 4 | allowDefaultTenant = false 5 | encryptModes = ['disabled'] 6 | 7 | [[test]] 8 | testTitle = "DrUpgrade" 9 | clearAfterTest = false 10 | simBackupAgents = "BackupToDB" 11 | 12 | [[test.workload]] 13 | testName = "Cycle" 14 | nodeCount = 30000 15 | transactionsPerSecond = 2500.0 16 | testDuration = 30.0 17 | expectedRate = 0 18 | 19 | [[test.workload]] 20 | testName = "BackupToDBUpgrade" 21 | backupAfter = 10.0 22 | stopDifferentialAfter = 50.0 23 | backupRangesCount = -1 24 | 25 | [[test.workload]] 26 | testName = "SaveAndKill" 27 | restartInfoLocation = "simfdb/restartInfo.ini" 28 | testDuration = 40.0 29 | -------------------------------------------------------------------------------- /tests/slow/SwizzledCycleTest.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'SwizzledCycleTest' 3 | 4 | [[test.workload]] 5 | testName = 'Cycle' 6 | transactionsPerSecond = 5000.0 7 | testDuration = 30.0 8 | expectedRate = 0.01 9 | 10 | [[test.workload]] 11 | testName = 'RandomClogging' 12 | testDuration = 30.0 13 | swizzle = 1 14 | 15 | [[test.workload]] 16 | testName = 'Attrition' 17 | machinesToKill = 10 18 | machinesToLeave = 3 19 | reboot = true 20 | testDuration = 30.0 21 | 22 | [[test.workload]] 23 | testName = 'Attrition' 24 | machinesToKill = 10 25 | machinesToLeave = 3 26 | reboot = true 27 | testDuration = 30.0 28 | 29 | [[test.workload]] 30 | testName = 'ChangeConfig' 31 | maxDelayBeforeChange = 30.0 32 | coordinators = 'auto' 33 | -------------------------------------------------------------------------------- /tests/rare/TransactionTagApiCorrectness.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'TransactionTagWithApiCorrectness' 3 | clearAfterTest = true 4 | timeout = 2100 5 | runSetup = true 6 | 7 | [[test.workload]] 8 | testName = 'ApiCorrectness' 9 | numKeys = 5000 10 | onlyLowerCase = true 11 | shortKeysRatio = 0.5 12 | minShortKeyLength = 1 13 | maxShortKeyLength = 3 14 | minLongKeyLength = 1 15 | maxLongKeyLength = 128 16 | minValueLength = 1 17 | maxValueLength = 1000 18 | numGets = 1000 19 | numGetRanges = 100 20 | numGetRangeSelectors = 100 21 | numGetKeys = 100 22 | numClears = 100 23 | numClearRanges = 10 24 | maxTransactionBytes = 500000 25 | randomTestDuration = 120 26 | 27 | [[test.workload]] 28 | testName = 'TagThrottleApi' 29 | testDuration = 120 30 | -------------------------------------------------------------------------------- /tests/restarting/from_7.2.0_until_7.3.0/DrUpgradeRestart-1.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | extraDatabaseMode = "Local" 3 | disableEncryption = true 4 | # In 7.2, DR is not supported in required tenant mode 5 | allowDefaultTenant = false 6 | 7 | [[test]] 8 | testTitle = "DrUpgrade" 9 | clearAfterTest = false 10 | simBackupAgents = "BackupToDB" 11 | 12 | [[test.workload]] 13 | testName = "Cycle" 14 | nodeCount = 30000 15 | transactionsPerSecond = 2500.0 16 | testDuration = 30.0 17 | expectedRate = 0 18 | 19 | [[test.workload]] 20 | testName = "BackupToDBUpgrade" 21 | backupAfter = 10.0 22 | stopDifferentialAfter = 50.0 23 | backupRangesCount = -1 24 | 25 | [[test.workload]] 26 | testName = "SaveAndKill" 27 | restartInfoLocation = "simfdb/restartInfo.ini" 28 | testDuration = 40.0 29 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCorrectnessBlocking.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'API Correctness Blocking' 3 | multiThreaded = true 4 | buggify = true 5 | blockOnFutures = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[test.workload]] 16 | name = 'ApiCorrectness' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | numRandomOperations = 100 24 | readExistingKeysRatio = 0.9 25 | 26 | [[test.workload]] 27 | name = 'AtomicOpsCorrectness' 28 | initialSize = 0 29 | numRandomOperations = 100 30 | 31 | [[test.workload]] 32 | name = 'WatchAndWait' 33 | initialSize = 0 34 | numRandomOperations = 10 35 | -------------------------------------------------------------------------------- /tests/fast/ChangeFeedOperations.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | testClass = "ChangeFeeds" 4 | 5 | [[test]] 6 | testTitle = 'ChangeFeedOperationsTest' 7 | 8 | [[test.workload]] 9 | testName = 'ChangeFeedOperations' 10 | testDuration = 60.0 11 | 12 | [[test.workload]] 13 | testName = 'RandomClogging' 14 | testDuration = 60.0 15 | 16 | [[test.workload]] 17 | testName = 'Rollback' 18 | meanDelay = 30.0 19 | testDuration = 60.0 20 | 21 | [[test.workload]] 22 | testName = 'Attrition' 23 | machinesToKill = 10 24 | machinesToLeave = 3 25 | reboot = true 26 | testDuration = 60.0 27 | 28 | [[test.workload]] 29 | testName = 'Attrition' 30 | machinesToKill = 10 31 | machinesToLeave = 3 32 | reboot = true 33 | testDuration = 60.0 34 | 35 | -------------------------------------------------------------------------------- /tests/rare/LargeApiCorrectnessStatus.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'ApiCorrectnessTest' 3 | clearAfterTest = true 4 | timeout = 2100 5 | connectionFailuresDisableDuration = 100000 6 | runSetup = true 7 | 8 | [[test.workload]] 9 | testName = 'ApiCorrectness' 10 | numKeys = 3000 11 | onlyLowerCase = true 12 | shortKeysRatio = 0.5 13 | minShortKeyLength = 1 14 | maxShortKeyLength = 3 15 | minLongKeyLength = 1 16 | maxLongKeyLength = 128 17 | minValueLength = 1 18 | maxValueLength = 5000 19 | numGets = 400 20 | numGetRanges = 40 21 | numGetRangeSelectors = 40 22 | numGetKeys = 40 23 | numClears = 40 24 | numClearRanges = 10 25 | maxTransactionBytes = 5000000 26 | randomTestDuration = 60 27 | 28 | [[test.workload]] 29 | testName = 'Status' 30 | testDuration = 30.0 31 | -------------------------------------------------------------------------------- /tests/slow/CommitBug.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | testTitle = 'CommitBugTest' 3 | clearAfterTest = true 4 | runSetup = true 5 | 6 | [[test.workload]] 7 | testName = 'CommitBug' 8 | 9 | [[test.workload]] 10 | testName = 'RandomClogging' 11 | testDuration = 120.0 12 | swizzle = 1 13 | 14 | [[test.workload]] 15 | testName = 'Rollback' 16 | testDuration = 120.0 17 | meanDelay = 10.0 18 | 19 | [[test.workload]] 20 | testName = 'Attrition' 21 | testDuration = 120.0 22 | 23 | [[test.workload]] 24 | testName = 'Attrition' 25 | machinesToKill = 10 26 | machinesToLeave = 3 27 | reboot = true 28 | testDuration = 120.0 29 | 30 | [[test.workload]] 31 | testName = 'Attrition' 32 | machinesToKill = 10 33 | machinesToLeave = 3 34 | reboot = true 35 | testDuration = 120.0 36 | -------------------------------------------------------------------------------- /tests/fast/ConfigIncrementChangeCoordinators.toml: -------------------------------------------------------------------------------- 1 | # Similar to the ConfigIncrement workload, but with a larger amount of time 2 | # between transactions to allow a coordinator change to take place in between 3 | # transactions. 4 | [configuration] 5 | configDB = 'paxos' 6 | 7 | [[test]] 8 | testTitle = 'ConfigIncrementChangeCoordinators' 9 | 10 | [[test.workload]] 11 | testName = 'ConfigIncrement' 12 | incrementActors = 2 13 | incrementsPerActor = 10 14 | meanSleepWithinTransactions = 0.01 15 | meanSleepBetweenTransactions = 10 16 | 17 | [[test.workload]] 18 | testName = 'Attrition' 19 | machinesToKill = 10 20 | machinesToLeave = 3 21 | reboot = true 22 | testDuration = 10.0 23 | 24 | [[test.workload]] 25 | testName = 'ChangeConfig' 26 | maxDelayBeforeChange = 120.0 27 | coordinators = 'auto' 28 | coordinatorChanges = 2 29 | -------------------------------------------------------------------------------- /tests/fast/GetEstimatedRangeSize.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | allowDefaultTenant = false 3 | tenantModes = ['optional', 'required'] 4 | 5 | [[test]] 6 | testTitle = 'TenantCreation' 7 | clearAfterTest = false 8 | 9 | [[test.workload]] 10 | testName = 'CreateTenant' 11 | name = 'First' 12 | 13 | [[test.workload]] 14 | testName = 'CreateTenant' 15 | name = 'Second' 16 | 17 | [[test]] 18 | testTitle = 'GetEstimatedRangeSizeTest' 19 | 20 | [[test.workload]] 21 | testName = 'GetEstimatedRangeSize' 22 | tenant = 'First' 23 | nodeCount = 250000 24 | 25 | [[test.workload]] 26 | testName = 'GetEstimatedRangeSize' 27 | tenant = 'Second' 28 | nodeCount = 25000 29 | 30 | [[test.workload]] 31 | testName = 'GetEstimatedRangeSize' 32 | checkOnly = true # don't run setup 33 | nodeCount = 275000 34 | -------------------------------------------------------------------------------- /tests/fast/FuzzApiCorrectness.toml: -------------------------------------------------------------------------------- 1 | [configuration] 2 | StderrSeverity = 30 3 | allowDefaultTenant = false 4 | tenantModes = ['optional', 'required'] 5 | 6 | [[test]] 7 | testTitle = 'FuzzApiCorrectness' 8 | 9 | [[test.workload]] 10 | testName = 'FuzzApiCorrectness' 11 | testDuration = 30.0 12 | 13 | [[test.workload]] 14 | testName = 'RandomClogging' 15 | testDuration = 30.0 16 | 17 | [[test.workload]] 18 | testName = 'Rollback' 19 | meanDelay = 30.0 20 | testDuration = 30.0 21 | 22 | [[test.workload]] 23 | testName = 'Attrition' 24 | machinesToKill = 10 25 | machinesToLeave = 3 26 | reboot = true 27 | testDuration = 30.0 28 | 29 | [[test.workload]] 30 | testName = 'Attrition' 31 | machinesToKill = 10 32 | machinesToLeave = 3 33 | reboot = true 34 | testDuration = 30.0 35 | -------------------------------------------------------------------------------- /tests/restarting/from_5.2.0_until_6.3.0/ClientTransactionProfilingCorrectness-1.txt: -------------------------------------------------------------------------------- 1 | testTitle=ClientTransactionProfilingCorrectness 2 | clearAfterTest=false 3 | runSetup=true 4 | timeout=2100 5 | 6 | testName=ApiCorrectness 7 | numKeys=5000 8 | onlyLowerCase=true 9 | shortKeysRatio=0.5 10 | minShortKeyLength=1 11 | maxShortKeyLength=3 12 | minLongKeyLength=1 13 | maxLongKeyLength=128 14 | minValueLength=1 15 | maxValueLength=1000 16 | numGets=1000 17 | numGetRanges=100 18 | numGetRangeSelectors=100 19 | numGetKeys=100 20 | numClears=100 21 | numClearRanges=10 22 | maxTransactionBytes=500000 23 | randomTestDuration=30 24 | 25 | testName=ClientTransactionProfileCorrectness 26 | 27 | testName=SaveAndKill 28 | restartInfoLocation=simfdb/restartInfo.ini 29 | testDuration=60 30 | -------------------------------------------------------------------------------- /bindings/c/test/apitester/tests/CApiCorrectnessDBPerTX.toml: -------------------------------------------------------------------------------- 1 | [[test]] 2 | title = 'API Correctness Database Per Transaction' 3 | multiThreaded = true 4 | buggify = true 5 | databasePerTransaction = true 6 | minFdbThreads = 2 7 | maxFdbThreads = 8 8 | minDatabases = 2 9 | maxDatabases = 8 10 | minClientThreads = 2 11 | maxClientThreads = 8 12 | minClients = 2 13 | maxClients = 8 14 | 15 | [[test.workload]] 16 | name = 'ApiCorrectness' 17 | minKeyLength = 1 18 | maxKeyLength = 64 19 | minValueLength = 1 20 | maxValueLength = 1000 21 | maxKeysPerTransaction = 50 22 | initialSize = 100 23 | numRandomOperations = 100 24 | readExistingKeysRatio = 0.9 25 | 26 | [[test.workload]] 27 | name = 'AtomicOpsCorrectness' 28 | initialSize = 0 29 | numRandomOperations = 100 30 | 31 | [[test.workload]] 32 | name = 'WatchAndWait' 33 | initialSize = 0 34 | numRandomOperations = 10 35 | -------------------------------------------------------------------------------- /fdbrpc/Replication.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Replication.cpp 3 | * 4 | * This source file is part of the FoundationDB open source project 5 | * 6 | * Copyright 2013-2022 Apple Inc. and the FoundationDB project authors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | #include "fdbrpc/Replication.h" 22 | -------------------------------------------------------------------------------- /cmake/Finduring.cmake: -------------------------------------------------------------------------------- 1 | # - Find liburing 2 | # 3 | # uring_INCLUDE_DIR - Where to find liburing.h 4 | # uring_LIBRARIES - List of libraries when using uring. 5 | # uring_FOUND - True if uring found. 6 | 7 | find_path(uring_INCLUDE_DIR 8 | NAMES liburing.h) 9 | find_library(uring_LIBRARIES 10 | NAMES liburing.a liburing) 11 | 12 | include(FindPackageHandleStandardArgs) 13 | find_package_handle_standard_args(uring 14 | DEFAULT_MSG uring_LIBRARIES uring_INCLUDE_DIR) 15 | 16 | mark_as_advanced( 17 | uring_INCLUDE_DIR 18 | uring_LIBRARIES) 19 | 20 | if(uring_FOUND AND NOT TARGET uring::uring) 21 | add_library(uring::uring UNKNOWN IMPORTED) 22 | set_target_properties(uring::uring PROPERTIES 23 | INTERFACE_INCLUDE_DIRECTORIES "${uring_INCLUDE_DIR}" 24 | IMPORTED_LINK_INTERFACE_LANGUAGES "C" 25 | IMPORTED_LOCATION "${uring_LIBRARIES}") 26 | endif() 27 | -------------------------------------------------------------------------------- /contrib/libb64/include/libb64/cencode.h: -------------------------------------------------------------------------------- 1 | /* 2 | cencode.h - c header for a base64 encoding algorithm 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CENCODE_H 9 | #define BASE64_CENCODE_H 10 | 11 | typedef enum { step_A, step_B, step_C } base64_encodestep; 12 | 13 | typedef struct { 14 | base64_encodestep step; 15 | char result; 16 | int stepcount; 17 | } base64_encodestate; 18 | 19 | void base64_init_encodestate(base64_encodestate* state_in); 20 | 21 | char base64_encode_value(char value_in); 22 | 23 | int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in); 24 | 25 | int base64_encode_blockend(char* code_out, base64_encodestate* state_in); 26 | 27 | #endif /* BASE64_CENCODE_H */ 28 | --------------------------------------------------------------------------------