I'm fine with that. Gouzhang? On Fri, 10 Feb 2017 at 19:45, Matthias J. Sax <matth...@confluent.io> wrote:
> I am actually supporting Eno's view: checkpoint on every commit. > > @Dhwani: I understand your view and did raise the same question about > performance trade-off with checkpoiting enabled/disabled etc. However, > it seems that writing the checkpoint file is super cheap -- thus, there > is nothing to gain performance wise by disabling it. > > For Streams EoS we do not need the checkpoint file -- but we should have > a switch for EoS anyway and can disable the checkpoint file for this > case. And even if there is no switch and we enable EoS all the time, we > can get rid of the checkpoint file overall (making the parameter obsolete). > > IMHO, if the config parameter is not really useful, we should not have it. > > > -Matthias > > > On 2/10/17 9:27 AM, Damian Guy wrote: > > Gouzhang, Thanks for the clarification. Understood. > > > > Eno, you are correct if we just used commit interval then we wouldn't > need > > a KIP. But, then we'd have no way of turning it off. > > > > On Fri, 10 Feb 2017 at 17:14 Eno Thereska <eno.there...@gmail.com> > wrote: > > > >> A quick check: the checkpoint file is not new, we're just exposing a > knob > >> on when to set it, right? Would turning if off still do what it does > today > >> (i.e., write the checkpoint at the end when the user quits?) So it's > not a > >> new feature as such, I was only recommending we dial up the frequency by > >> default. With that option arguably we don't even need a KIP. > >> > >> Eno > >> > >> > >> > >>> On 10 Feb 2017, at 17:02, Guozhang Wang <wangg...@gmail.com> wrote: > >>> > >>> Damian, > >>> > >>> I was thinking if it is a new failure scenarios but as Eno pointed out > it > >>> was not. > >>> > >>> Another thing I was considering is if it has any impact for > incorporating > >>> KIP-98 to avoid duplicates: if there is a failure in the middle of a > >>> transaction, then upon recovery we cannot rely on the local state store > >>> file even if the checkpoint file exists, since the local state store > file > >>> may not be at the transaction boundaries. But since Streams will likely > >> to > >>> have EOS as an opt-in I think it is still worthwhile to add this > feature, > >>> just keeping in mind that when EOS is turned on it may cease to be > >>> effective. > >>> > >>> And yes, I'd suggest we leave the config value to be possibly > >> non-positive > >>> to indicate not turning on this feature for the reason above: if it > will > >>> not be effective then we want to leave it as an option to be turned > off. > >>> > >>> Guozhang > >>> > >>> > >>> On Fri, Feb 10, 2017 at 8:06 AM, Eno Thereska <eno.there...@gmail.com> > >>> wrote: > >>> > >>>> The overhead of writing to the checkpoint file should be much, much > >>>> smaller than the overall overhead of doing a commit, so I think tuning > >> the > >>>> commit time is sufficient to guide performance tradeoffs. > >>>> > >>>> Eno > >>>> > >>>>> On 10 Feb 2017, at 13:08, Dhwani Katagade < > >> dhwani_katag...@persistent.co > >>>> .in> wrote: > >>>>> > >>>>> May be for fine tuning the performance. > >>>>> Say we don't need the checkpointing and would like to gain the lil > bit > >>>> of performance improvement by turning it off. > >>>>> The trade off is between giving people control knobs vs complicating > >> the > >>>> complete set of knobs. > >>>>> > >>>>> -dk > >>>>> > >>>>> On Friday 10 February 2017 04:05 PM, Eno Thereska wrote: > >>>>>> I can't see why users would care to turn it off. > >>>>>> > >>>>>> Eno > >>>>>>> On 10 Feb 2017, at 10:29, Damian Guy <damian....@gmail.com> wrote: > >>>>>>> > >>>>>>> Hi Eno, > >>>>>>> > >>>>>>> Sounds good to me. The only reason i can think of is if we want to > be > >>>> able > >>>>>>> to turn it off. > >>>>>>> Gouzhang - thoughts? > >>>>>>> > >>>>>>> On Fri, 10 Feb 2017 at 10:28 Eno Thereska <eno.there...@gmail.com> > >>>> wrote: > >>>>>>> > >>>>>>>> Question: if checkpointing is so cheap why not do it every commit > >>>>>>>> interval? That way we can get rid of this extra config variable > and > >>>> just > >>>>>>>> use the existing commit interval. > >>>>>>>> > >>>>>>>> Less tuning knobs. > >>>>>>>> > >>>>>>>> Eno > >>>>>>>> > >>>>>>>>> On 10 Feb 2017, at 09:27, Damian Guy <damian....@gmail.com> > wrote: > >>>>>>>>> > >>>>>>>>> Gouzhang, > >>>>>>>>> > >>>>>>>>> You've confused me. The failure scenarios you have described are > >> the > >>>> same > >>>>>>>>> as they are today. With the checkpoint files in place less data > >> will > >>>> be > >>>>>>>>> replayed, so there will be fewer duplicates. > >>>>>>>>> > >>>>>>>>> Are you saying you'd like the option to turn checkpointing off? > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> Damian > >>>>>>>>> > >>>>>>>>> On Thu, 9 Feb 2017 at 21:55 Guozhang Wang <wangg...@gmail.com> > >>>> wrote: > >>>>>>>>> > >>>>>>>>>> Eno, > >>>>>>>>>> > >>>>>>>>>> You are right, it is not a new scenario. > >>>>>>>>>> > >>>>>>>>>> Thinking a bit more on how we could incorporate KIP-98 in > >> Streams, I > >>>>>>>> feel > >>>>>>>>>> that if EOS is turned on inside Streams, then we probably cannot > >>>> always > >>>>>>>>>> resume from the checkpointed offsets as it is not guaranteed to > be > >>>>>>>>>> "consistent"; but since EOS may not be turned on by default this > >> is > >>>>>>>> still > >>>>>>>>>> worthwhile to add this feature I guess. > >>>>>>>>>> > >>>>>>>>>> About the default config values: I think the default value of 5 > >> min > >>>> is > >>>>>>>> OK > >>>>>>>>>> to me, since restoration is usually faster than normal > processing > >>>>>>>> (unless > >>>>>>>>>> your traffic was really high), about allowing it to be "turned > >> off" > >>>>>>>> with a > >>>>>>>>>> non-positive value: I feel there are still values to keep this > >> door > >>>>>>>> open as > >>>>>>>>>> in the future if EOS is turned on, people may just want to turn > >> off > >>>>>>>>>> checkpointing anyways, or there maybe other scenarios that we > have > >>>> not > >>>>>>>>>> realized yet. On the other hand, I would argue that it is less > >>>> likely > >>>>>>>> users > >>>>>>>>>> mistakenly set it to a non-positive value. > >>>>>>>>>> > >>>>>>>>>> Guozhang > >>>>>>>>>> > >>>>>>>>>> On Thu, Feb 9, 2017 at 1:03 PM, Eno Thereska < > >>>> eno.there...@gmail.com> > >>>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Hi Guozhang, > >>>>>>>>>>> > >>>>>>>>>>> It seems to me we have the same semantics today. Are you saying > >>>> there > >>>>>>>> is > >>>>>>>>>> a > >>>>>>>>>>> new failure scenario? > >>>>>>>>>>> > >>>>>>>>>>> Thanks, > >>>>>>>>>>> Eno > >>>>>>>>>>> > >>>>>>>>>>>> On 9 Feb 2017, at 19:42, Guozhang Wang <wangg...@gmail.com> > >>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> More specifically, here is my reasoning of failure cases, and > >>>> would > >>>>>>>>>> like > >>>>>>>>>>> to > >>>>>>>>>>>> get your feedbacks: > >>>>>>>>>>>> > >>>>>>>>>>>> *StreamTask* > >>>>>>>>>>>> > >>>>>>>>>>>> For stream-task, the committing order is 1) flush state (may > >> send > >>>> more > >>>>>>>>>>>> records to changelog in producer), 2) flush producer, 3) > commit > >>>>>>>>>> upstream > >>>>>>>>>>>> offsets. My understanding is that the writing of the > checkpoint > >>>> file > >>>>>>>>>> will > >>>>>>>>>>>> between 2) and 3). So thatt he new order will be 1) flush > state, > >>>> 2) > >>>>>>>>>> flush > >>>>>>>>>>>> producer, 3) write checkpoint file (when necessary), 4) commit > >>>>>>>> upstream > >>>>>>>>>>>> offsets. > >>>>>>>>>>>> > >>>>>>>>>>>> And we have a bunch of "changelog offsets" regarding the > state: > >> a) > >>>>>>>>>> offset > >>>>>>>>>>>> corresponding to the image of the persistent file, name it > point > >>>> A, b) > >>>>>>>>>>> log > >>>>>>>>>>>> end offset, name it offset B, c) checkpoint file recorded > >> offset, > >>>> name > >>>>>>>>>> it > >>>>>>>>>>>> offset C, d) offset corresponding to the current committed > >>>> upstream > >>>>>>>>>>> offset, > >>>>>>>>>>>> name it offset D. > >>>>>>>>>>>> > >>>>>>>>>>>> Now let's talk about the failure cases: > >>>>>>>>>>>> > >>>>>>>>>>>> If there is a crash between 1) and 2), then A > B = C = D. In > >> this > >>>>>>>>>> case, > >>>>>>>>>>> if > >>>>>>>>>>>> we restore, we will replay no logs at all since B = C while > the > >>>>>>>>>>> persistent > >>>>>>>>>>>> state file is actually "ahead of time", and we will start > >>>> reprocessing > >>>>>>>>>>>> since from the input offset corresponding to D = B < A and > hence > >>>> have > >>>>>>>>>>> some > >>>>>>>>>>>> duplicated, *which will be incorrect* if the update logic > >> involve > >>>>>>>>>> reading > >>>>>>>>>>>> the state store values as well (i.e. not a blind write), e.g. > >>>>>>>>>>> aggregations. > >>>>>>>>>>>> If there is a crash between 2) and 3), then A = B > C = D. > When > >> we > >>>>>>>>>>> restore, > >>>>>>>>>>>> we will replay from C -> B = A, and then start reprocessing > from > >>>> input > >>>>>>>>>>>> offset corresponding to D < A, and same issue applies as > above. > >>>>>>>>>>>> > >>>>>>>>>>>> If there is a crash between 3) and 4), then A = B = C > D. > When > >> we > >>>>>>>>>>> restore, > >>>>>>>>>>>> we will not replay, and then start reprocessing from input > >> offset > >>>>>>>>>>>> corresponding to D < A, and same issue applies as above. > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> *StandbyTask* > >>>>>>>>>>>> > >>>>>>>>>>>> We only do one operation today, which is 1) flush state, I > think > >>>> we > >>>>>>>>>> will > >>>>>>>>>>>> add the writing of the checkpoint file after it as step 2). > >>>>>>>>>>>> > >>>>>>>>>>>> Failure cases again: offset A -> correspond to the image of > the > >>>> file, > >>>>>>>>>>>> offset B -> changelog end offset, offset C -> written as in > the > >>>>>>>>>>> checkpoint > >>>>>>>>>>>> file. > >>>>>>>>>>>> > >>>>>>>>>>>> If there is a crash between 1) and 2), then B >= A > C (B >= A > >>>> because > >>>>>>>>>> we > >>>>>>>>>>>> are reading from changelog topic so A will never be greater > than > >>>> B), > >>>>>>>>>>>> > >>>>>>>>>>>> 1) and if this task resumes as a standby task, we will resume > >>>>>>>>>> restoration > >>>>>>>>>>>> from offset C, and a few duplicates from C -> A will be > applied > >>>> again > >>>>>>>>>> to > >>>>>>>>>>>> local state files, then continue from A -> B, *this is OK* > since > >>>> they > >>>>>>>>>> do > >>>>>>>>>>>> not incur any computations hence no side effects and are all > >>>>>>>>>> idempotent. > >>>>>>>>>>>> 2) and if this task resumes as a stream task, we will replay > >>>>>>>> changelogs > >>>>>>>>>>>> from C -> A, with duplicated updates, and then from A -> B. > This > >>>> is > >>>>>>>>>> also > >>>>>>>>>>> OK > >>>>>>>>>>>> for the same reason as above. > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> So it seems to me that this is not safe for a StreamTask, or > >>>> maybe the > >>>>>>>>>>>> writing of the checkpoint file in your mind is different? > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> Guozhang > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> On Thu, Feb 9, 2017 at 11:02 AM, Guozhang Wang < > >>>> wangg...@gmail.com> > >>>>>>>>>>> wrote: > >>>>>>>>>>>>> A quick question re: `We will add the above config parameter > to > >>>>>>>>>>>>> *StreamsConfig*. During *StreamTask#commit()*, > >>>>>>>> *StandbyTask#commit()*, > >>>>>>>>>>>>> and *GlobalUpdateStateTask#flushState()* we will check if the > >>>>>>>>>>> checkpoint > >>>>>>>>>>>>> interval has elapsed and write the checkpoint file.` > >>>>>>>>>>>>> > >>>>>>>>>>>>> Will the writing of the checkpoint file happen before the > >>>> flushing of > >>>>>>>>>>> the > >>>>>>>>>>>>> state manager? > >>>>>>>>>>>>> > >>>>>>>>>>>>> Guozhang > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> On Thu, Feb 9, 2017 at 10:48 AM, Matthias J. Sax < > >>>>>>>>>> matth...@confluent.io > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>>> But 5 min means, that we (in the worst case) need to reply > >> data > >>>> from > >>>>>>>>>>> the > >>>>>>>>>>>>>> last 5 minutes to get the store ready. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> So why not go with the min possible value of 30 seconds to > >>>> speed up > >>>>>>>>>>> this > >>>>>>>>>>>>>> process if the impact is negligible anyway? > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> What do you gain by being conservative? > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> -Matthias > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> On 2/9/17 2:54 AM, Damian Guy wrote: > >>>>>>>>>>>>>>> Why shouldn't it be 5 minutes? ;-) > >>>>>>>>>>>>>>> It is a finger in the air number. Based on the testing i > did > >> it > >>>>>>>>>> shows > >>>>>>>>>>>>>> that > >>>>>>>>>>>>>>> there isn't much, if any, overhead when checkpointing a > >> single > >>>>>>>> store > >>>>>>>>>>> on > >>>>>>>>>>>>>> the > >>>>>>>>>>>>>>> commit interval. The default commit interval is 30 seconds, > >> so > >>>> it > >>>>>>>>>>> could > >>>>>>>>>>>>>>> possibly be set to that. However, i'd prefer to be a little > >>>>>>>>>>>>>> conservative so > >>>>>>>>>>>>>>> 5 minutes seemed reasonable. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Thu, 9 Feb 2017 at 10:25 Michael Noll < > >> mich...@confluent.io > >>>>> > >>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>> Damian, > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> could you elaborate briefly why the default value should > be > >> 5 > >>>>>>>>>>> minutes? > >>>>>>>>>>>>>>>> What are the considerations, assumptions, etc. that go > into > >>>>>>>> picking > >>>>>>>>>>>>>> this > >>>>>>>>>>>>>>>> value? > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Right now, in the KIP and in this discussion, "5 mins" > looks > >>>> like > >>>>>>>> a > >>>>>>>>>>>>>> magic > >>>>>>>>>>>>>>>> number to me. :-) > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> -Michael > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On Thu, Feb 9, 2017 at 11:03 AM, Damian Guy < > >>>> damian....@gmail.com > >>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>> I've ran the SimpleBenchmark with checkpoint on and off > to > >>>> see > >>>>>>>>>> what > >>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>> impact is. It appears that there is very little impact, > if > >>>> any. > >>>>>>>>>> The > >>>>>>>>>>>>>>>> numbers > >>>>>>>>>>>>>>>>> with checkpointing on actually look better, but that is > >>>> likely > >>>>>>>>>>> largely > >>>>>>>>>>>>>>>> due > >>>>>>>>>>>>>>>>> to external influences. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> In any case, i'm going to suggest we go with a default > >>>> checkpoint > >>>>>>>>>>>>>>>> interval > >>>>>>>>>>>>>>>>> of 5 minutes. I've update the KIP with this. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> commit every 10 seconds (no checkpoint) > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/34798/287372.83751939767/29.570664980746017 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/35942/278226.0308274442/28.62945857214401 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/34677/288375.58035585546/29.673847218617528 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/34677/288375.58035585546/29.673847218617528 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/31192/320595.02436522185/32.98922800718133 > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> checkpoint every 10 seconds (same as commit interval) > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/36997/270292.185852907/27.81306592426413 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/32087/311652.69423754164/32.069062237043035 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/32895/303997.5680194558/31.281349749202004 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/33476/298721.4720994145/30.738439479029754 > >>>>>>>>>>>>>>>>> Streams Performance [records/latency/rec-sec/MB-sec > >>>>>>>> source+store]: > >>>>>>>>>>>>>>>>> 10000000/33196/301241.1133871551/30.99771056753826 > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> On Wed, 8 Feb 2017 at 09:02 Damian Guy < > >> damian....@gmail.com > >>>>> > >>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>> Matthias, > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Fair point. I'll update it the KIP. > >>>>>>>>>>>>>>>>>> Thanks > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> On Wed, 8 Feb 2017 at 05:49 Matthias J. Sax < > >>>>>>>>>> matth...@confluent.io > >>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>> Damian, > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> I am not strict about it either. However, if there is no > >>>>>>>>>> advantage > >>>>>>>>>>> in > >>>>>>>>>>>>>>>>>> disabling it, we might not want to allow it. This would > >>>> have the > >>>>>>>>>>>>>>>>>> advantage to guard users to accidentally switch it off. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> -Matthias > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> On 2/3/17 2:03 AM, Damian Guy wrote: > >>>>>>>>>>>>>>>>>>> Hi Matthias, > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> It possibly doesn't make sense to disable it, but then > >> i'm > >>>> sure > >>>>>>>>>>>>>>>> someone > >>>>>>>>>>>>>>>>>>> will come up with a reason they don't want it! > >>>>>>>>>>>>>>>>>>> I'm happy to change it such that the checkpoint > interval > >>>> must > >>>>>>>>>> be > > >>>>>>>>>>>>>> 0. > >>>>>>>>>>>>>>>>>>> Cheers, > >>>>>>>>>>>>>>>>>>> Damian > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> On Fri, 3 Feb 2017 at 01:29 Matthias J. Sax < > >>>>>>>>>>> matth...@confluent.io> > >>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>> Thanks Damian. > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> One more question: "Checkpointing is disabled if the > >>>>>>>> checkpoint > >>>>>>>>>>>>>>>>> interval > >>>>>>>>>>>>>>>>>>>> is set to a value <=0." > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> Does it make sense to disable check pointing? What's > the > >>>>>>>>>> tradeoff > >>>>>>>>>>>>>>>>> here? > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> -Matthias > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> On 2/2/17 1:51 AM, Damian Guy wrote: > >>>>>>>>>>>>>>>>>>>>> Hi Matthias, > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> Thanks for the comments. > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> 1. TBD - i need to do some performance tests and try > >> and > >>>> work > >>>>>>>>>>> out > >>>>>>>>>>>>>> a > >>>>>>>>>>>>>>>>>>>>> sensible default. > >>>>>>>>>>>>>>>>>>>>> 2. Yes, you are correct. It could be a multiple of > the > >>>>>>>>>>>>>>>>>>>> commit.interval.ms. > >>>>>>>>>>>>>>>>>>>>> But, that would also mean if you change the commit > >>>> interval - > >>>>>>>>>>> say > >>>>>>>>>>>>>>>> you > >>>>>>>>>>>>>>>>>>>> lower > >>>>>>>>>>>>>>>>>>>>> it, then you might also need to change the checkpoint > >>>> setting > >>>>>>>>>>>>>> (i.e, > >>>>>>>>>>>>>>>>> you > >>>>>>>>>>>>>>>>>>>>> still only want to checkpoint every n minutes). > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> On Wed, 1 Feb 2017 at 23:46 Matthias J. Sax < > >>>>>>>>>>>>>> matth...@confluent.io > >>>>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP Damian. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> I am wondering about two things: > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> 1. what should be the default value for the new > >>>> parameter? > >>>>>>>>>>>>>>>>>>>>>> 2. why is the new parameter provided in ms? > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> About (2): because > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> "the minimum checkpoint interval will be the value > of > >>>>>>>>>>>>>>>>>>>>>> commit.interval.ms. In effect the actual checkpoint > >>>>>>>> interval > >>>>>>>>>>>>>> will > >>>>>>>>>>>>>>>>> be > >>>>>>>>>>>>>>>>>> a > >>>>>>>>>>>>>>>>>>>>>> multiple of the commit interval" > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> it might be easier to just use an parameter that is > >>>>>>>>>>>>>>>>> "number-or-commit > >>>>>>>>>>>>>>>>>>>>>> intervals". > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> -Matthias > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> On 2/1/17 7:29 AM, Damian Guy wrote: > >>>>>>>>>>>>>>>>>>>>>>> Thanks for the comments Eno. > >>>>>>>>>>>>>>>>>>>>>>> As for exactly once, i don't believe this matters > as > >>>> we are > >>>>>>>>>>> just > >>>>>>>>>>>>>>>>>>>>>> restoring > >>>>>>>>>>>>>>>>>>>>>>> the change-log, i.e, the result of the aggregations > >>>> that > >>>>>>>>>>>>>>>> previously > >>>>>>>>>>>>>>>>>> ran > >>>>>>>>>>>>>>>>>>>>>>> etc. So once initialized the state store will be in > >> the > >>>>>>>> same > >>>>>>>>>>>>>>>> state > >>>>>>>>>>>>>>>>> as > >>>>>>>>>>>>>>>>>>>> it > >>>>>>>>>>>>>>>>>>>>>>> was before. > >>>>>>>>>>>>>>>>>>>>>>> Having the checkpoint in a kafka topic is not ideal > >> as > >>>> the > >>>>>>>>>>> state > >>>>>>>>>>>>>>>> is > >>>>>>>>>>>>>>>>>> per > >>>>>>>>>>>>>>>>>>>>>>> kafka streams instance. So each instance would need > >> to > >>>>>>>> start > >>>>>>>>>>>>>>>> with a > >>>>>>>>>>>>>>>>>>>>>> unique > >>>>>>>>>>>>>>>>>>>>>>> id that is persistent. > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> Cheers, > >>>>>>>>>>>>>>>>>>>>>>> Damian > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> On Wed, 1 Feb 2017 at 13:20 Eno Thereska < > >>>>>>>>>>>>>> eno.there...@gmail.com > >>>>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>>> As a follow up to my previous comment, have you > >>>> thought > >>>>>>>>>> about > >>>>>>>>>>>>>>>>>> writing > >>>>>>>>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>>>>> checkpoint to a topic instead of a local file? > That > >>>> would > >>>>>>>>>>> have > >>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>>>>> advantage that all metadata continues to be > managed > >> by > >>>>>>>>>> Kafka, > >>>>>>>>>>>>>> as > >>>>>>>>>>>>>>>>>> well > >>>>>>>>>>>>>>>>>>>> as > >>>>>>>>>>>>>>>>>>>>>>>> fit with EoS. The potential disadvantage would be > a > >>>> slower > >>>>>>>>>>>>>>>>> latency, > >>>>>>>>>>>>>>>>>>>>>> however > >>>>>>>>>>>>>>>>>>>>>>>> if it is periodic as you mention, I'm not sure > that > >>>> would > >>>>>>>>>> be > >>>>>>>>>>> a > >>>>>>>>>>>>>>>>> show > >>>>>>>>>>>>>>>>>>>>>> stopper. > >>>>>>>>>>>>>>>>>>>>>>>> Thanks > >>>>>>>>>>>>>>>>>>>>>>>> Eno > >>>>>>>>>>>>>>>>>>>>>>>>> On 1 Feb 2017, at 12:58, Eno Thereska < > >>>>>>>>>>> eno.there...@gmail.com > >>>>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>>>> Thanks Damian, this is a good idea and will > reduce > >>>> the > >>>>>>>>>>> restore > >>>>>>>>>>>>>>>>>> time. > >>>>>>>>>>>>>>>>>>>>>>>> Looking forward, with exactly once and support for > >>>>>>>>>>> transactions > >>>>>>>>>>>>>>>> in > >>>>>>>>>>>>>>>>>>>>>> Kafka, I > >>>>>>>>>>>>>>>>>>>>>>>> believe we'll have to add some support for rolling > >>>> back > >>>>>>>>>>>>>>>>> checkpoints, > >>>>>>>>>>>>>>>>>>>>>> e.g., > >>>>>>>>>>>>>>>>>>>>>>>> when a transaction is aborted. We need to be aware > >> of > >>>> that > >>>>>>>>>>> and > >>>>>>>>>>>>>>>>>> ideally > >>>>>>>>>>>>>>>>>>>>>>>> anticipate a bit those needs in the KIP. > >>>>>>>>>>>>>>>>>>>>>>>>> Thanks > >>>>>>>>>>>>>>>>>>>>>>>>> Eno > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> On 1 Feb 2017, at 10:18, Damian Guy < > >>>>>>>>>> damian....@gmail.com> > >>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>>>>> Hi all, > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> I would like to start the discussion on KIP-116: > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP- > >>>>>>>>>>>>>>>>> 116+-+Add+State+Store+Checkpoint+Interval+Configuration > >>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>>>>>>> Damian > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> -- > >>>>>>>>>>>>> -- Guozhang > >>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> -- > >>>>>>>>>>>> -- Guozhang > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> -- > >>>>>>>>>> -- Guozhang > >>>>>>>>>> > >>>>>>>> > >>>>> > >>>>> > >>>>> DISCLAIMER > >>>>> ========== > >>>>> This e-mail may contain privileged and confidential information which > >> is > >>>> the property of Persistent Systems Ltd. It is intended only for the > use > >> of > >>>> the individual or entity to which it is addressed. If you are not the > >>>> intended recipient, you are not authorized to read, retain, copy, > print, > >>>> distribute or use this message. If you have received this > communication > >> in > >>>> error, please notify the sender and delete all copies of this message. > >>>> Persistent Systems Ltd. does not accept any liability for virus > infected > >>>> mails. > >>>>> > >>>> > >>>> > >>> > >>> > >>> -- > >>> -- Guozhang > >> > >> > > > >