Fork me on GitHub
#onyx
<
2016-08-09
>
aengelberg02:08:54

My onyx dashboard is struggling to load all the log events after about #1300. Is there a way to trigger some kind of log compaction?

aengelberg02:08:53

Update: it "aw, snap!"ed on me

aengelberg02:08:31

update: I figured it out: onyx.api/gc

aengelberg02:08:34

I have another question: I'm trying to use the balanced scheduler, but I'm seeing (I think) the same behavior as the greedy scheduler. There are 30 virtual peers started up. I'm submitting two instances of a job with 13 different tasks each. They both submit according to the onyx dashboard. But the peers don't recompute their task distribution (the second one doesn't start) until the first one is killed. What's the best way to debug this? Am I correct that that is unexpected behavior?

vijaykiran07:08:08

Reg. Documentation, thinking out loud, will it be better to start off with “user guide” (users of the onyx, API docs, how-to), “contributor guide” (internal architecture, nitty-gritties, design), “admin guide” (deployment, performance) etc ..

lucasbradstreet07:08:03

That sounds good. User guide section should include links to learn-onyx

michaeldrogalis15:08:44

I'd expect both jobs to be running if 30 peers is enough to cover both with a balanced job scheduler.

michaeldrogalis16:08:49

@jmv: Did you end up tracking down what was going on?

Travis17:08:06

@michaeldrogalis: From your response above ^^^. If you had a job that needs 15 peers and you launched 2 of those. Does that mean you need 30 peers?

dignati17:08:30

@camechis: Yup, that is correct

Travis17:08:41

I thought so I just wanted to confirm

aengelberg17:08:38

The balanced job scheduler worked as expected on a totally fresh zookeeper. Something weird must have happened with the onyx log state and having used the greedy scheduler previously.

michaeldrogalis17:08:48

@aengelberg: Yeah, you can't switch job schedulers per tenancy.

jmv17:08:54

@michaeldrogalis: not yet, but i'm narrowing it down. i will update when i figure out what's going on

gardnervickers18:08:17

@vijayakkineni: How are you running Aeron?

vijayakkineni18:08:22

@gardnervickers: Its a very basic configuration {:onyx.peer/job-scheduler :onyx.job-scheduler/greedy :onyx.messaging/impl :aeron :onyx.messaging/peer-port 40200 :onyx.messaging/bind-addr “localhost"}

gardnervickers18:08:49

I mean in-process with regards to Onyx our on its own

vijayakkineni18:08:29

I dont have an external aeron, i am following onyx starter template .

aaelony21:08:14

What does all-new mean in the context of flow conditions? I'm reading http://www.onyxplatform.org/docs/user-guide/latest/flow-conditions.html ... also, why do predicate function signatures need four parameters - a context map, the old segment, the new segment, and the collection of all new segments produced from the old segment?

aaelony22:08:01

I'm attempting my own flow condition function, but I'm not understanding what the appropriate function signature should be...

michaeldrogalis22:08:10

@aaelony: all-new = the collection of all new segments returned by the function. e.g. (fn [x] [x x x]). If your function only returns a single segment, it rolls it up into one a collection for all-new. Useful for when predicates need to make decisions based on the relationship between an old segments and all new segments together

aaelony22:08:31

hmmm, I basically have a mixed bag of event types, and I have a function that tells me if this is an event-type that I care about. My function returns true if I care about it...

aaelony22:08:35

what should all-new be in my case?

gardnervickers22:08:37

if you have a task f(x)->y then you’ll see [event x y [y]]

michaeldrogalis22:08:16

@aaelony: Onyx invokes the predicate function, you don't supply those parameters.

aaelony22:08:39

and the predicate logic that returns a boolean acts on the event, not x or y...

michaeldrogalis22:08:32

@aaelony: You probably just want to make your pred function check a key against the new-segment.

michaeldrogalis22:08:39

From the sounds of what you described

aaelony22:08:05

that's what I see in the docs, but I am not groking that

michaeldrogalis22:08:00

Would recommend some the onyx-examples to get the hang of it

aaelony22:08:17

okay, will do

aaelony22:08:46

also, is maxMessageLength something I can set for Aeron? I'm seeing

16-Aug-09 15:13:48 ip-10-63-208-42 FATAL [onyx.messaging.aeron.publication-manager] - Aeron write from buffer error:  java.lang.IllegalArgumentException: Encoded message exceeds maxMessageLength of 2097152, length=24667975

aaelony22:08:28

maybe this is a java Aeron thing...

aaelony22:08:10

please ignore -- I think that if I correct my flow condition, these payloads will be smaller and the message length will fit.

aaelony23:08:34

I also found this...

"-Daeron.mtu.length=16384" "-Daeron.socket.so_sndbuf=2097152" "-Daeron.socket.so_rcvbuf=2097152" "-Daeron.rcv.buffer.length=16384" "-Daeron.rcv.initial.window.length=2097152"
source: https://clojurians-log.clojureverse.org/onyx/2015-11-12.html