Skip to content

Commit

Permalink
Merged 7.3.27 from upstream to ow fork (#116)
Browse files Browse the repository at this point in the history
  • Loading branch information
oleg68 authored Jan 10, 2024
1 parent 4232fe6 commit 2c4af35
Show file tree
Hide file tree
Showing 105 changed files with 1,884 additions and 510 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if(POLICY CMP0135)
endif()

project(foundationdb
VERSION 7.3.17
VERSION 7.3.27
DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions."
HOMEPAGE_URL "http://www.foundationdb.org/"
LANGUAGES C CXX ASM)
Expand Down
2 changes: 1 addition & 1 deletion bindings/go/src/fdb/fdb_darwin.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package fdb

//#cgo CFLAGS: -I/usr/local/include/
//#cgo LDFLAGS: -L/usr/local/lib/
//#cgo LDFLAGS: -L/usr/local/lib/ -Wl,-rpath,/usr/local/lib
import "C"
11 changes: 4 additions & 7 deletions cmake/CompileRocksDB.cmake
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
# FindRocksDB

find_package(RocksDB 8.1.1)
find_package(RocksDB 8.6.7)

include(ExternalProject)

set(RocksDB_CMAKE_ARGS
-DUSE_RTTI=1
-DPORTABLE=${PORTABLE_ROCKSDB}
-DFORCE_SSE42=${ROCKSDB_SSE42}
-DFORCE_AVX=${ROCKSDB_AVX}
-DFORCE_AVX2=${ROCKSDB_AVX2}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
Expand Down Expand Up @@ -52,8 +49,8 @@ if(ROCKSDB_FOUND)
${BINARY_DIR}/librocksdb.a)
else()
ExternalProject_Add(rocksdb
URL https://github.com/facebook/rocksdb/archive/refs/tags/v8.1.1.tar.gz
URL_HASH SHA256=9102704e169cfb53e7724a30750eeeb3e71307663852f01fa08d5a320e6155a8
URL https://github.com/facebook/rocksdb/archive/refs/tags/v8.6.7.tar.gz
URL_HASH SHA256=cdb2fc3c6a556f20591f564cb8e023e56828469aa3f76e1d9535c443ba1f0c1a
CMAKE_ARGS ${RocksDB_CMAKE_ARGS}
BUILD_BYPRODUCTS <BINARY_DIR>/librocksdb.a
INSTALL_COMMAND ""
Expand All @@ -75,4 +72,4 @@ message(STATUS "Found RocksDB includes: ${ROCKSDB_INCLUDE_DIR}")
mark_as_advanced(
ROCKSDB_LIBRARIES
ROCKSDB_INCLUDE_DIR
)
)
5 changes: 5 additions & 0 deletions cmake/ConfigureCompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ if(WIN32)
add_definitions(-D_USE_MATH_DEFINES) # Math constants
endif()

if(APPLE)
# Remove this after boost 1.81 or above is used
add_definitions(-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)
endif()

if (USE_CCACHE)
find_program(CCACHE_PROGRAM "ccache" REQUIRED)
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
Expand Down
10 changes: 4 additions & 6 deletions cmake/FDBComponents.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,12 @@ endif()
################################################################################

set(SSD_ROCKSDB_EXPERIMENTAL ON CACHE BOOL "Build with experimental RocksDB support")
set(PORTABLE_ROCKSDB ON CACHE BOOL "Compile RocksDB in portable mode") # Set this to OFF to compile RocksDB with `-march=native`
set(ROCKSDB_SSE42 OFF CACHE BOOL "Compile RocksDB with SSE42 enabled")
set(ROCKSDB_AVX ${USE_AVX} CACHE BOOL "Compile RocksDB with AVX enabled")
set(ROCKSDB_AVX2 OFF CACHE BOOL "Compile RocksDB with AVX2 enabled")
# PORTABLE flag for RockdDB changed as of this PR (with v8.3.2 and after): https://github.com/facebook/rocksdb/pull/11419
# https://github.com/facebook/rocksdb/blob/v8.6.7/CMakeLists.txt#L256
set(PORTABLE_ROCKSDB 1 CACHE STRING "Minimum CPU arch to support (i.e. skylake, haswell, etc., or 0 = current CPU, 1 = baseline CPU")
set(ROCKSDB_TOOLS OFF CACHE BOOL "Compile RocksDB tools")
set(WITH_LIBURING OFF CACHE BOOL "Build with liburing enabled") # Set this to ON to include liburing
# RocksDB is currently enabled by default for GCC but does not build with the latest
# Clang.

if (SSD_ROCKSDB_EXPERIMENTAL AND NOT WIN32)
set(WITH_ROCKSDB_EXPERIMENTAL ON)
else()
Expand Down
6 changes: 5 additions & 1 deletion contrib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
add_library(rapidjson INTERFACE)
target_include_directories(rapidjson INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/rapidjson)

find_package(fmt 8.1.1 GLOBAL)
if(NOT fmt_FOUND)
add_subdirectory(fmt-8.1.1)
endif()

add_subdirectory(crc32)
add_subdirectory(stacktrace)
add_subdirectory(folly_memcpy)
add_subdirectory(rapidxml)
add_subdirectory(sqlite)
add_subdirectory(SimpleOpt)
add_subdirectory(fmt-8.1.1)
add_subdirectory(md5)
add_subdirectory(libb64)
if(NOT WIN32)
Expand Down
3 changes: 3 additions & 0 deletions contrib/Implib.so/implib-gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ def collect_syms(f):
elif toc is not None:
sym = parse_row(words, toc, ["Value"])
name = sym["Name"]
if not name:
continue
if name in syms_set:
continue
syms_set.add(name)
Expand All @@ -115,6 +117,7 @@ def collect_syms(f):
# Also collected demangled names
if syms:
out, _ = run(["c++filt"], "\n".join((sym["Name"] for sym in syms)))
out = out.rstrip("\n") # Some c++filts append newlines at the end
for i, name in enumerate(out.split("\n")):
syms[i]["Demangled Name"] = name

Expand Down
4 changes: 4 additions & 0 deletions documentation/sphinx/source/backups.rst
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,10 @@ Here is a complete list of valid parameters:

*max_recv_bytes_per_second* (or *rbps*) - Max receive bytes per second for all requests combined.

*max_delay_retryable_error (or *dre*) - Max seconds to delay before retry again when seeing an retryable error.

*max_delay_connection_failed (or *dcf*) - Max seconds to delay before retry again when seeing an connection failure.

*header* - Add an additional HTTP header to each blob store REST API request. Can be specified multiple times. Format is *header=<FieldName>:<FieldValue>* where both strings are non-empty.

*sdk_auth* (or *sa*) - Use the AWS SDK to do credentials and authentication. This supports all aws authentication types, including credential-less iam role-based authentication in aws. Experimental, and only works if FDB was compiled with BUILD_AWS_BACKUP=ON. When this parameter is set, all other credential parts of the backup url can be ignored.
Expand Down
14 changes: 14 additions & 0 deletions documentation/sphinx/source/mr-status-json-schemas.rst.inc
Original file line number Diff line number Diff line change
Expand Up @@ -792,6 +792,20 @@
"backup_worker_enabled":1,
"perpetual_storage_wiggle": 0,
"perpetual_storage_wiggle_locality":"0",
"perpetual_storage_wiggle_engine":{
"$enum":[
"ssd",
"ssd-1",
"ssd-2",
"ssd-redwood-1",
"ssd-rocksdb-v1",
"ssd-sharded-rocksdb",
"memory",
"memory-1",
"memory-2",
"memory-radixtree-beta",
"none"
]},
"storage_migration_type":{
"$enum":[
"disabled",
Expand Down
56 changes: 56 additions & 0 deletions documentation/sphinx/source/release-notes/release-notes-710.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,62 @@
Release Notes
#############

7.1.43
======
* Same as 7.1.42 release with AVX enabled.

7.1.42
======
* Released with AVX disabled.
* Added redistribute fdbcli command to manually split shards. `(PR #10909) <https://github.com/apple/foundationdb/pull/10909>`_, `(PR #10936) <https://github.com/apple/foundationdb/pull/10936>`_, `(PR #10942) <https://github.com/apple/foundationdb/pull/10942>`_, `(PR #10905) <https://github.com/apple/foundationdb/pull/10905>`_, and `(PR #10958) <https://github.com/apple/foundationdb/pull/10958>`_
* Fixed a MacOS linking issue for go bindings. `(PR #10924) <https://github.com/apple/foundationdb/pull/10924>`_
* Added knobs to control backup retry delays for blob stores. `(PR #10947) <https://github.com/apple/foundationdb/pull/10947>`_
* Fixed two use-after-free bugs for backup agents. `(PR #10951) <https://github.com/apple/foundationdb/pull/10951>`_
* Added automatic range split for hot storage queue. `(PR #10932) <https://github.com/apple/foundationdb/pull/10932>`_
* Fixed multiple bugs related to locality based exclusions. `(PR #10976) <https://github.com/apple/foundationdb/pull/10976>`_, `(PR #11008) <https://github.com/apple/foundationdb/pull/11008>`_, and `(PR #11025) <https://github.com/apple/foundationdb/pull/11025>`_
* Fixed compaction rate limiter for RocksDB storage engine. `(PR #10988) <https://github.com/apple/foundationdb/pull/10988>`_
* Added a perpetual wiggle option to have multiple storage servers in rebalance state during wiggling. `(PR #10995) <https://github.com/apple/foundationdb/pull/10995>`_
* Fixed exclude status of machines in status json when not all processes are excluded. `(PR #10996) <https://github.com/apple/foundationdb/pull/10996>`_ and `(PR #11006) <https://github.com/apple/foundationdb/pull/11006>`_

7.1.41
======
* Same as 7.1.40 release with AVX enabled.

7.1.40
======
* Released with AVX disabled.
* Removed storageWiggleID from storage metadata if the storage server is not wiggling. `(PR #10913) <https://github.com/apple/foundationdb/pull/10913>`_
* Augmented storage team selection to be aware of storage queue sizes. `(PR #10905) <https://github.com/apple/foundationdb/pull/10905>`_
* Fixed the proxy setting for backup agents. `(PR #10903) <https://github.com/apple/foundationdb/pull/10903>`_
* Added an option to set perpetual_storage_wiggle_engine to none. `(PR #10881) <https://github.com/apple/foundationdb/pull/10881>`_

7.1.39
======
* Same as 7.1.38 release with AVX enabled.

7.1.38
======
* Released with AVX disabled.
* Added locality check on reading perpetualStorageWiggleIDPrefix key when DD restarts. `(PR #10864) <https://github.com/apple/foundationdb/pull/10864>`_
* Added perpetual wiggle wait based on data balance of the cluster. `(PR #10865) <https://github.com/apple/foundationdb/pull/10865>`_
* Added rocksdb options to delete old rocksdb logs. `(PR #10872) <https://github.com/apple/foundationdb/pull/10872>`_
* Added knob to guard the gray failure rejection during TLog recovery. `(PR #10852) <https://github.com/apple/foundationdb/pull/10852>`_
* Added knob RESOLVE_PREFER_IPV4_ADDR to prefer IPv4 addresses. `(PR #10826) <https://github.com/apple/foundationdb/pull/10826>`_
* Added perpetual_storage_wiggle_engine config to support storage migration with perpetual wiggle. `(PR #10790) <https://github.com/apple/foundationdb/pull/10790>`_
* Fixed the return code for perpetual wiggle configure command. `(PR #10795) <https://github.com/apple/foundationdb/pull/10795>`_
* Fixed a compatibility issue of s3 backup. `(PR #10774) <https://github.com/apple/foundationdb/pull/10774>`_
* Added proxy to backup agent via global variable. `(PR #10875) <https://github.com/apple/foundationdb/pull/10875>`_

7.1.37
======
* Same as 7.1.36 release with AVX enabled.

7.1.36
======
* Released with AVX disabled.
* Added consistency check for rocksdb only `(PR #10751) <https://github.com/apple/foundationdb/pull/10751>`_
* Fixed grv queue stats when requests are dropped `(PR #10753) <https://github.com/apple/foundationdb/pull/10753>`_

7.1.35
======
* Same as 7.1.34 release with AVX enabled.
Expand Down
32 changes: 32 additions & 0 deletions documentation/sphinx/source/release-notes/release-notes-730.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,38 @@
Release Notes
#############

7.3.19
======
* Same as 7.3.18 release with AVX enabled.

7.3.18
======
* Released with AVX disabled.
* Changed Event to use std::latch from c++20. `(PR #10929) <https://github.com/apple/foundationdb/pull/10929>`_
* Added support for preinstalled libfmt. `(PR #10929) <https://github.com/apple/foundationdb/pull/10929>`_
* Changed perpetual_storage_wiggle_locality database option to take a list of localities. `(PR #10928) <https://github.com/apple/foundationdb/pull/10928>`_
* Fixed the trailing newline in c++filt output for Implib.so. `(PR #10921) <https://github.com/apple/foundationdb/pull/10921>`_
* Stopped tracking a storage server after its removal. `(PR #10921) <https://github.com/apple/foundationdb/pull/10921>`_
* Fixed Ratekeeper for not accounting dropped requests. `(PR #10921) <https://github.com/apple/foundationdb/pull/10921>`_
* Fixed a memory leak of cluster controller's status json invocation. `(PR #10921) <https://github.com/apple/foundationdb/pull/10921>`_
* Fixed cluster controller from issuing many point reads for storage metadata. `(PR #10906) <https://github.com/apple/foundationdb/pull/10906>`_
* Fixed multiple issues with AuditStorage. `(PR #10895) <https://github.com/apple/foundationdb/pull/10895>`_
* Disabled storage server read sampling by default. `(PR #10899) <https://github.com/apple/foundationdb/pull/10899>`_

7.3.17
======
* Same as 7.3.16 release with AVX enabled.

7.3.16
======
* Released with AVX disabled.
* Added location_metadata fdbcli to query shard locations and assignements. `(PR #10428) <https://github.com/apple/foundationdb/pull/10428>`_
* Added degraded/disconnected peer recovery in gray failure. `(PR #10541) <https://github.com/apple/foundationdb/pull/10541>`_
* Added replica and metadata audit support. `(PR #10631) <https://github.com/apple/foundationdb/pull/10631>`_
* Added a SecurityMode for data distributor where data movements are not allowed but auditStorage is enabled. `(PR #10660) <https://github.com/apple/foundationdb/pull/10660>`_
* Remove SS entries from RateKeeper once it is down. `(PR #10681) <https://github.com/apple/foundationdb/pull/10681/files>`_
* Added the support of manual compaction for Sharded RocksDB. `(PR #10815) <https://github.com/apple/foundationdb/pull/10838>`_

7.3.0
=====

Expand Down
3 changes: 3 additions & 0 deletions fdbbackup/backup.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ CSimpleOpt::SOption g_rgAgentOptions[] = {
{ OPT_HELP, "--help", SO_NONE },
{ OPT_DEVHELP, "--dev-help", SO_NONE },
{ OPT_BLOB_CREDENTIALS, "--blob-credentials", SO_REQ_SEP },
{ OPT_PROXY, "--proxy", SO_REQ_SEP },
TLS_OPTION_FLAGS,
SO_END_OF_OPTIONS
};
Expand Down Expand Up @@ -4092,6 +4093,7 @@ int main(int argc, char* argv[]) {
.detail("CommandLine", commandLine)
.setMaxFieldLength(0)
.detail("MemoryLimit", memLimit)
.detail("Proxy", proxy.orDefault(""))
.trackLatest("ProgramStart");

// Ordinarily, this is done when the network is run. However, network thread should be set before TraceEvents
Expand Down Expand Up @@ -4164,6 +4166,7 @@ int main(int argc, char* argv[]) {
case ProgramExe::AGENT:
if (!initCluster())
return FDB_EXIT_ERROR;
fileBackupAgentProxy = proxy;
f = stopAfter(runAgent(db));
break;
case ProgramExe::BACKUP:
Expand Down
2 changes: 2 additions & 0 deletions fdbcli/ConfigureCommand.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,8 @@ void configureGenerator(const char* text,
"resolvers=",
"perpetual_storage_wiggle=",
"perpetual_storage_wiggle_locality=",
// TODO(zhewu): update fdbcli command documentation.
"perpetual_storage_wiggle_engine=",
"storage_migration_type=",
"tenant_mode=",
"blob_granules_enabled=",
Expand Down
Loading

0 comments on commit 2c4af35

Please sign in to comment.