Comments (7)
We don't have such use cases, but I agree with you. Still you'll need to decide how many partitions (goroutines) the processor should have. The check for the partitions is done here.
from goka.
I think the easiest way how to implement this would be if you look for the input topic with most partitions in prepareTopics()
and use that as the number of partitions in the processor. If you do otherwise, you'll also need to adapt the main processor loop so that it applies %
operation on the partition of the incoming messages.
from goka.
@db7 I was thinking about changing copartitioned
method to be like this:
func (gg *GroupGraph) copartitioned() Edges {
+ if len(gg.joinCheck) == 0 {
+ return nil
+ }
+
return append(gg.inputStreams, gg.inputTables...)
}
So if there's no join topics, this method would return nil
, and ensureCopartitioned
would have nothing to work with.
But from what you're saying seems like that wouldn't be enough, right?
from goka.
This piece of code is important:
// check co-partitioned (external) topics have the same number of partitions
npar, err = ensureCopartitioned(tm, gg.copartitioned().Topics())
if err != nil {
return 0, err
}
It returns the number of partitions that the processor will have. Here you should do something like
if "no group table and no joins", then pick npar form the topic with most partitions, otherwise call ensureCopartitioned
.
from goka.
I started implementing that, but facing multiple edge cases and many tests started to fail. Will dig into that later. For now, working this limitation around by creating multiple processors in our systems.
from goka.
Ok. If you like, you can tell me the branch with your changes and I can try later to understand what is going on.
from goka.
I'll close it as it didn't have any activity for 2 years now
from goka.
Related Issues (20)
- Link to blog post is dead HOT 1
- Processor calls wrong decode codec on message receipt HOT 1
- Any way allow to customize key of KTable HOT 1
- bug error setting up for partition HOT 3
- how to use Goka to move data from group table state to different storage system HOT 4
- EmitSync stuck in channel HOT 3
- Cannot connect to broker if the program is on docker container HOT 3
- Kafka server: Message was too large, server rejected it to avoid allocation error HOT 3
- How to modify value in Group table? HOT 4
- What storage I should use for processor and view? HOT 4
- How to fill up local cache with messages from a custom offset on start up? HOT 1
- Convert to using github.com/IBM/sarama HOT 1
- [question] Azure EventHub HOT 1
- no automatic reconnection processor ? HOT 1
- LevelDB - No space left on device HOT 1
- "panic: sync: negative WaitGroup counter" in PartitionProcessor.VisitValues HOT 8
- Behavior of View Sync HOT 1
- Configuring Sarama's initial offset to OffsetOldest leads the existing group to reprocess topic messages from start HOT 3
- Writing to group table from asynchronous function; using ctx.SetValue causes a WaitGroup panic
- Is there a way to get a list of the keys associated with a processor instance? 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 goka.