You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Krzysztof Zarzycki <k....@gmail.com> on 2016/05/10 07:11:43 UTC

multi-application correlated savepoints

Hi!
I'm thinking about using a great Flink functionality - savepoints . I would
like to be able to stop my streaming application, rollback the state of it
and restart it (for example to update code, to fix a bug). Let's say I
would like travel back in time and reprocess some data.
But what if I had many streaming applications running, that's states are
correlated, like in microservice architecture? I would like to travel back
in time in all of my services to a common point in time.  Is there a
possibility to somehow manage correlated savepoints? Of course I can
trigger savepointing at approximately same time, but it's just an
approximation, right?
Is there something in Flink that could support this advanced use case?
Maybe someone else hit this issue already and thought about the solution?
I'll be grateful for any comments,
Cheers,
Krzysztof

Re: multi-application correlated savepoints

Posted by Maciek Próchniak <mp...@touk.pl>.
hmm...
quite interesting question. But I think I don't fully understand your 
use case - how are your applications coupled? Through kafka topics? E.g. 
output of one is input for other?
Or do they consume from same input?
And why exactly do you want to get back to specific point in all of 
them? If there's bug in one then I guess the whole idea of microservices 
is to have to fix only one, and don't care about the others?
I think it can be kind of tricky to do what you describe - if apps are 
really decoupled then there's no notion of "same time" for them. One 
thing that comes to my mind is having some special "message" that 
trigger savepoint - but not sure if it's possible and if it would work 
in all cases (like - what if there are many inputs for stream?)

br,
maciek


On 10/05/2016 09:11, Krzysztof Zarzycki wrote:
> Hi!
> I'm thinking about using a great Flink functionality - savepoints . I 
> would like to be able to stop my streaming application, rollback the 
> state of it and restart it (for example to update code, to fix a bug). 
> Let's say I would like travel back in time and reprocess some data.
> But what if I had many streaming applications running, that's states 
> are correlated, like in microservice architecture? I would like to 
> travel back in time in all of my services to a common point in time.  
> Is there a possibility to somehow manage correlated savepoints? Of 
> course I can trigger savepointing at approximately same time, but it's 
> just an approximation, right?
> Is there something in Flink that could support this advanced use case? 
> Maybe someone else hit this issue already and thought about the solution?
> I'll be grateful for any comments,
> Cheers,
> Krzysztof
>
>
>