/// <summary> /// Retry Call Setting for Create Table /// </summary> /// <param name="tryCount"></param> /// <returns></returns> private BigtableTableAdminSettings CreateRetryCallSettings() { var clientSettings = BigtableTableAdminSettings.GetDefault(); var longTimeout = CallTiming.FromTimeout(TimeSpan.FromMinutes(2)); clientSettings.CreateTableSettings = clientSettings.CreateTableSettings.WithCallTiming(longTimeout); return(clientSettings); }
public async Task CheckConsistencyAsync() { // TODO: When replication goes to beta or GA, having something cleaner available than what is below. // Snippet: CheckConsistencyAsync(TableName,string,CallSettings) // Additional: GenerateConsistencyTokenAsync(TableName,CallSettings) BigtableTableAdminClient adminClient = await BigtableTableAdminClient.CreateAsync(); BigtableTableAdminSettings settings = BigtableTableAdminSettings.GetDefault(); CallSettings generateSettings = settings.GenerateConsistencyTokenSettings; CallSettings checkConsistencySettings = settings.CheckConsistencySettings; // Create a consistency token for the table. TableName tableName = new TableName("[PROJECT]", "[INSTANCE]", "[TABLE]"); GenerateConsistencyTokenResponse generateResponse = await adminClient.GenerateConsistencyTokenAsync(tableName, generateSettings); string consistencyToken = generateResponse.ConsistencyToken; // Check for consistency for 60 seconds at 10 second intervals. TimeSpan pollingTimeout = TimeSpan.FromSeconds(60); TimeSpan pollingInterval = TimeSpan.FromSeconds(10); CheckConsistencyResponse checkConsistencyResponse = await Polling.PollRepeatedlyAsync( deadline => adminClient.CheckConsistencyAsync( tableName, consistencyToken, checkConsistencySettings.WithEarlierDeadline(deadline, settings.Clock)), response => response.Consistent, settings.Clock, settings.Scheduler, new PollSettings(Expiration.FromTimeout(pollingTimeout), pollingInterval), checkConsistencySettings.CancellationToken ?? CancellationToken.None); if (checkConsistencyResponse.Consistent) { // Replication has caught up. } // End snippet }