These are chat archives for atomix/atomix

1st
Jun 2018
Jordan Halterman
@kuujo
Jun 01 2018 02:05

@aaudiber I think it’s probably a bug. I may recall something like that. Although, if commits are not managed correctly it can legitimately remove the session creation entry. In other words, if all the session’s commands were released and the session was expired/closed, Copycat will remove that open session entry.

I don’t really recall whether this was a bug in that implementation. We’ve been using the Atomix 2 Raft implementation for almost a year now and it’s much more stable. State machines are also much simpler and avoid this type of problem. It uses snapshots for log compaction and monitors throughput to avoid unnecessarily expensive operations while under load.

Atomix 2.1 documentation exists: http://atomix.io/docs/latest/user-manual/cluster-management/cluster-configuration/

It’s probably enough to get started. I’m just doing the most important documentation first. The release candidate will be this weekend or next week and the API will be stable after that.

Also, the Atomix 2.0 Raft API is pretty similar to Copycat’s. Just the transport is the biggest difference. And snapshotting
Andrew Audibert
@aaudiber
Jun 01 2018 02:16
Thanks @kuujo! The documentation link is super helpful, I'd just been watching the introduction/what-is-atomix page. Really excited to try out 2.1
Johno Crawford
@johnou
Jun 01 2018 07:01
@kuujo like annotation scanning?
Jordan Halterman
@kuujo
Jun 01 2018 07:02
¯\(ツ)/¯
Jordan Halterman
@kuujo
Jun 01 2018 07:08
that can have its own problems
Jordan Halterman
@kuujo
Jun 01 2018 07:28
maybe not a bad idea though
Johno Crawford
@johnou
Jun 01 2018 07:58
might run into the same problems as service loader with osgi though
that's just a hunch, i haven't used it personally
Jordan Halterman
@kuujo
Jun 01 2018 08:40
Yep
Actually looks like that library should work fine with OSGi
Johno Crawford
@johnou
Jun 01 2018 08:42
there's a better one
Jordan Halterman
@kuujo
Jun 01 2018 08:50
Indeed
Says it works with Apache Felix
I think this may actually work out much, much better. The big challenge Atomix has it that it has to know about primitives before they’re ever created. If a new process is started, there’s some potential it runs into commands for an unknown primitive state machine when replaying persisted logs. So, classes have to be registered before any logs are replayed. But that’s a PITA for users - they have to either register primitive types in code or configuration files. Would be very nice to just implement the PrimitiveType interface.
Jordan Halterman
@kuujo
Jun 01 2018 08:56
Atomix 2.1 is working in ONOS now, running an external cluster. Just cleaning up all the primitives and I’ll fix this issue and then bump the version to 3.0 and do an RC
Ronnie
@rroller
Jun 01 2018 13:43
Great work. Looking forward to the rc. Snapshots are evil :-p
Jordan Halterman
@kuujo
Jun 01 2018 19:09
Indeed
ONOS has a large suite of tests that use Atomix primitives very heavily. I haven’t run them yet, but once they pass we should feel comfortable calling it ready.
Jordan Halterman
@kuujo
Jun 01 2018 19:45
I’ll also give a talk on now Atomix 3 next week. It will be recorded and uploaded to YouTube