onyx

FYI: alternative Onyx :onyx: chat is at <https://gitter.im/onyx-platform/onyx> ; log can be found at <https://clojurians-log.clojureverse.org/onyx/index.html>
kenny 2017-11-29T04:23:26.000081Z

Out of curiosity, it seems like onyx-kafka hardcodes the serializer to use the byte-array-serializer https://github.com/onyx-platform/onyx-kafka/blob/0.12.x/src/onyx/plugin/kafka.clj#L313-L315 instead of your passed in serializer. It will still serialize using your passed in serialize fn but that value then gets serialized by the byte array serializer in Kafka. Is there a reason for this?

lucasbradstreet 2017-11-29T04:25:25.000078Z

@kenny it was mostly a convenience so you can supply your own byte serializer/deserializers as clojure fns without using the preferred Kafka style serializers. I’m open to a PR that loosens this up if you want to use the standard Kafka mechanisms.

kenny 2017-11-29T04:27:38.000041Z

I see. I don't have a particular need for this. Just trying to understand some things. Do most people serialize with Nippy?

kenny 2017-11-29T04:30:10.000071Z

Do users simply not have a need to replace the "lower level" Kafka serializer?

kenny 2017-11-29T04:30:52.000109Z

e.g. This two step serialization process has been good enough.

lucasbradstreet 2017-11-29T04:33:10.000027Z

It hasn’t really come up yet, since it’s about as easy as the kafka approach, since it’s not really deserializing anything - it just gets a bag of bytes. The main downside is that you don’t get to use the kafka schema registry so you can evolve your serialization formats e.g. Avro, but this is only really leads to a performance/size penalty vs something like nippy.

lucasbradstreet 2017-11-29T04:34:49.000165Z

Overall it does need more work for advanced serialiser use.

kenny 2017-11-29T04:37:08.000072Z

It would seem there hasn't been a particular pull for this feature so I'm guessing what is already implemented is good enough?

lucasbradstreet 2017-11-29T04:38:30.000137Z

Yeah. I think it depends on how much you generally depend on the extra kafka infrastructure (e.g. schema registry). I can see it being important, but it hasn’t come up much yet.

1
mccraigmccraig 2017-11-29T14:54:44.000757Z

i've started seeing errors where segments appear to be getting sent to the wrong functions (by flow conditions)... i'm on onyx 0.9.15, and this has suddenly started happening on a production cluster which has been working fine for the last few weeks

mccraigmccraig 2017-11-29T14:55:06.000850Z

has this been encountered before ?

jasonbell 2017-11-29T14:59:01.000238Z

I’ve never really used flow conditions in anger enough, the ones I’ve used in prod worked okay. That was in 0.10.x though.

mccraigmccraig 2017-11-29T15:19:22.000513Z

i've got a fanout of around 15,000 (i.e. one message in 15,000 out) and those 15k which consist of a few different types of message are being directed to different fns with flow conditions according to type... but some of them seem to end up with the wrong fn

jasonbell 2017-11-29T15:26:08.000021Z

I’ve never fanned out to anything at that scale, so I’m probably not the best person to answer.

michaeldrogalis 2017-11-29T16:39:15.000951Z

@mccraigmccraig Fan-out magnitude is unlikely to be related. Nothing at all changed in the last few weeks?

mccraigmccraig 2017-11-29T16:40:14.000402Z

nothing - it's been running the same docker images on the same mesos cluster since we first deployed the release

michaeldrogalis 2017-11-29T16:41:09.000072Z

Can you come up with a reproducer?

michaeldrogalis 2017-11-29T16:41:29.000560Z

And can you test that your flow predicates behave correctly as plain functions?

mccraigmccraig 2017-11-29T16:42:52.000515Z

oops wrong gist

mccraigmccraig 2017-11-29T16:43:36.000755Z

https://gist.github.com/d0e3c3c8889e726444784c427d82c14b

mccraigmccraig 2017-11-29T16:44:29.000280Z

i'm firefighting now - going to remove the flow-conditions and see what happens

mccraigmccraig 2017-11-29T18:17:33.000281Z

removing all the flow-conditions except for the error handling conditions seems to be working for the moment @michaeldrogalis - although it's not a long-term solution - i need the flow conditions to treat different types of effect differently, e.g. to put push notifications onto an output kafka topic rather then dispatch immmediately

mccraigmccraig 2017-11-29T18:22:58.000562Z

assuming my problem were to be an onyx issue (which it may not be) how likely do you think it is that an upgrade to 0.10 will solve it ? i.e. how much around flow-conditions and peer messaging changed btw 0.9 and 0.10 ?

lucasbradstreet 2017-11-29T18:26:14.000476Z

A lot has changed around messaging, only a little bit has changed with flow conditions in 0.11+ (we handle exceptions differently)

michaeldrogalis 2017-11-29T18:27:11.000310Z

Its suspicious that everything is blowing up when nothing apparently changed in your code.