foundationdb/fdbserver/CMakeLists.txt

392 lines
12 KiB
CMake
Raw Normal View History

2018-05-04 06:48:10 +08:00
set(FDBSERVER_SRCS
ApplyMetadataMutation.cpp
ApplyMetadataMutation.h
BackupInterface.h
BackupProgress.actor.cpp
BackupProgress.actor.h
BackupWorker.actor.cpp
2021-11-24 23:12:54 +08:00
BlobGranuleServerCommon.actor.cpp
BlobGranuleServerCommon.actor.h
BlobGranuleValidation.actor.cpp
BlobGranuleValidation.actor.h
BlobManager.actor.cpp
BlobManagerInterface.h
BlobWorker.actor.cpp
2018-05-04 06:48:10 +08:00
ClusterController.actor.cpp
ClusterController.actor.h
ClusterRecovery.actor.cpp
ClusterRecovery.actor.h
CommitProxyServer.actor.cpp
2021-05-12 07:57:05 +08:00
ConfigBroadcaster.actor.cpp
ConfigBroadcaster.h
2021-05-14 02:22:25 +08:00
ConfigDatabaseUnitTests.actor.cpp
ConfigFollowerInterface.cpp
ConfigFollowerInterface.h
ConfigNode.actor.cpp
ConfigNode.h
2018-05-04 06:48:10 +08:00
ConflictSet.h
CoordinatedState.actor.cpp
CoordinatedState.h
Coordination.actor.cpp
CoordinationInterface.h
CoroFlow.h
DataDistribution.actor.cpp
2019-03-06 02:29:37 +08:00
DataDistribution.actor.h
2018-05-04 06:48:10 +08:00
DataDistributionQueue.actor.cpp
DataDistributionTracker.actor.cpp
2019-01-18 01:47:14 +08:00
DataDistributorInterface.h
2018-05-04 06:48:10 +08:00
DBCoreState.h
DDTeamCollection.actor.cpp
DDTeamCollection.h
2018-05-04 06:48:10 +08:00
DiskQueue.actor.cpp
EncryptKeyProxy.actor.cpp
EncryptKeyProxyInterface.h
FDBExecHelper.actor.cpp
FDBExecHelper.actor.h
fdbserver.actor.cpp
2020-07-15 15:37:41 +08:00
GrvProxyServer.actor.cpp
IConfigConsumer.cpp
2021-05-12 07:57:05 +08:00
IConfigConsumer.h
2018-05-04 06:48:10 +08:00
IDiskQueue.h
IKeyValueContainer.h
2018-05-04 06:48:10 +08:00
IKeyValueStore.h
2018-12-14 07:52:27 +08:00
IPager.h
2018-05-04 06:48:10 +08:00
KeyValueStoreCompressTestData.actor.cpp
KeyValueStoreMemory.actor.cpp
2020-06-16 00:45:36 +08:00
KeyValueStoreRocksDB.actor.cpp
2018-05-04 06:48:10 +08:00
KeyValueStoreSQLite.actor.cpp
KmsConnector.h
KmsConnectorInterface.h
KnobProtectiveGroups.cpp
KnobProtectiveGroups.h
2018-05-04 06:48:10 +08:00
Knobs.h
2019-02-15 00:08:44 +08:00
LatencyBandConfig.cpp
LatencyBandConfig.h
2018-05-04 06:48:10 +08:00
LeaderElection.actor.cpp
LeaderElection.h
LocalConfiguration.actor.cpp
LocalConfiguration.h
2018-05-04 06:48:10 +08:00
LogProtocolMessage.h
LogRouter.actor.cpp
LogSystem.cpp
2018-05-04 06:48:10 +08:00
LogSystem.h
LogSystemConfig.cpp
2018-05-04 06:48:10 +08:00
LogSystemConfig.h
LogSystemDiskQueueAdapter.actor.cpp
LogSystemDiskQueueAdapter.h
LogSystemPeekCursor.actor.cpp
MasterInterface.h
masterserver.actor.cpp
MetricLogger.actor.cpp
MetricLogger.actor.h
2020-03-27 19:16:15 +08:00
MoveKeys.actor.cpp
MoveKeys.actor.h
MutationTracking.cpp
MutationTracking.h
2018-05-04 06:48:10 +08:00
networktest.actor.cpp
NetworkTest.h
OldTLogServer_4_6.actor.cpp
OldTLogServer_6_0.actor.cpp
OldTLogServer_6_2.actor.cpp
OTELSpanContextMessage.h
OnDemandStore.actor.cpp
OnDemandStore.h
PaxosConfigConsumer.actor.cpp
PaxosConfigConsumer.h
ProxyCommitData.actor.h
2018-05-04 06:48:10 +08:00
pubsub.actor.cpp
pubsub.h
QuietDatabase.actor.cpp
QuietDatabase.h
2020-11-16 03:35:42 +08:00
RadixTree.h
2018-05-04 06:48:10 +08:00
Ratekeeper.actor.cpp
Ratekeeper.h
RatekeeperInterface.h
2018-05-04 06:48:10 +08:00
RecoveryState.h
Remote ikvs debugging (#6465) * initial structure for remote IKVS server * moved struct to .h file, added new files to CMakeList * happy path implementation, connection error when testing * saved minor local change * changed tracing to debug * fixed onClosed and getError being called before init is finished * fix spawn process bug, now use absolute path * added server knob to set ikvs process port number * added server knob for remote/local kv store * implement simulator remote process spawning * fixed bug for simulator timeout * commit all changes * removed print lines in trace * added FlowProcess implementation by Markus * initial debug of FlowProcess, stuck at parent sending OpenKVStoreRequest to child * temporary fix for process factory throwing segfault on create * specify public address in command * change remote kv store knob to false for jenkins build * made port 0 open random unused port * change remote store knob to true for benchmark * set listening port to randomly opened port * added print lines for jenkins run open kv store timeout debug * removed most tracing and print lines * removed tutorial changes * update handleIOErrors error handling to handle remote-ikvs cases * Push all debugging changes * A version where worker bug exists * A version where restarting tests fail * Use both the name and the port to determine the child process * Remove unnecessary update on local address * Disable remote-kvs for DiskFailureCycle test * A version where restarting stuck * A version where most restarting tests green * Reset connection with child process explicitly * Remove change on unnecessary files * Unify flags from _ to - * fix merging unexpected changes * fix trac.error to .errorUnsuppressed * Add license header * Remove unnecessary header in FlowProcess.actor.cpp * Fix Windows build * Fix Windows build, add missing ; * Fix a stupid bug caused by code dropped by code merging * Disable remote kvs by default * Pass the conn_file path to the flow process, though not needed, but the buildNetwork is difficult to tune * serialization change on readrange * Update traces * Refactor the RemoteIKVS interface * Format files * Update sim2 interface to not clog connections between parent and child processes in simulation * Update comments; remove debugging symbols; Add error handling for remote_kvs_cancelled * Add comments, format files * Change method name from isBuggifyDisabled to isStableConnection; Decrease(0.1x) latency for stable connections * Commit the IConnection interface change, forgot in previous commit * Fix the issue that onClosed request is cancelled by ActorCollection * Enable the remote kv store knob * Remove FlowProcess.actor.cpp and move functions to RemoteIKeyValueStore.actor.cpp; Add remote kv store delay to avoid race; Bind the child process to die with parent process * Fix the bug where one process starts storage server more than once * Add a please_reboot_remote_kv_store error to restart the storage server worker if remote kvs died abnormally * Remove unreachable code path and add comments * Clang format the code * Fix a simple wait error * Clang format after merging the main branch * Testing mixed mode in simulation if remote_kvs knob is enabled, setting the default to false * Disable remote kvs for PhysicalShardMove which is for RocksDB * Cleanup #include orders, remove debugging traces * Revert the reorder in fdbserver.actor.cpp, which fails the gcc build Co-authored-by: “Lincoln <“lincoln.xiao@snowflake.com”>
2022-04-01 08:08:59 +08:00
RemoteIKeyValueStore.actor.h
RemoteIKeyValueStore.actor.cpp
2022-05-08 04:18:35 +08:00
RESTKmsConnector.actor.h
RESTKmsConnector.actor.cpp
ResolutionBalancer.actor.cpp
ResolutionBalancer.actor.h
Resolver.actor.cpp
ResolverInterface.h
RestoreApplier.actor.cpp
RestoreApplier.actor.h
2019-05-17 10:42:44 +08:00
RestoreCommon.actor.cpp
RestoreCommon.actor.h
RestoreController.actor.cpp
RestoreController.actor.h
2019-05-17 10:42:44 +08:00
RestoreLoader.actor.cpp
RestoreLoader.actor.h
RestoreRoleCommon.actor.cpp
RestoreRoleCommon.actor.h
RestoreUtil.actor.cpp
RestoreUtil.h
RestoreWorker.actor.cpp
RestoreWorker.actor.h
RestoreWorkerInterface.actor.cpp
RestoreWorkerInterface.actor.h
RkTagThrottleCollection.cpp
RkTagThrottleCollection.h
RocksDBCheckpointUtils.actor.cpp
RocksDBCheckpointUtils.actor.h
RoleLineage.actor.cpp
RoleLineage.actor.h
ServerCheckpoint.actor.cpp
ServerCheckpoint.actor.h
2020-05-02 11:15:31 +08:00
ServerDBInfo.actor.h
2018-05-04 06:48:10 +08:00
ServerDBInfo.h
SigStack.cpp
SimKmsConnector.actor.h
SimKmsConnector.actor.cpp
2021-05-12 07:57:05 +08:00
SimpleConfigConsumer.actor.cpp
SimpleConfigConsumer.h
2018-05-04 06:48:10 +08:00
SimulatedCluster.actor.cpp
SimulatedCluster.h
SkipList.cpp
2020-08-28 06:11:16 +08:00
SpanContextMessage.h
2018-05-04 06:48:10 +08:00
Status.actor.cpp
Status.h
2019-11-13 05:01:29 +08:00
StorageCache.actor.cpp
2018-05-04 06:48:10 +08:00
StorageMetrics.actor.h
StorageMetrics.h
storageserver.actor.cpp
TagPartitionedLogSystem.actor.cpp
TagPartitionedLogSystem.actor.h
2022-02-15 08:03:37 +08:00
TagThrottler.actor.cpp
TagThrottler.h
2022-02-05 02:59:01 +08:00
TCInfo.actor.cpp
TCInfo.h
template_fdb.h
2018-05-04 06:48:10 +08:00
tester.actor.cpp
TesterInterface.actor.h
2018-05-04 06:48:10 +08:00
TLogInterface.h
TLogServer.actor.cpp
TransactionTagCounter.cpp
TransactionTagCounter.h
2021-05-29 02:15:52 +08:00
TSSMappingUtil.actor.cpp
TSSMappingUtil.actor.h
2018-12-14 07:52:27 +08:00
VersionedBTree.actor.cpp
2018-05-04 06:48:10 +08:00
VFSAsync.cpp
VFSAsync.h
2018-05-04 06:48:10 +08:00
WaitFailure.actor.cpp
WaitFailure.h
worker.actor.cpp
WorkerInterface.actor.h
2018-05-04 06:48:10 +08:00
workloads/ApiCorrectness.actor.cpp
workloads/ApiWorkload.actor.cpp
workloads/ApiWorkload.h
workloads/AsyncFile.actor.h
workloads/AsyncFile.cpp
workloads/AsyncFileCorrectness.actor.cpp
workloads/AsyncFileRead.actor.cpp
workloads/AsyncFileWrite.actor.cpp
workloads/AtomicOps.actor.cpp
workloads/AtomicOpsApiCorrectness.actor.cpp
workloads/AtomicRestore.actor.cpp
workloads/AtomicSwitchover.actor.cpp
workloads/BackgroundSelectors.actor.cpp
2019-05-17 10:42:44 +08:00
workloads/BackupAndParallelRestoreCorrectness.actor.cpp
workloads/BackupCorrectness.actor.cpp
workloads/BackupToBlob.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/BackupToDBAbort.actor.cpp
workloads/BackupToDBCorrectness.actor.cpp
workloads/BackupToDBUpgrade.actor.cpp
workloads/BlobGranuleCorrectnessWorkload.actor.cpp
workloads/BlobGranuleVerifier.actor.cpp
workloads/BlobStoreWorkload.h
2018-05-04 06:48:10 +08:00
workloads/BulkLoad.actor.cpp
workloads/BulkSetup.actor.h
2020-02-25 09:26:20 +08:00
workloads/Cache.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/ChangeConfig.actor.cpp
workloads/ChangeFeeds.actor.cpp
2021-07-21 06:28:46 +08:00
workloads/ClearSingleRange.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/ClientTransactionProfileCorrectness.actor.cpp
2022-02-22 21:29:51 +08:00
workloads/ClientWorkload.actor.cpp
workloads/ClogSingleConnection.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/CommitBugCheck.actor.cpp
workloads/ConfigIncrement.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/ConfigureDatabase.actor.cpp
workloads/ConflictRange.actor.cpp
workloads/ConsistencyCheck.actor.cpp
workloads/CpuProfiler.actor.cpp
workloads/Cycle.actor.cpp
workloads/DataDistributionMetrics.actor.cpp
workloads/DataLossRecovery.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/DDBalance.actor.cpp
workloads/DDMetrics.actor.cpp
workloads/DDMetricsExclude.actor.cpp
workloads/DifferentClustersSameRV.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/DiskDurability.actor.cpp
workloads/DiskDurabilityTest.actor.cpp
workloads/DiskFailureInjection.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/DummyWorkload.actor.cpp
workloads/EncryptionOps.actor.cpp
workloads/EncryptKeyProxyTest.actor.cpp
2019-06-06 04:24:06 +08:00
workloads/ExternalWorkload.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/FastTriggeredWatches.actor.cpp
workloads/FileSystem.actor.cpp
workloads/Fuzz.cpp
workloads/FuzzApiCorrectness.actor.cpp
workloads/GetMappedRange.actor.cpp
workloads/GetRangeStream.actor.cpp
workloads/HealthMetricsApi.actor.cpp
workloads/HighContentionPrefixAllocatorWorkload.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/Increment.actor.cpp
workloads/IncrementalBackup.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/IndexScan.actor.cpp
workloads/Inventory.actor.cpp
workloads/KillRegion.actor.cpp
workloads/KVStoreTest.actor.cpp
workloads/LocalRatekeeper.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/LockDatabase.actor.cpp
2020-08-19 04:41:55 +08:00
workloads/LockDatabaseFrequently.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/LogMetrics.actor.cpp
workloads/LowLatency.actor.cpp
workloads/MachineAttrition.actor.cpp
2019-05-10 06:35:30 +08:00
workloads/Mako.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/MemoryKeyValueStore.cpp
workloads/MemoryKeyValueStore.h
workloads/MemoryLifetime.actor.cpp
workloads/MetricLogging.actor.cpp
2021-11-05 05:34:14 +08:00
workloads/MiniCycle.actor.cpp
workloads/MutationLogReaderCorrectness.actor.cpp
2021-07-11 07:55:30 +08:00
workloads/ParallelRestore.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/Performance.actor.cpp
workloads/PhysicalShardMove.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/Ping.actor.cpp
2020-04-04 02:33:24 +08:00
workloads/PopulateTPCC.actor.cpp
workloads/PrivateEndpoints.actor.cpp
workloads/ProtocolVersion.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/PubSubMultiples.actor.cpp
workloads/QueuePush.actor.cpp
workloads/RandomClogging.actor.cpp
workloads/RandomMoveKeys.actor.cpp
workloads/RandomSelector.actor.cpp
workloads/ReadAfterWrite.actor.cpp
2020-12-25 09:57:53 +08:00
workloads/ReadHotDetection.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/ReadWrite.actor.cpp
workloads/RemoveServersSafely.actor.cpp
workloads/ReportConflictingKeys.actor.cpp
2020-10-05 09:11:04 +08:00
workloads/RestoreBackup.actor.cpp
workloads/RestoreFromBlob.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/Rollback.actor.cpp
workloads/RyowCorrectness.actor.cpp
workloads/RYWDisable.actor.cpp
workloads/RYWPerformance.actor.cpp
workloads/SaveAndKill.actor.cpp
workloads/SelectorCorrectness.actor.cpp
workloads/Serializability.actor.cpp
workloads/Sideband.actor.cpp
workloads/SidebandSingle.actor.cpp
workloads/SimpleAtomicAdd.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/SlowTaskWorkload.actor.cpp
workloads/SnapTest.actor.cpp
2020-03-10 01:45:57 +08:00
workloads/SpecialKeySpaceCorrectness.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/StatusWorkload.actor.cpp
workloads/Storefront.actor.cpp
workloads/StreamingRangeRead.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/StreamingRead.actor.cpp
2020-10-05 09:11:04 +08:00
workloads/SubmitBackup.actor.cpp
workloads/SuspendProcesses.actor.cpp
2020-05-05 01:15:18 +08:00
workloads/TagThrottleApi.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/TargetedKill.actor.cpp
workloads/TaskBucketCorrectness.actor.cpp
2022-02-24 00:06:39 +08:00
workloads/TenantManagement.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/ThreadSafety.actor.cpp
workloads/Throttling.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/Throughput.actor.cpp
workloads/TimeKeeperCorrectness.actor.cpp
2020-04-04 02:33:24 +08:00
workloads/TPCC.actor.cpp
workloads/TPCCWorkload.h
workloads/TriggerRecovery.actor.cpp
workloads/UDPWorkload.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/UnitPerf.actor.cpp
workloads/UnitTests.actor.cpp
workloads/Unreadable.actor.cpp
workloads/VersionStamp.actor.cpp
workloads/WatchAndWait.actor.cpp
workloads/Watches.actor.cpp
2021-02-10 01:32:37 +08:00
workloads/WatchesSameKeyCorrectness.actor.cpp
2018-05-04 06:48:10 +08:00
workloads/WorkerErrors.actor.cpp
workloads/workloads.actor.h
2018-05-04 06:48:10 +08:00
workloads/WriteBandwidth.actor.cpp
workloads/WriteDuringRead.actor.cpp
workloads/WriteTagThrottling.actor.cpp
)
2018-05-04 06:48:10 +08:00
if(${COROUTINE_IMPL} STREQUAL libcoro)
list(APPEND FDBSERVER_SRCS CoroFlowCoro.actor.cpp)
else()
list(APPEND FDBSERVER_SRCS CoroFlow.actor.cpp)
endif()
add_library(fdb_sqlite STATIC
2019-04-05 00:59:08 +08:00
sqlite/btree.h
sqlite/hash.h
sqlite/sqlite3.h
sqlite/sqlite3ext.h
sqlite/sqliteInt.h
sqlite/sqliteLimit.h
sqlite/sqlite3.amalgamation.c)
2020-06-11 05:07:49 +08:00
if (WITH_ROCKSDB_EXPERIMENTAL)
2020-06-04 04:32:39 +08:00
add_definitions(-DSSD_ROCKSDB_EXPERIMENTAL)
2020-06-06 06:58:45 +08:00
include(CompileRocksDB)
2020-10-07 02:22:03 +08:00
# CompileRocksDB sets `lz4_LIBRARIES` to be the shared lib, we want to link
# statically, so find the static library here.
find_library(lz4_STATIC_LIBRARIES
NAMES liblz4.a REQUIRED)
if (WITH_LIBURING)
find_package(uring)
endif()
2020-06-04 04:32:39 +08:00
endif()
2020-05-22 23:02:51 +08:00
2019-04-10 02:16:45 +08:00
# Suppress warnings in sqlite since it's third party
if(NOT WIN32)
2019-04-17 08:43:46 +08:00
target_compile_definitions(fdb_sqlite PRIVATE $<$<CONFIG:Debug>:NDEBUG>)
target_compile_options(fdb_sqlite BEFORE PRIVATE -w) # disable warnings for third party
endif()
2018-05-04 06:48:10 +08:00
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/workloads)
add_flow_target(EXECUTABLE NAME fdbserver SRCS ${FDBSERVER_SRCS})
2020-06-04 04:32:39 +08:00
2018-05-04 06:48:10 +08:00
target_include_directories(fdbserver PRIVATE
2019-06-06 04:24:06 +08:00
${CMAKE_SOURCE_DIR}/bindings/c
${CMAKE_BINARY_DIR}/bindings/c
2018-05-04 06:48:10 +08:00
${CMAKE_CURRENT_BINARY_DIR}/workloads
${CMAKE_CURRENT_SOURCE_DIR}/workloads)
2020-06-11 05:07:49 +08:00
if (WITH_ROCKSDB_EXPERIMENTAL)
2020-06-11 04:53:53 +08:00
add_dependencies(fdbserver rocksdb)
if(WITH_LIBURING)
target_include_directories(fdbserver PRIVATE ${ROCKSDB_INCLUDE_DIR} ${uring_INCLUDE_DIR})
target_link_libraries(fdbserver PRIVATE fdbclient fdb_sqlite ${ROCKSDB_LIBRARIES} ${uring_LIBRARIES} ${lz4_STATIC_LIBRARIES})
target_compile_definitions(fdbserver PRIVATE BOOST_ASIO_HAS_IO_URING=1 BOOST_ASIO_DISABLE_EPOLL=1)
else()
target_include_directories(fdbserver PRIVATE ${ROCKSDB_INCLUDE_DIR})
target_link_libraries(fdbserver PRIVATE fdbclient fdb_sqlite ${ROCKSDB_LIBRARIES} ${lz4_STATIC_LIBRARIES})
target_compile_definitions(fdbserver PRIVATE)
endif()
2020-06-04 04:32:39 +08:00
else()
target_link_libraries(fdbserver PRIVATE fdbclient fdb_sqlite)
endif()
target_link_libraries(fdbserver PRIVATE toml11_target jemalloc)
# target_compile_definitions(fdbserver PRIVATE -DENABLE_SAMPLING)
if (GPERFTOOLS_FOUND)
target_link_libraries(fdbserver PRIVATE gperftools)
endif()
2018-05-04 06:48:10 +08:00
if(NOT OPEN_FOR_IDE)
if(GENERATE_DEBUG_PACKAGES)
fdb_install(TARGETS fdbserver DESTINATION sbin COMPONENT server)
else()
add_custom_target(prepare_fdbserver_install ALL DEPENDS strip_only_fdbserver)
fdb_install(PROGRAMS ${CMAKE_BINARY_DIR}/packages/bin/fdbserver DESTINATION sbin COMPONENT server)
endif()
endif()