These are chat archives for atomix/atomix

6th
Feb 2017
Jordan Halterman
@kuujo
Feb 06 2017 05:19
Well... Docker for Mac seems to be fine. Now it's just Slack that's using 100% CPU :cry: can't get a break
Jordan Halterman
@kuujo
Feb 06 2017 06:06
man my laptop is just falling apart
hahaha
time for a trade in
Roman Pearah
@neverfox
Feb 06 2017 06:06
:worried:
Jordan Halterman
@kuujo
Feb 06 2017 06:08
Slack is crashing. LastPass is crashing. Ugh. Been through some hard times this one
Roman Pearah
@neverfox
Feb 06 2017 06:09
How's your free disk space?
Could be application memory issues
Jordan Halterman
@kuujo
Feb 06 2017 06:10
/dev/disk1 465Gi 254Gi 210Gi 55%
Roman Pearah
@neverfox
Feb 06 2017 06:10
hmm doesn't seem to be that
Jon Hall
@jhall11
Feb 06 2017 17:59
So i think I’m at the point where I need to sit down and study clojure if I’m gonna get the Jepsen tests to work
Lisp was the only language I studied in school that I never really understood
Jon Hall
@jhall11
Feb 06 2017 18:30
So in regards to testing atomix/copycat#276, After testing overnight, a colleague found a bug after continually restarting a node in the cluster. I’ll link you the issue when he is done uploading the logs, but it looks like the exception is an Unknown Member Exception
Jordan Halterman
@kuujo
Feb 06 2017 21:17
Ugh just lost another long response :-(
Jon Hall
@jhall11
Feb 06 2017 21:20
hopefully it will show up eventually
Jordan Halterman
@kuujo
Feb 06 2017 21:25

@jhall11 that's awesome! I never really attempted learning Clojure either, but I think it will be time well spent!

I'm excited to see a lot more testing being done and I'm hoping to be able to contribute some extra time there myself soon enough. The core of the Raft algorithm is pretty stable, but as I said before, configuration changes and log compaction are the more delicate portions of the algorithm that risk safety and liveness. There's a lot of testing to be done to prove those implementations are correct. Jepsen is one way to do that, and it's great considering that it mimics real world scenarios. I've also explored building a fuzzy testing framework, which Copycat's architecture could certainly facilitate. And as for actual state machine implementations, a testing framework for state machines can be built without much difficulty (just more time) to ensure they're deterministic and manage logs correctly. Those three types of testing really just test the same thing - correctness - at different levels, but could expose different types of issues.

Roman Pearah
@neverfox
Feb 06 2017 21:27
@jhall11 I'm a Clojure dev, if I can be of any help.
Jordan Halterman
@kuujo
Feb 06 2017 21:27
Issues in the API/client communication, issues in the implementation, issues in the applications (state machines)
:clap:
Jon Hall
@jhall11
Feb 06 2017 21:31
@neverfox, I think the step now is making sure the tests that are there now( written around rc4?) are updated to the current atomic/copycat. Clojure is different enough from what I’m used to that I can’t really hack on it like I could in some other languages without knowing the language
Roman Pearah
@neverfox
Feb 06 2017 21:31
@jhall11 I might get some time later in the week, if you can point me to the relevant parts.
Jordan Halterman
@kuujo
Feb 06 2017 22:32
It does appear the first version of my long response got eaten by the cloud :-P
Jordan Halterman
@kuujo
Feb 06 2017 23:06
@jhall11 are the atomix/trinity and atomix/atomix-jepsen repos in sync with your forks? Should they be runnable now?
Jon Hall
@jhall11
Feb 06 2017 23:32
the trinity is
for atomix-jepsen, I made some changes where I made a base image for the atomix node container and pulling that. I’m not sure if you want that part uploaded into master or not. Also, the changes I made to the test aren’t quite right. I had to make some to get them to compile since trinity.open! is no longer
Jon Hall
@jhall11
Feb 06 2017 23:41
I created a pull request: atomix/atomix-jepsen#1 so you can easily see the changes'
Jordan Halterman
@kuujo
Feb 06 2017 23:41
hmm
thanks
Jon Hall
@jhall11
Feb 06 2017 23:42
I hate how atomix keeps getting autocorrected to atomic
and there was some additional things needed for the node container images, which I build using this: https://github.com/jhall11/atomix_node/blob/master/Dockerfile
Jordan Halterman
@kuujo
Feb 06 2017 23:48
lol