Fork me on GitHub
#onyx
<
2016-03-14
>
nha10:03:56

The explanation of Storm guarantees is really interesting. I remember reading an explanation but it did not really click back then.

lucasbradstreet12:03:23

I love writing non-user facing functions and using Australian english names 😛

otfrom13:03:47

we do the same with British naming here

greywolve18:03:35

what garbage collector does the onyx recommend/use for the JVM in general?

lucasbradstreet18:03:50

G1GC is a pretty safe choice. I think it has similar properties to what you're using now. I tend to err on the side of safety/minimising pauses which it does

greywolve18:03:30

we're using concurrent mark sweep, i wonder if that's a wise choice, thinking of trying G1GC rather, especially since our heap size is 5G

lucasbradstreet18:03:13

It's probably going to be pretty similar, but yup, it's probably a good choice. If you have a memory leak or are hitting your limits you're going to have a bad time whichever GC you use though

lvh21:03:25

good news; I have navigated the powers that be sufficiently well to go to clojure/west

Drew Verlee21:03:21

@michaeldrogalis: at 8:30 in https://youtu.be/YlfA8hFs2HY?t=8m30s you talk about a collection of behaviors and the execution spec/jobs which are deployed at two different times. Where could i got to find out more? What would be an example of each? Assuming a job is the catelog, workflow, windows, lifecycles, etc... Then what is the "collection of behaviors". Im trying to solidify my understanding because i want to pitch to present the idea to my company. Also because its awesome. simple_smile

gardnervickers22:03:39

@drewverlee: The job is just a datastructure, a normal nested EDN map. When Mike talks about this being divorced from behavior, he means that the actual code is not included in the datastructure. The datastructure (execution map/job from the talk) is just there to describe to computation.

gardnervickers22:03:52

It’s most easy to think of the collection of behaviors as all of the code that you’ve written to process each step your data goes through, and the execution spec / job is the description of how you want that code you wrote applied to your data.

gardnervickers22:03:23

Now the reason this is significant is because once you have data describing your computation, you can modify it with the normal tools you use every day. And tooling can quickly be built to generate these execution-maps/jobs far easier when it’s just data than if it was data+code.

michaeldrogalis23:03:37

@lvh: Hooray! Looking forward to meeting you. simple_smile

Drew Verlee23:03:41

@gardnervickers: thanks. In trying to connect this back to what i learned in the learn-onyx repo. I have a workflow, a catalog, some lifecycles, windows, flow conditions, triggers. Would it be fair to say these things are the execution spec/job? Meanwhile the function i pull in to do the processing say :onxy/fn :my-function is the an example of 'a behavior'

gardnervickers23:03:01

Exactly correct

michaeldrogalis23:03:19

Yup, everything that runs through onyx.api/submit-job is the job.

michaeldrogalis23:03:46

@drewverlee: Is your company currently doing some kind of distributed activity? I can give you a good analogy for a lot of related systems.

Drew Verlee23:03:30

@michaeldrogalis: were doing a lambda architecture. Kafka to storm and hadoop with opentsdb. Im not intimately involved in that end. I only started their 3 weeks ago.

michaeldrogalis23:03:11

@drewverlee: Got it. Sounds like it'd be an interesting spot to try it.

Drew Verlee23:03:58

Im going to put together some of the things i have learned into a blog and a talk as a way to try and give back to you guys for all your sharing.

michaeldrogalis23:03:56

@drewverlee: Thanks, I really appreciate that. Makes it really rewarding for us 😄