Comments (3)
- This is an interesting idea, thanks for suggesting it. For merges, the benefit seems straightforward (apps may want to avoid repopulating a cache on another instance). In the case of a split, the split may have been due to capacity restrictions of the Worker instance, in which case, keeping the child shards on the same instance as their parent will perpetuate whatever capacity issue the split was intended to relieve. Do you have any suggestions or preferences for how the KCL would behave in this scenario?
- This configuration option, cleanupLeasesUponShardCompletion makes the KCL cleanup leases for shards which no longer need processing because all their records have been processed. By default, it is set to true, so after a reshard event, the KCL worker apps should eventually converge to only processing (and only holding leases for) shards which are open.
from amazon-kinesis-client.
Thanks for the response.
For 1, similar use cases for merge and split come up where the Worker instance is keeping state as it reads records and needs any future records with the same partition key to be processed by that same Worker. For the scenario where you need to shard for instance capacity restrictions, the KCL could make this behavior be a configurable flag (keep the current behavior as the default, but be able to configure it to force child shards to be processed by the parent).
For 2, I will test this again, but I believe last time that it shutdown the Worker threads for "closed" shards but still kept them as shard assignments (and therefore, the instance did not try and re-balance and grab other open shards from other instances).
from amazon-kinesis-client.
It looks like there is the same suggestion in #78 for this.
Please reopen if you're still seeing an issue with 2.
from amazon-kinesis-client.
Related Issues (20)
- AWS SDK v2 upgrade plans
- Clarification about DynamoDB initial configuration for KCL with consumer application HOT 3
- Guava dependencies with vulnerabilities in 1.x HOT 1
- Shutdown has been called on the cache, can't accept new requests.
- Feature Request: Stream name in aws kcl consumer when MultiStreamTracker is used HOT 4
- Problem in ts-tsbgservice-kinesis-incoming-emea-prod HOT 2
- Unexpected exception was thrown - IllegalStateException
- RetrievalConfig.initialPositionInStreamExtended deprecated HOT 1
- KCL continues to hold leases after unexpected shutdown due to Error
- Please update your schema-registry-serde library in order to solve CVE issue HOT 1
- Need more test cases, samples, documentation for StreamConfigs in case of Multi Streams with KCL2.x.
- Support for both polling and fanout retrieval mode for multi-stream consumer configuration HOT 1
- amazon-kinesis-client-pom using old awssdk.version HOT 2
- i.n.c.ChannelInitializer Failed to initialize a channel. Closing: [id: 0x9a4e56d6] java.lang.VerifyError: Bad return type HOT 2
- Lease table is not updated when new shards are added causing stale workers HOT 1
- Support artifacts with all third-party dependencies relocated HOT 2
- Consolidate metrics to a common name space, like /aws/kinesis-client HOT 2
- Uneven distribution of shards over the consumer application workers HOT 1
- Retrieving shard consumer's current lease's hash range key HOT 2
- KCL2 -Multi stream consumer - Configured streams can be in same account and cross account HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amazon-kinesis-client.