Share via


KeyValueStoreReplica.BackupAsync Method

Definition

Overloads

BackupAsync(String, StoreBackupOption, Func<StoreBackupInfo,Task<Boolean>>)

Asynchronously creates a backup of the key/value store.

BackupAsync(String, StoreBackupOption, Func<StoreBackupInfo,Task<Boolean>>, CancellationToken)

Asynchronously creates a backup of the key/value store.

BackupAsync(String, StoreBackupOption, Func<StoreBackupInfo,Task<Boolean>>)

Asynchronously creates a backup of the key/value store.

public System.Threading.Tasks.Task BackupAsync (string backupDirectory, System.Fabric.StoreBackupOption backupOption, Func<System.Fabric.StoreBackupInfo,System.Threading.Tasks.Task<bool>> postBackupAsyncFunc);
member this.BackupAsync : string * System.Fabric.StoreBackupOption * Func<System.Fabric.StoreBackupInfo, System.Threading.Tasks.Task<bool>> -> System.Threading.Tasks.Task
Public Function BackupAsync (backupDirectory As String, backupOption As StoreBackupOption, postBackupAsyncFunc As Func(Of StoreBackupInfo, Task(Of Boolean))) As Task

Parameters

backupDirectory
String

The directory where the backup is to be stored. If backupOption is TruncateLogsOnly, then this parameter should be null. Otherwise, this parameter cannot be null, empty or contain just whitespace. UNC paths may also be provided. If the directory doesn't exist, it is created. If it exists and isn't empty, then incremental backup fails with FabricBackupDirectoryNotEmptyException.

backupOption
StoreBackupOption

The options for the backup.

postBackupAsyncFunc
Func<StoreBackupInfo,Task<Boolean>>

The post backup asynchronous method that is invoked by Service Fabric to allow the user to complete any post backup activity before returning control to the system. If null is passed in for this, incremental backups are disallowed. If the post-backup method returns false, then again, incremental backups are disallowed.

Returns

A task that represents the asynchronous backup operation.

Exceptions

backupDirectory is null when backupOption is not TruncateLogsOnly.

backupDirectory is empty or contains just whitespaces when backupOption is not TruncateLogsOnly or backupDirectory is not null when backupOption is TruncateLogsOnly.

When backupOption is Incremental and the backup directory already contains files or sub-directories.

When a previously initiated backup is currently in progress.

Examples

Below is an example of a simple implementation of postBackupAsyncFunc

private async Task<bool> SimplePostBackupHandler(StoreBackupInfo info)
{
    return await CopyBackupToAzureBlobStorage(info);
}

Remarks

The postBackupAsyncFunc is not invoked if there is an error during backup. Also, it is not invoked when backupOption is TruncateLogsOnly since there is no further action needed from the user in this case to complete a single backup cycle.

Applies to

BackupAsync(String, StoreBackupOption, Func<StoreBackupInfo,Task<Boolean>>, CancellationToken)

Asynchronously creates a backup of the key/value store.

public System.Threading.Tasks.Task BackupAsync (string backupDirectory, System.Fabric.StoreBackupOption backupOption, Func<System.Fabric.StoreBackupInfo,System.Threading.Tasks.Task<bool>> postBackupAsyncFunc, System.Threading.CancellationToken cancellationToken);
member this.BackupAsync : string * System.Fabric.StoreBackupOption * Func<System.Fabric.StoreBackupInfo, System.Threading.Tasks.Task<bool>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function BackupAsync (backupDirectory As String, backupOption As StoreBackupOption, postBackupAsyncFunc As Func(Of StoreBackupInfo, Task(Of Boolean)), cancellationToken As CancellationToken) As Task

Parameters

backupDirectory
String

The directory where the backup is to be stored. If backupOption is TruncateLogsOnly, then this parameter should be null. Otherwise, this parameter cannot be null, empty or contain just whitespace. UNC paths may also be provided. If the directory doesn't exist, it is created. If it exists and isn't empty, then incremental backup fails with FabricBackupDirectoryNotEmptyException.

backupOption
StoreBackupOption

The options for the backup.

postBackupAsyncFunc
Func<StoreBackupInfo,Task<Boolean>>

The post backup asynchronous method that is invoked by Service Fabric to allow the user to complete any post backup activity before returning control to the system. If null is passed in for this, incremental backups are disallowed. If the post-backup method returns false, then again, incremental backups are disallowed.

cancellationToken
CancellationToken

The token to monitor for cancellation requests.

Returns

A task that represents the asynchronous backup operation.

Exceptions

backupDirectory is null when backupOption is not TruncateLogsOnly.

backupDirectory is empty or contains just whitespaces when backupOption is not TruncateLogsOnly or backupDirectory is not null when backupOption is TruncateLogsOnly.

When backupOption is Incremental and the backup directory already contains files or sub-directories.

When a previously initiated backup is currently in progress.

Examples

Below is an example of a simple implementation of postBackupAsyncFunc

private async Task<bool> SimplePostBackupHandler(StoreBackupInfo info)
{
    return await CopyBackupToAzureBlobStorage(info);
}

Remarks

The postBackupAsyncFunc is not invoked if there is an error during backup. Also, it is not invoked when backupOption is TruncateLogsOnly since there is no further action needed from the user in this case to complete a single backup cycle.

Applies to