mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-03 13:37:04 +00:00
Fixes #24447 This factory type, which is really more a data holder/connection producer per connection instance, creates, if using https, a new certificate_credentials on every instance. Which when used by S3 client is per client and scheduling groups. Which eventually means that we will do a set_system_trust + "cold" handshake for every tls connection created this way. This will cause both IO and cold/expensive certificate checking -> possible stalls/wasted CPU. Since the credentials object in question is literally a "just trust system", it could very well be shared across the shard. This PR adds a thread local static cached credentials object and uses this instead. Could consider moving this to seastar, but maybe this is too much. Closes scylladb/scylladb#24448
86 lines
2.0 KiB
CMake
86 lines
2.0 KiB
CMake
find_package(cryptopp REQUIRED)
|
|
find_package(rapidxml REQUIRED)
|
|
find_package(GnuTLS 3.3.26 REQUIRED)
|
|
add_library(utils STATIC)
|
|
target_sources(utils
|
|
PRIVATE
|
|
UUID_gen.cc
|
|
advanced_rpc_compressor.cc
|
|
alien_worker.cc
|
|
arch/powerpc/crc32-vpmsum/crc32_wrapper.cc
|
|
arch/powerpc/crc32-vpmsum/crc32.S
|
|
array-search.cc
|
|
ascii.cc
|
|
base64.cc
|
|
big_decimal.cc
|
|
bloom_calculations.cc
|
|
bloom_filter.cc
|
|
buffer_input_stream.cc
|
|
build_id.cc
|
|
config_file.cc
|
|
dict_trainer.cc
|
|
directories.cc
|
|
disk-error-handler.cc
|
|
disk_space_monitor.cc
|
|
dynamic_bitset.cc
|
|
error_injection.cc
|
|
exceptions.cc
|
|
file_lock.cc
|
|
gz/crc_combine.cc
|
|
gz/crc_combine_table.cc
|
|
hashers.cc
|
|
histogram_metrics_helper.cc
|
|
http.cc
|
|
human_readable.cc
|
|
i_filter.cc
|
|
io-wrappers.cc
|
|
large_bitset.cc
|
|
like_matcher.cc
|
|
limiting_data_source.cc
|
|
lister.cc
|
|
logalloc.cc
|
|
managed_bytes.cc
|
|
multiprecision_int.cc
|
|
murmur_hash.cc
|
|
on_internal_error.cc
|
|
pretty_printers.cc
|
|
rate_limiter.cc
|
|
rjson.cc
|
|
runtime.cc
|
|
to_string.cc
|
|
updateable_value.cc
|
|
utf8.cc
|
|
uuid.cc
|
|
labels.cc
|
|
aws_sigv4.cc
|
|
stream_compressor.cc
|
|
rest/client.cc
|
|
s3/aws_error.cc
|
|
s3/client.cc
|
|
s3/retryable_http_client.cc
|
|
s3/retry_strategy.cc
|
|
s3/s3_retry_strategy.cc
|
|
s3/credentials_providers/aws_credentials_provider.cc
|
|
s3/credentials_providers/environment_aws_credentials_provider.cc
|
|
s3/credentials_providers/instance_profile_credentials_provider.cc
|
|
s3/credentials_providers/sts_assume_role_credentials_provider.cc
|
|
s3/credentials_providers/aws_credentials_provider_chain.cc
|
|
s3/utils/manip_s3.cc)
|
|
target_include_directories(utils
|
|
PUBLIC
|
|
${CMAKE_SOURCE_DIR}
|
|
${RAPIDJSON_INCLUDE_DIRS})
|
|
target_link_libraries(utils
|
|
PUBLIC
|
|
Seastar::seastar
|
|
xxHash::xxhash
|
|
PRIVATE
|
|
Boost::regex
|
|
cryptopp::cryptopp
|
|
rapidxml::rapidxml
|
|
yaml-cpp::yaml-cpp
|
|
GnuTLS::gnutls)
|
|
|
|
check_headers(check-headers utils
|
|
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)
|