This message was deleted.
# troubleshooting
s
This message was deleted.
s
thanks! my point was that it seemed that mm tasks upload and announce segments even before task duration is exhausted (for example when segment granularity or rows per segment is met). my question was, in that case, what is really the significance of task duration? or do I misunderstand something?
r
I think it's mainly related to the segments merging, but I need to check that with empirical testing (because I can't read the java code to follow the 'path'), but I think if you set task duration 1hr, but limit each segment to 1 row (that would be very inefficient) and during the task duration, you would have multiples segments, but after the task finishes¹ it should merge then all back into N optimized segments, even if you don't have any auto-compaction enabled ¹ not really finished, but after the new offsets are passed into another MM task be the owner
hmm so, according to the docs, this merge does not happen automatically, so task duration is either to you control planned downtime, but that could also be archived by intermediateHandoffPeriod, so now I'm confused 😆
after reading https://druid.apache.org/docs/latest/design/architecture.html I'm certain that after the handoff, the task offsets are updated as well, so the MM task may only be useful for metrics accumulation?!
I guess I was confused about
Intermediate persist period
vs
Intermediate handoff period
https://stackoverflow.com/questions/57923060/what-is-intermediate-persist-in-apache-druid
g
kafka tasks run for a
taskDuration
amount of time (unless they exit early due to e.g. supervisor suspension or supervisor config change)
during that time, they may do intermediate handoffs, where they publish some data due to reaching a trigger like a certain number of rows
or, they may not, if the data volume isn't super high
either way, when they reach the
taskDuration
, they will do one final publish/handoff of anything that hasn't been published yet, and then exit
by this time, they will have been replaced with a new 'wave' of tasks
the purpose for the waves (rather than using the same tasks forever) is mainly so task logs don't get too long, and so you can do rolling updates of MMs more easily (by disabling them and then waiting for their tasks to exit)
🙏 1
2
hope this clears things up; feel free to ask something else if not 🙂