These are chat archives for atomix/atomix

19th
May 2016
Madan Jampani
@madjam
May 19 2016 00:52
I will open a PR shortly for couple of things: (1) the issue above (2) minor state cleanup of operation attempts in ClientSessionSubmitter
Jordan Halterman
@kuujo
May 19 2016 01:09
Great
Madan Jampani
@madjam
May 19 2016 01:14
This message was deleted
Jordan Halterman
@kuujo
May 19 2016 02:43
@madjam you can merge it whenever. Not sure if you're making any other changes since that message was deleted ^^
Madan Jampani
@madjam
May 19 2016 02:48
@kuujo The deleted message was me trying to post a link to the PR. I posted the wrong link :)
This actually ended up being quite useful.
It fixed all of the general instability I was observing of late.
Jordan Halterman
@kuujo
May 19 2016 03:07
Amazing! Will release it then:-)
Madan Jampani
@madjam
May 19 2016 03:07
:+1:
Jordan Halterman
@kuujo
May 19 2016 03:08
Yeah rewriting the events and command/query handling for all the sequencing definitely introduced some instability I noticed too. Hopefully it's back to where it was now
David Moravek
@dmvk
May 19 2016 08:23
@kuujo yes, thats what I thought.... however it didn't work, because InvocationTargetException got converted to AssertionError, which is not a descendant of Exception, therefore didn't get caught by the executor :) atomix/copycat#223
Jordan Halterman
@kuujo
May 19 2016 08:26
ahh gotcha
makes sense
David Moravek
@dmvk
May 19 2016 08:28
will test it in a bit in my project if this fix is enough
ok, it seems to be working now
Jordan Halterman
@kuujo
May 19 2016 08:33
Seems good thanks!
David Moravek
@dmvk
May 19 2016 08:40
:thumbsup:
Jordan Halterman
@kuujo
May 19 2016 17:02
I'll push a new release after the last Copycat PR is merged
Madan Jampani
@madjam
May 19 2016 17:12
@kuujo I would like make some updates to the pom files to fix some OSGi issues I am noticing. I plan to get those in today. Can we create a new release after that?
Jordan Halterman
@kuujo
May 19 2016 17:13
:+1:
Jonathan Halterman
@jhalterman
May 19 2016 18:07
@madjam I wanted to validate the OSGi stuff via a test, but it seemed pretty tricky to do. Do you know if it's possible?
i was thinking like a test activator
Madan Jampani
@madjam
May 19 2016 18:12
@jhalterman I am not sure. But some folks I know are more familar with OSGi than I’m. Let me check with them.
Jonathan Halterman
@jhalterman
May 19 2016 18:13
sounds good. my concern is that we're not really OSGi users either, so I just want to make sure that what gets released is validated somehow. your being able to manually validate it is good too.
Madan Jampani
@madjam
May 19 2016 18:45
This message was deleted
Roman Pearah
@neverfox
May 19 2016 21:08
Would you say that Atomix does "atomic ordering and heart-beat callbacks"?
Jordan Halterman
@kuujo
May 19 2016 21:25
Depends on the context of your question… I view atomicity more as a form of isolation than order, though it does imply order. Changes to the state of distributed objects occur once between request and response. Heartbeats is an inacurate way to describe events if that’s what you’re referring to. e.g. when a member joins a DistributedGroup and other instances of the group are notified, that notification does not relate to heartbeats in any way. Servers actually push events to clients to notify them of changes in the system. Clients only send heartbeats to the cluster to keep their session open and to maintain consistency between the client and server’s state. But pushing events to clients directly significantly reduces the latency and overhead of events and means clients actual react to changes in the state of a distributed object rather than first reading and then reacting to a state change.
Roman Pearah
@neverfox
May 19 2016 21:37
The context was that someone I was speaking with was skeptical that anything better than ZK exists right now because most claiming to usurp it don't have "atomic ordering and heart-beat callbacks" primitives, but I don't have more context than that.
It's obviously a reference to something ZK offers, so that's the only clue.
I didn't press for more clarity.
Jordan Halterman
@kuujo
May 19 2016 21:41
Gotcha
Jordan Halterman
@kuujo
May 19 2016 21:47
So, Atomix session events are very similar to ZooKeeper's but actually have stronger guarantees. Both ZooKeeper and Atomix allow clients to connect to followers and push events to clients over a TCP socket. Both ZK and Atomix provide sequential consistency for events. However, ZooKeeper does not guarantee fault tolerance for watch events (which seems like what they're referring to). If a client switches servers, it can miss events. Atomix does the same thing ZooKeeper does but with greater flexibility and fault tolerance. Events are not limited to primitives - you can write a custom state machine with custom events - and Atomix (actually Copycat) holds events in memory on all servers until they've been acknowledged by the client.
Roman Pearah
@neverfox
May 19 2016 21:52
Basically what Apache tries to do with Bookkeeper + Zookeeper
Jonathan Halterman
@jhalterman
May 19 2016 22:31
@neverfox For creating state machines, more or less, though we'd like to think that Atomix and Copycat are easier to use, provide more flexible features, and as @kuujo described, more robust guarantees as well. Certainly the out of the box primitives that Atomix provides have no parallel elsewhere, and the relative simplicity of their implementation (for anyone who reads through the code) stands in contrast to what is required to build similar primitives in BookKeeper or elsewhere.
:)
Roman Pearah
@neverfox
May 19 2016 22:33
:+1:
Jonathan Halterman
@jhalterman
May 19 2016 22:37
@neverfox i don't know if this is stressed much in the documentation, but one of the overriding goals wasn't just to make something different for the sake of having something different, but to make something that's as dead simple as possible to use. having used other technologies in these spaces over several years, simplicity was paramount.
...to the extent that you can simplify the building of consistent, distributed state machines, it seems pretty good :)
Roman Pearah
@neverfox
May 19 2016 22:38
That's the holy grail
Jonathan Halterman
@jhalterman
May 19 2016 22:39
Tech is such a popularity contest though. To some extent, further improvements will come from more usage/users, so spreading the word is important now.
@neverfox feel free to blog/tweet/twirl a sign/etc :)
Roman Pearah
@neverfox
May 19 2016 22:39
I'm afraid it's likely to be that way for a while
You got it