Comments (2)
Yeah, we know some users want this feature (exponential backoff) but it could be challenging because:
- In Decaton (Kafka), mixing tasks with different backoff in single partition doesn't make much sense.
- Let's say we queue retry task with backoff-500ms to retry-topic-0
- Next, we queue retry task with backoff-100ms to retry-topic-0
- backoff-500ms will be consumed first. Decaton sleeps the processor-thread for 500ms till start processing
- So, backoff-100ms will be started after processing backoff-500ms, while the backoff is 100ms.
This is inevitable because Kafka's partition behaves as queue.
Possible ideas to solve this:
- Having another internal queueing mechanism inside Decaton for different backoffs
- However we can hold only limited tasks due to memory bound. So it doesn't scale for high-traffic or long-backoff cases
- Having different topics for backoffs
- like retry-topic-backoff100ms, retry-topic-back-off500ms,...
- I can find some cases on the web that achieving flexible backoff using this strategy
- However, we need to prepare many topics
from decaton.
Thanks for your explanation.
It makes sense to me that supporting unfixed backoff would be challenging.
from decaton.
Related Issues (20)
- Provide BatchingProcessor as a built-in processor HOT 2
- OutOfOrderCommitControlBenchmark does not compile HOT 1
- Provide round-robin mode in SubPartitioner for non-null key HOT 1
- Allow TaskMetadata include the `retry` count for DecatonClient HOT 4
- asyncCommitInFlight concurrency HOT 2
- Flaky test in BatchingProcessorTest.testLingerLimit HOT 1
- Make CentralDogma property supplier's file auto-creation optional HOT 4
- Provide a way of specifying a partition in producing a task HOT 2
- Isolate bursting key to prevent innocent keys are affected
- Narrow the scope of waiting pending task count upon dynamic property reload HOT 1
- Provide CentralDogmaPropertySupplier that can read YAML HOT 1
- NPE in DecatonTaskRetryQueueingProcessor if RetryConfig.backoff is null HOT 4
- Silence WARNs during rebalancing HOT 4
- Flaky test: CentralDogmaPropertySupplierIntegrationTest HOT 1
- Add a document about metrics
- Add default values of new properties to JSON files on CentralDogma when they are supported
- Bum junit to version 5.x HOT 1
- Enqueue different taskData on retry (partial retry support)
- Subscription could be killed by RebalanceInProgressException HOT 2
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 decaton.