diff --git a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/coordinator/KinesisClientLibConfiguration.java b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/coordinator/KinesisClientLibConfiguration.java index d1358be4..d8d9068d 100644 --- a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/coordinator/KinesisClientLibConfiguration.java +++ b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/coordinator/KinesisClientLibConfiguration.java @@ -217,7 +217,7 @@ public class KinesisClientLibConfiguration { private AwsCredentialsProvider dynamoDBCredentialsProvider; private AwsCredentialsProvider cloudWatchCredentialsProvider; private long failoverTimeMillis; - private boolean doPriorityLeaseTaking; + private boolean enablePriorityLeaseAssignment; private String workerIdentifier; private long shardSyncIntervalMillis; private int maxRecords; @@ -960,8 +960,8 @@ public class KinesisClientLibConfiguration { return this; } - public KinesisClientLibConfiguration withDoPriorityLeaseTaking(boolean doPriorityLeaseTaking) { - this.doPriorityLeaseTaking = doPriorityLeaseTaking; + public KinesisClientLibConfiguration withEnablePriorityLeaseAssignment(boolean enablePriorityLeaseAssignment) { + this.enablePriorityLeaseAssignment = enablePriorityLeaseAssignment; return this; } diff --git a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfiguration.java b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfiguration.java index b857b6c3..8b6bc5e6 100644 --- a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfiguration.java +++ b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfiguration.java @@ -87,7 +87,7 @@ public class MultiLangDaemonConfiguration { @ConfigurationSettable(configurationClass = LeaseManagementConfig.class) private long failoverTimeMillis; @ConfigurationSettable(configurationClass = LeaseManagementConfig.class) - private Boolean doPriorityLeaseTaking; + private Boolean enablePriorityLeaseAssignment; @ConfigurationSettable(configurationClass = LeaseManagementConfig.class) private long shardSyncIntervalMillis; @ConfigurationSettable(configurationClass = LeaseManagementConfig.class) diff --git a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfigurationTest.java b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfigurationTest.java index 6c419bdc..da18e659 100644 --- a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfigurationTest.java +++ b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/config/MultiLangDaemonConfigurationTest.java @@ -91,14 +91,14 @@ public class MultiLangDaemonConfigurationTest { } @Test - public void testSetDoPriorityLeaseTaking() { + public void testSetEnablePriorityLeaseAssignment() { MultiLangDaemonConfiguration configuration = baseConfiguration(); - configuration.setDoPriorityLeaseTaking(Boolean.FALSE); + configuration.setEnablePriorityLeaseAssignment(false); MultiLangDaemonConfiguration.ResolvedConfiguration resolvedConfiguration = configuration.resolvedConfiguration( shardRecordProcessorFactory); - assertThat(resolvedConfiguration.leaseManagementConfig.doPriorityLeaseTaking(), equalTo(false)); + assertThat(resolvedConfiguration.leaseManagementConfig.enablePriorityLeaseAssignment(), equalTo(false)); } @Test diff --git a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/LeaseManagementConfig.java b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/LeaseManagementConfig.java index 2c01d471..aef4d87e 100644 --- a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/LeaseManagementConfig.java +++ b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/LeaseManagementConfig.java @@ -57,7 +57,7 @@ public class LeaseManagementConfig { public static final long DEFAULT_COMPLETED_LEASE_CLEANUP_INTERVAL_MILLIS = Duration.ofMinutes(5).toMillis(); public static final long DEFAULT_GARBAGE_LEASE_CLEANUP_INTERVAL_MILLIS = Duration.ofMinutes(30).toMillis(); public static final long DEFAULT_PERIODIC_SHARD_SYNC_INTERVAL_MILLIS = 2 * 60 * 1000L; - public static final boolean DEFAULT_DO_PRIORITY_LEASE_TAKING = true; + public static final boolean DEFAULT_ENABLE_PRIORITY_LEASE_ASSIGNMENT = true; public static final int DEFAULT_CONSECUTIVE_HOLES_FOR_TRIGGERING_LEASE_RECOVERY = 3; @@ -107,11 +107,12 @@ public class LeaseManagementConfig { * Whether workers should take very expired leases at priority. A very expired lease is when a worker does not * renew its lease in 3 * {@link LeaseManagementConfig#failoverTimeMillis}. Very expired leases will be taken at * priority for a worker which disregards the target leases for the worker but obeys - * {@link LeaseManagementConfig#maxLeasesForWorker} + * {@link LeaseManagementConfig#maxLeasesForWorker}. New leases for new shards due to shard mutation are + * considered to be very expired and taken with priority. * *
Default value: true
*/ - private boolean doPriorityLeaseTaking = DEFAULT_DO_PRIORITY_LEASE_TAKING; + private boolean enablePriorityLeaseAssignment = DEFAULT_ENABLE_PRIORITY_LEASE_ASSIGNMENT; /** * Shard sync interval in milliseconds - e.g. wait for this long between shard sync tasks. @@ -381,7 +382,7 @@ public class LeaseManagementConfig { workerIdentifier(), executorService(), failoverTimeMillis(), - doPriorityLeaseTaking(), + enablePriorityLeaseAssignment(), epsilonMillis(), maxLeasesForWorker(), maxLeasesToStealAtOneTime(), diff --git a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseCoordinator.java b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseCoordinator.java index c7b83d82..647f3c35 100644 --- a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseCoordinator.java +++ b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseCoordinator.java @@ -153,7 +153,7 @@ public class DynamoDBLeaseCoordinator implements LeaseCoordinator { final long initialLeaseTableWriteCapacity, final MetricsFactory metricsFactory) { this(leaseRefresher, workerIdentifier, leaseDurationMillis, - LeaseManagementConfig.DEFAULT_DO_PRIORITY_LEASE_TAKING, epsilonMillis, maxLeasesForWorker, + LeaseManagementConfig.DEFAULT_ENABLE_PRIORITY_LEASE_ASSIGNMENT, epsilonMillis, maxLeasesForWorker, maxLeasesToStealAtOneTime, maxLeaseRenewerThreadCount, TableConstants.DEFAULT_INITIAL_LEASE_TABLE_READ_CAPACITY, TableConstants.DEFAULT_INITIAL_LEASE_TABLE_WRITE_CAPACITY, metricsFactory); @@ -168,8 +168,8 @@ public class DynamoDBLeaseCoordinator implements LeaseCoordinator { * Identifies the worker (e.g. useful to track lease ownership) * @param leaseDurationMillis * Duration of a lease - * @param doPriorityLeaseTaking - * Whether to do priority lease taking for very expired leases + * @param enablePriorityLeaseAssignment + * Whether to do priority lease assignment for very expired leases * @param epsilonMillis * Allow for some variance when calculating lease expirations * @param maxLeasesForWorker @@ -186,7 +186,7 @@ public class DynamoDBLeaseCoordinator implements LeaseCoordinator { public DynamoDBLeaseCoordinator(final LeaseRefresher leaseRefresher, final String workerIdentifier, final long leaseDurationMillis, - final boolean doPriorityLeaseTaking, + final boolean enablePriorityLeaseAssignment, final long epsilonMillis, final int maxLeasesForWorker, final int maxLeasesToStealAtOneTime, @@ -199,7 +199,7 @@ public class DynamoDBLeaseCoordinator implements LeaseCoordinator { this.leaseTaker = new DynamoDBLeaseTaker(leaseRefresher, workerIdentifier, leaseDurationMillis, metricsFactory) .withMaxLeasesForWorker(maxLeasesForWorker) .withMaxLeasesToStealAtOneTime(maxLeasesToStealAtOneTime) - .withDoPriorityLeaseTaking(doPriorityLeaseTaking); + .withEnablePriorityLeaseAssignment(enablePriorityLeaseAssignment); this.leaseRenewer = new DynamoDBLeaseRenewer( leaseRefresher, workerIdentifier, leaseDurationMillis, leaseRenewalThreadpool, metricsFactory); this.renewerIntervalMillis = getRenewerTakerIntervalMillis(leaseDurationMillis, epsilonMillis); diff --git a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseManagementFactory.java b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseManagementFactory.java index 3d4573d0..7d9ebeef 100644 --- a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseManagementFactory.java +++ b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/leases/dynamodb/DynamoDBLeaseManagementFactory.java @@ -71,7 +71,7 @@ public class DynamoDBLeaseManagementFactory implements LeaseManagementFactory { private Function