mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-22 23:19:02 +08:00
Merge branch 'release-6.1'
# Conflicts: # documentation/sphinx/source/release-notes.rst # fdbserver/storageserver.actor.cpp # versions.target
This commit is contained in:
commit
20e3edeb0a
@ -13,7 +13,7 @@ elseif(CPACK_GENERATOR MATCHES "DEB")
|
|||||||
set(CPACK_COMPONENTS_ALL clients-deb server-deb)
|
set(CPACK_COMPONENTS_ALL clients-deb server-deb)
|
||||||
set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md)
|
set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md)
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
|
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
|
||||||
elseif(CPACK_GENERATOR MATCHES "PackageMaker")
|
elseif(CPACK_GENERATOR MATCHES "productbuild")
|
||||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/")
|
set(CPACK_PACKAGING_INSTALL_PREFIX "/")
|
||||||
set(CPACK_COMPONENTS_ALL clients-pm server-pm)
|
set(CPACK_COMPONENTS_ALL clients-pm server-pm)
|
||||||
set(CPACK_STRIP_FILES TRUE)
|
set(CPACK_STRIP_FILES TRUE)
|
||||||
@ -21,10 +21,11 @@ elseif(CPACK_GENERATOR MATCHES "PackageMaker")
|
|||||||
set(CPACK_POSTFLIGHT_SERVER_SCRIPT ${CMAKE_SOURCE_DIR}/packaging/osx/scripts-server/postinstall)
|
set(CPACK_POSTFLIGHT_SERVER_SCRIPT ${CMAKE_SOURCE_DIR}/packaging/osx/scripts-server/postinstall)
|
||||||
set(CPACK_POSTFLIGHT_CLIENTS_SCRIPT ${CMAKE_SOURCE_DIR}/packaging/osx/scripts-server/preinstall)
|
set(CPACK_POSTFLIGHT_CLIENTS_SCRIPT ${CMAKE_SOURCE_DIR}/packaging/osx/scripts-server/preinstall)
|
||||||
# Commenting out this readme file until it works within packaging
|
# Commenting out this readme file until it works within packaging
|
||||||
# set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/packaging/osx/resources/conclusion.rtf)
|
set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/packaging/osx/resources/conclusion.rtf)
|
||||||
set(CPACK_PRODUCTBUILD_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/packaging/osx/resources)
|
set(CPACK_PRODUCTBUILD_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/packaging/osx/resources)
|
||||||
# Changing the path of this file as CMAKE_BINARY_DIR does not seem to be defined
|
# Changing the path of this file as CMAKE_BINARY_DIR does not seem to be defined
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE License.txt)
|
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_BINARY_DIR}/License.txt)
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "foundationdb-${PROJECT_VERSION}.${CURRENT_GIT_VERSION}${prerelease_string}")
|
||||||
elseif(CPACK_GENERATOR MATCHES "TGZ")
|
elseif(CPACK_GENERATOR MATCHES "TGZ")
|
||||||
set(CPACK_STRIP_FILES TRUE)
|
set(CPACK_STRIP_FILES TRUE)
|
||||||
set(CPACK_COMPONENTS_ALL clients-tgz server-tgz)
|
set(CPACK_COMPONENTS_ALL clients-tgz server-tgz)
|
||||||
|
@ -147,14 +147,15 @@ function(fdb_install)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(CPACK_GENERATOR TGZ PackageMaker)
|
set(CPACK_GENERATOR TGZ productbuild)
|
||||||
else()
|
else()
|
||||||
set(CPACK_GENERATOR RPM DEB TGZ)
|
set(CPACK_GENERATOR RPM DEB TGZ)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_CHECKSUM SHA256)
|
set(CPACK_PACKAGE_CHECKSUM SHA256)
|
||||||
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_SOURCE_DIR}/cmake/CPackConfig.cmake")
|
configure_file("${CMAKE_SOURCE_DIR}/cmake/CPackConfig.cmake" "${CMAKE_BINARY_DIR}/packaging/CPackConfig.cmake")
|
||||||
|
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/packaging/CPackConfig.cmake")
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Version information
|
# Version information
|
||||||
@ -332,7 +333,7 @@ set(CPACK_DEBIAN_SERVER-DEB_PACKAGE_CONTROL_EXTRA
|
|||||||
# MacOS configuration
|
# MacOS configuration
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
if(NOT WIN32)
|
if(APPLE)
|
||||||
install(PROGRAMS ${CMAKE_SOURCE_DIR}/packaging/osx/uninstall-FoundationDB.sh
|
install(PROGRAMS ${CMAKE_SOURCE_DIR}/packaging/osx/uninstall-FoundationDB.sh
|
||||||
DESTINATION "usr/local/foundationdb"
|
DESTINATION "usr/local/foundationdb"
|
||||||
COMPONENT clients-pm)
|
COMPONENT clients-pm)
|
||||||
|
@ -10,38 +10,38 @@ macOS
|
|||||||
|
|
||||||
The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server.
|
The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server.
|
||||||
|
|
||||||
* `FoundationDB-6.1.9.pkg <https://www.foundationdb.org/downloads/6.1.9/macOS/installers/FoundationDB-6.1.9.pkg>`_
|
* `FoundationDB-6.1.10.pkg <https://www.foundationdb.org/downloads/6.1.10/macOS/installers/FoundationDB-6.1.10.pkg>`_
|
||||||
|
|
||||||
Ubuntu
|
Ubuntu
|
||||||
------
|
------
|
||||||
|
|
||||||
The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x.
|
The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x.
|
||||||
|
|
||||||
* `foundationdb-clients-6.1.9-1_amd64.deb <https://www.foundationdb.org/downloads/6.1.9/ubuntu/installers/foundationdb-clients_6.1.9-1_amd64.deb>`_
|
* `foundationdb-clients-6.1.10-1_amd64.deb <https://www.foundationdb.org/downloads/6.1.10/ubuntu/installers/foundationdb-clients_6.1.10-1_amd64.deb>`_
|
||||||
* `foundationdb-server-6.1.9-1_amd64.deb <https://www.foundationdb.org/downloads/6.1.9/ubuntu/installers/foundationdb-server_6.1.9-1_amd64.deb>`_ (depends on the clients package)
|
* `foundationdb-server-6.1.10-1_amd64.deb <https://www.foundationdb.org/downloads/6.1.10/ubuntu/installers/foundationdb-server_6.1.10-1_amd64.deb>`_ (depends on the clients package)
|
||||||
|
|
||||||
RHEL/CentOS EL6
|
RHEL/CentOS EL6
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x.
|
The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x.
|
||||||
|
|
||||||
* `foundationdb-clients-6.1.9-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.9/rhel6/installers/foundationdb-clients-6.1.9-1.el6.x86_64.rpm>`_
|
* `foundationdb-clients-6.1.10-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.10/rhel6/installers/foundationdb-clients-6.1.10-1.el6.x86_64.rpm>`_
|
||||||
* `foundationdb-server-6.1.9-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.9/rhel6/installers/foundationdb-server-6.1.9-1.el6.x86_64.rpm>`_ (depends on the clients package)
|
* `foundationdb-server-6.1.10-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.10/rhel6/installers/foundationdb-server-6.1.10-1.el6.x86_64.rpm>`_ (depends on the clients package)
|
||||||
|
|
||||||
RHEL/CentOS EL7
|
RHEL/CentOS EL7
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x.
|
The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x.
|
||||||
|
|
||||||
* `foundationdb-clients-6.1.9-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.9/rhel7/installers/foundationdb-clients-6.1.9-1.el7.x86_64.rpm>`_
|
* `foundationdb-clients-6.1.10-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.10/rhel7/installers/foundationdb-clients-6.1.10-1.el7.x86_64.rpm>`_
|
||||||
* `foundationdb-server-6.1.9-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.9/rhel7/installers/foundationdb-server-6.1.9-1.el7.x86_64.rpm>`_ (depends on the clients package)
|
* `foundationdb-server-6.1.10-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.1.10/rhel7/installers/foundationdb-server-6.1.10-1.el7.x86_64.rpm>`_ (depends on the clients package)
|
||||||
|
|
||||||
Windows
|
Windows
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server.
|
The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server.
|
||||||
|
|
||||||
* `foundationdb-6.1.9-x64.msi <https://www.foundationdb.org/downloads/6.1.9/windows/installers/foundationdb-6.1.9-x64.msi>`_
|
* `foundationdb-6.1.10-x64.msi <https://www.foundationdb.org/downloads/6.1.10/windows/installers/foundationdb-6.1.10-x64.msi>`_
|
||||||
|
|
||||||
API Language Bindings
|
API Language Bindings
|
||||||
=====================
|
=====================
|
||||||
@ -58,18 +58,18 @@ On macOS and Windows, the FoundationDB Python API bindings are installed as part
|
|||||||
|
|
||||||
If you need to use the FoundationDB Python API from other Python installations or paths, download the Python package:
|
If you need to use the FoundationDB Python API from other Python installations or paths, download the Python package:
|
||||||
|
|
||||||
* `foundationdb-6.1.9.tar.gz <https://www.foundationdb.org/downloads/6.1.9/bindings/python/foundationdb-6.1.9.tar.gz>`_
|
* `foundationdb-6.1.10.tar.gz <https://www.foundationdb.org/downloads/6.1.10/bindings/python/foundationdb-6.1.10.tar.gz>`_
|
||||||
|
|
||||||
Ruby 1.9.3/2.0.0+
|
Ruby 1.9.3/2.0.0+
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
* `fdb-6.1.9.gem <https://www.foundationdb.org/downloads/6.1.9/bindings/ruby/fdb-6.1.9.gem>`_
|
* `fdb-6.1.10.gem <https://www.foundationdb.org/downloads/6.1.10/bindings/ruby/fdb-6.1.10.gem>`_
|
||||||
|
|
||||||
Java 8+
|
Java 8+
|
||||||
-------
|
-------
|
||||||
|
|
||||||
* `fdb-java-6.1.9.jar <https://www.foundationdb.org/downloads/6.1.9/bindings/java/fdb-java-6.1.9.jar>`_
|
* `fdb-java-6.1.10.jar <https://www.foundationdb.org/downloads/6.1.10/bindings/java/fdb-java-6.1.10.jar>`_
|
||||||
* `fdb-java-6.1.9-javadoc.jar <https://www.foundationdb.org/downloads/6.1.9/bindings/java/fdb-java-6.1.9-javadoc.jar>`_
|
* `fdb-java-6.1.10-javadoc.jar <https://www.foundationdb.org/downloads/6.1.10/bindings/java/fdb-java-6.1.10-javadoc.jar>`_
|
||||||
|
|
||||||
Go 1.11+
|
Go 1.11+
|
||||||
--------
|
--------
|
||||||
|
@ -2,6 +2,28 @@
|
|||||||
Release Notes
|
Release Notes
|
||||||
#############
|
#############
|
||||||
|
|
||||||
|
6.1.10
|
||||||
|
=====
|
||||||
|
|
||||||
|
Performance
|
||||||
|
-----------
|
||||||
|
|
||||||
|
* Improved the recovery speed of storage servers with large amount of data. `(PR #1700) <https://github.com/apple/foundationdb/pull/1700>`_
|
||||||
|
|
||||||
|
Fixes
|
||||||
|
-----
|
||||||
|
|
||||||
|
* The ``fdbrestore`` commands ``abort``, ``wait``, and ``status`` would use a default cluster file instead of the destination cluster file argument. `(PR #1701) <https://github.com/apple/foundationdb/pull/1701>`_
|
||||||
|
|
||||||
|
6.1.9
|
||||||
|
=====
|
||||||
|
|
||||||
|
Fixes
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Sometimes a minority of coordinators would not converge to the leader. `(PR #1649) <https://github.com/apple/foundationdb/pull/1649>`_
|
||||||
|
* HTTP responses indicating a server-side error are no longer expected to contain a ResponseID header. `(PR #1651) <https://github.com/apple/foundationdb/pull/1651>`_
|
||||||
|
|
||||||
6.1.8
|
6.1.8
|
||||||
=====
|
=====
|
||||||
|
|
||||||
@ -152,4 +174,4 @@ Earlier release notes
|
|||||||
* :doc:`Beta 2 (API Version 22) </old-release-notes/release-notes-022>`
|
* :doc:`Beta 2 (API Version 22) </old-release-notes/release-notes-022>`
|
||||||
* :doc:`Beta 1 (API Version 21) </old-release-notes/release-notes-021>`
|
* :doc:`Beta 1 (API Version 21) </old-release-notes/release-notes-021>`
|
||||||
* :doc:`Alpha 6 (API Version 16) </old-release-notes/release-notes-016>`
|
* :doc:`Alpha 6 (API Version 16) </old-release-notes/release-notes-016>`
|
||||||
* :doc:`Alpha 5 (API Version 14) </old-release-notes/release-notes-014>`
|
* :doc:`Alpha 5 (API Version 14) </old-release-notes/release-notes-014>`
|
@ -1947,7 +1947,7 @@ Reference<IBackupContainer> openBackupContainer(const char *name, std::string de
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
ACTOR Future<Void> runRestore(std::string destClusterFile, std::string originalClusterFile, std::string tagName, std::string container, Standalone<VectorRef<KeyRangeRef>> ranges, Version targetVersion, std::string targetTimestamp, bool performRestore, bool verbose, bool waitForDone, std::string addPrefix, std::string removePrefix) {
|
ACTOR Future<Void> runRestore(Database db, std::string originalClusterFile, std::string tagName, std::string container, Standalone<VectorRef<KeyRangeRef>> ranges, Version targetVersion, std::string targetTimestamp, bool performRestore, bool verbose, bool waitForDone, std::string addPrefix, std::string removePrefix) {
|
||||||
if(ranges.empty()) {
|
if(ranges.empty()) {
|
||||||
ranges.push_back_deep(ranges.arena(), normalKeys);
|
ranges.push_back_deep(ranges.arena(), normalKeys);
|
||||||
}
|
}
|
||||||
@ -1957,16 +1957,6 @@ ACTOR Future<Void> runRestore(std::string destClusterFile, std::string originalC
|
|||||||
throw restore_error();
|
throw restore_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(destClusterFile.empty()) {
|
|
||||||
fprintf(stderr, "Restore destination cluster file must be specified explicitly.\n");
|
|
||||||
throw restore_error();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!fileExists(destClusterFile)) {
|
|
||||||
fprintf(stderr, "Restore destination cluster file '%s' does not exist.\n", destClusterFile.c_str());
|
|
||||||
throw restore_error();
|
|
||||||
}
|
|
||||||
|
|
||||||
state Optional<Database> origDb;
|
state Optional<Database> origDb;
|
||||||
|
|
||||||
// Resolve targetTimestamp if given
|
// Resolve targetTimestamp if given
|
||||||
@ -1988,7 +1978,6 @@ ACTOR Future<Void> runRestore(std::string destClusterFile, std::string originalC
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
state Database db = Database::createDatabase(destClusterFile, Database::API_VERSION_LATEST);
|
|
||||||
state FileBackupAgent backupAgent;
|
state FileBackupAgent backupAgent;
|
||||||
|
|
||||||
state Reference<IBackupContainer> bc = openBackupContainer(exeRestore.toString().c_str(), container);
|
state Reference<IBackupContainer> bc = openBackupContainer(exeRestore.toString().c_str(), container);
|
||||||
@ -3404,9 +3393,26 @@ int main(int argc, char* argv[]) {
|
|||||||
return FDB_EXIT_ERROR;
|
return FDB_EXIT_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(restoreClusterFileDest.empty()) {
|
||||||
|
fprintf(stderr, "Restore destination cluster file must be specified explicitly.\n");
|
||||||
|
return FDB_EXIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!fileExists(restoreClusterFileDest)) {
|
||||||
|
fprintf(stderr, "Restore destination cluster file '%s' does not exist.\n", restoreClusterFileDest.c_str());
|
||||||
|
return FDB_EXIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
db = Database::createDatabase(restoreClusterFileDest, Database::API_VERSION_LATEST);
|
||||||
|
} catch(Error &e) {
|
||||||
|
fprintf(stderr, "Restore destination cluster file '%s' invalid: %s\n", restoreClusterFileDest.c_str(), e.what());
|
||||||
|
return FDB_EXIT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
switch(restoreType) {
|
switch(restoreType) {
|
||||||
case RESTORE_START:
|
case RESTORE_START:
|
||||||
f = stopAfter( runRestore(restoreClusterFileDest, restoreClusterFileOrig, tagName, restoreContainer, backupKeys, restoreVersion, restoreTimestamp, !dryRun, !quietDisplay, waitForDone, addPrefix, removePrefix) );
|
f = stopAfter( runRestore(db, restoreClusterFileOrig, tagName, restoreContainer, backupKeys, restoreVersion, restoreTimestamp, !dryRun, !quietDisplay, waitForDone, addPrefix, removePrefix) );
|
||||||
break;
|
break;
|
||||||
case RESTORE_WAIT:
|
case RESTORE_WAIT:
|
||||||
f = stopAfter( success(ba.waitRestore(db, KeyRef(tagName), true)) );
|
f = stopAfter( success(ba.waitRestore(db, KeyRef(tagName), true)) );
|
||||||
|
@ -417,8 +417,9 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs) {
|
|||||||
init( MAX_STORAGE_SERVER_WATCH_BYTES, 100e6 ); if( randomize && BUGGIFY ) MAX_STORAGE_SERVER_WATCH_BYTES = 10e3;
|
init( MAX_STORAGE_SERVER_WATCH_BYTES, 100e6 ); if( randomize && BUGGIFY ) MAX_STORAGE_SERVER_WATCH_BYTES = 10e3;
|
||||||
init( MAX_BYTE_SAMPLE_CLEAR_MAP_SIZE, 1e9 ); if( randomize && BUGGIFY ) MAX_BYTE_SAMPLE_CLEAR_MAP_SIZE = 1e3;
|
init( MAX_BYTE_SAMPLE_CLEAR_MAP_SIZE, 1e9 ); if( randomize && BUGGIFY ) MAX_BYTE_SAMPLE_CLEAR_MAP_SIZE = 1e3;
|
||||||
init( LONG_BYTE_SAMPLE_RECOVERY_DELAY, 60.0 );
|
init( LONG_BYTE_SAMPLE_RECOVERY_DELAY, 60.0 );
|
||||||
init( BYTE_SAMPLE_LOAD_PARALLELISM, 32 ); if( randomize && BUGGIFY ) BYTE_SAMPLE_LOAD_PARALLELISM = 1;
|
init( BYTE_SAMPLE_LOAD_PARALLELISM, 8 ); if( randomize && BUGGIFY ) BYTE_SAMPLE_LOAD_PARALLELISM = 1;
|
||||||
init( BYTE_SAMPLE_LOAD_DELAY, 0.0 ); if( randomize && BUGGIFY ) BYTE_SAMPLE_LOAD_DELAY = 0.1;
|
init( BYTE_SAMPLE_LOAD_DELAY, 0.0 ); if( randomize && BUGGIFY ) BYTE_SAMPLE_LOAD_DELAY = 0.1;
|
||||||
|
init( BYTE_SAMPLE_START_DELAY, 1.0 ); if( randomize && BUGGIFY ) BYTE_SAMPLE_LOAD_DELAY = 0.0;
|
||||||
init( UPDATE_STORAGE_PROCESS_STATS_INTERVAL, 5.0 );
|
init( UPDATE_STORAGE_PROCESS_STATS_INTERVAL, 5.0 );
|
||||||
|
|
||||||
//Wait Failure
|
//Wait Failure
|
||||||
|
@ -358,6 +358,7 @@ public:
|
|||||||
double LONG_BYTE_SAMPLE_RECOVERY_DELAY;
|
double LONG_BYTE_SAMPLE_RECOVERY_DELAY;
|
||||||
int BYTE_SAMPLE_LOAD_PARALLELISM;
|
int BYTE_SAMPLE_LOAD_PARALLELISM;
|
||||||
double BYTE_SAMPLE_LOAD_DELAY;
|
double BYTE_SAMPLE_LOAD_DELAY;
|
||||||
|
double BYTE_SAMPLE_START_DELAY;
|
||||||
double UPDATE_STORAGE_PROCESS_STATS_INTERVAL;
|
double UPDATE_STORAGE_PROCESS_STATS_INTERVAL;
|
||||||
|
|
||||||
//Wait Failure
|
//Wait Failure
|
||||||
|
@ -3086,11 +3086,12 @@ ACTOR Future<Void> applyByteSampleResult( StorageServer* data, IKeyValueStore* s
|
|||||||
return Void();
|
return Void();
|
||||||
}
|
}
|
||||||
|
|
||||||
ACTOR Future<Void> restoreByteSample(StorageServer* data, IKeyValueStore* storage, Promise<Void> byteSampleSampleRecovered) {
|
ACTOR Future<Void> restoreByteSample(StorageServer* data, IKeyValueStore* storage, Promise<Void> byteSampleSampleRecovered, Future<Void> startRestore) {
|
||||||
state std::vector<Standalone<VectorRef<KeyValueRef>>> byteSampleSample;
|
state std::vector<Standalone<VectorRef<KeyValueRef>>> byteSampleSample;
|
||||||
wait( applyByteSampleResult(data, storage, persistByteSampleSampleKeys.begin, persistByteSampleSampleKeys.end, &byteSampleSample) );
|
wait( applyByteSampleResult(data, storage, persistByteSampleSampleKeys.begin, persistByteSampleSampleKeys.end, &byteSampleSample) );
|
||||||
byteSampleSampleRecovered.send(Void());
|
byteSampleSampleRecovered.send(Void());
|
||||||
wait( delay( BUGGIFY ? deterministicRandom()->random01() * 2.0 : 0.0001 ) );
|
wait( startRestore );
|
||||||
|
wait( delay(SERVER_KNOBS->BYTE_SAMPLE_START_DELAY) );
|
||||||
|
|
||||||
size_t bytes_per_fetch = 0;
|
size_t bytes_per_fetch = 0;
|
||||||
// Since the expected size also includes (as of now) the space overhead of the container, we calculate our own number here
|
// Since the expected size also includes (as of now) the space overhead of the container, we calculate our own number here
|
||||||
@ -3137,7 +3138,8 @@ ACTOR Future<bool> restoreDurableState( StorageServer* data, IKeyValueStore* sto
|
|||||||
state Future<Standalone<VectorRef<KeyValueRef>>> fShardAvailable = storage->readRange(persistShardAvailableKeys);
|
state Future<Standalone<VectorRef<KeyValueRef>>> fShardAvailable = storage->readRange(persistShardAvailableKeys);
|
||||||
|
|
||||||
state Promise<Void> byteSampleSampleRecovered;
|
state Promise<Void> byteSampleSampleRecovered;
|
||||||
data->byteSampleRecovery = restoreByteSample(data, storage, byteSampleSampleRecovered);
|
state Promise<Void> startByteSampleRestore;
|
||||||
|
data->byteSampleRecovery = restoreByteSample(data, storage, byteSampleSampleRecovered, startByteSampleRestore.getFuture());
|
||||||
|
|
||||||
TraceEvent("ReadingDurableState", data->thisServerID);
|
TraceEvent("ReadingDurableState", data->thisServerID);
|
||||||
wait( waitForAll( (vector<Future<Optional<Value>>>(), fFormat, fID, fVersion, fLogProtocol, fPrimaryLocality) ) );
|
wait( waitForAll( (vector<Future<Optional<Value>>>(), fFormat, fID, fVersion, fLogProtocol, fPrimaryLocality) ) );
|
||||||
@ -3216,6 +3218,7 @@ ACTOR Future<bool> restoreDurableState( StorageServer* data, IKeyValueStore* sto
|
|||||||
}
|
}
|
||||||
|
|
||||||
validate(data, true);
|
validate(data, true);
|
||||||
|
startByteSampleRestore.send(Void());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
|
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
|
||||||
<Product Name='$(var.Title)'
|
<Product Name='$(var.Title)'
|
||||||
Id='{03A2BD79-EF30-41BA-A6D3-8563B7D46810}'
|
Id='{001349F6-30BD-4854-ABD6-A8D30CB31677}'
|
||||||
UpgradeCode='{A95EA002-686E-4164-8356-C715B7F8B1C8}'
|
UpgradeCode='{A95EA002-686E-4164-8356-C715B7F8B1C8}'
|
||||||
Version='$(var.Version)'
|
Version='$(var.Version)'
|
||||||
Manufacturer='$(var.Manufacturer)'
|
Manufacturer='$(var.Manufacturer)'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user