Fork me on GitHub
#onyx
<
2016-11-04
>
greywolve10:11:06

Hey guys 🙂 Is there a way to make an output task (writing to datomic), just keep retrying till it succeeds? The issue we have is that our transactor occasionally fails over, or transactions time out. What happens is the segment is retried, but it's retried from the back of the queue, so it will possibly overwrite values calculated by newer tasks, since we always use the datomic database at the time of the datom we are processing. Basically, I need to output task to keep retrying a failed write, until it succeeds, because if datomic is down we are screwed anyway till's back up.

greywolve10:11:31

Or is there a way to keep it retrying at the front of the queue, before anything else?

michaeldrogalis14:11:14

@greywolve There’s not a way to do front-retries because ordering isn’t guaranteed. Suppose you could modify the output plugin to spin-retry on failure. How many times do you retry? How long is too long to wait?

michaeldrogalis14:11:33

I think one could violate progress by accident doing that. Perhaps we could think of a way to handle this in the application design?

michaeldrogalis17:11:49

@colinhicks Ohhhh man. This is amazing.

gardnervickers17:11:03

Dude, this is incredible work

michaeldrogalis17:11:16

I am more than happy to jump on board and write a section. Mannn.

colinhicks17:11:42

Thanks! And go for it! For content, I'm mostly just clipping together your work in learn-onyx and the user guide.

michaeldrogalis17:11:07

This is great. Do you have plans for things you want to do next so we don’t cross over?

michaeldrogalis17:11:46

Mind if I tweet the link out (noting that it’s WIP) to stir some contributors? 🙂

colinhicks17:11:44

I'll put up an issue for a content outline. Totally fine to tweet.

michaeldrogalis17:11:46

Do you have a Twitter handle? I see many Colin Hicks 🙂

colinhicks17:11:43

I traded my twitter acct for a nice bottle of wine, in 2009

michaeldrogalis17:11:23

Well that pretty much made my day 😛

colinhicks17:11:56

I'm pretty excited about combining (tick job-env) with the graph visualization. We should be able to show in-flight segments on the edges and nodes.

colinhicks17:11:18

Will be fun to do that for ABS, once that comes along ... https://adriancolyer.files.wordpress.com/2015/08/flink-abs.png

michaeldrogalis17:11:06

I actually stripped out the entire streaming engine from local-rt. It doesn’t need it to run. 🙂

michaeldrogalis17:11:19

We could certainly build something like that on the side for learning though.

colinhicks17:11:07

Ah, gotcha. Definitely plenty of opportunities for teaching tools, here. I've tried to write the core code (`onyx-blueprint` ns) in a way that is extensible beyond the tutorial. Not sure if I said it before here, but an onyx-fiddle could be built by leveraging this.

michaeldrogalis17:11:19

This stuff is just so good.

gardnervickers17:11:36

Yea very impressive work

michaeldrogalis18:11:57

We could probably do well by sticking a few paragraphs of intro text on top (I can write that) and talk about the maturity a bit. Still get asked about that a lot despite all the testing we have in place.