These are chat archives for atomix/atomix

21st
Jul 2016
Jonathan Halterman
@jhalterman
Jul 21 2016 00:18
@neverfox that's awesome!
@neverfox i'm not much of a Docker user ATM, but we've wanted to publish an Atomix docker image for standalone deployments. part of the problem is figuring out how to offer a decent standalone Docker setup given that user clusters will vary in size, and different users might be using different container orchestrators (kubernetes, or not)
...and also sort out the best way to allow users to pass in config. any pointers on this stuff?
Roman Leventov
@leventov
Jul 21 2016 23:32
Hello, I'm new to Atomix community. I wonder if anybody running Atomix in real life create really big Maps and willing to move them off-heap? (Similar feature is provided by all rival projects: Hazelcast, GridGain, Infinispan, Coherence).
I would like to try implement this using Chronicle Map as a state backend if anybody is actually interested in this.
Roman Pearah
@neverfox
Jul 21 2016 23:38
@jhalterman That was essentially the problem I was trying to solve with this. It accepts a configuration that sets the mode to bootstrap or join so that you can configure a cluster as needed. The idea being that you would launch 1 boostrap replica and 1+ join replicas, either in docker compose or k8s deployments. It doesn't yet configure different kinds of replicas (active, passive etc.) They're all active. Either env variables or a properties/config file that is loaded as a volume or docker cmd argument should take care of configuration.
There are still some issues, I think, with the k8s setup. It works as a single replica, and my "seed provider" works, but I think that Atomix itself might still need some ability to use a configurable advertised host (somewhat like Kafka), but I'm not sure yet.
Gardner Vickers
@gardnervickers
Jul 21 2016 23:40
You’ll need to use PetSets in K8s like Zookeeper
Roman Pearah
@neverfox
Jul 21 2016 23:41
@gardnervickers Haven't played with those yet.
I was basing my approach on the Cassandra example where the Clojure code finds the other replica hosts via the API.
But the way that Atomix replicas provide clients with their address has been a bit tricky to work with, when talking about ingress.
Jordan Halterman
@kuujo
Jul 21 2016 23:43
Open to suggestions :-) that has always been a pain point. Some of it's just the limitations of consensus.
Roman Pearah
@neverfox
Jul 21 2016 23:46
Now that I have minikube up on my box, I can play around a bit more with different approaches and have something better to suggest.
Jordan Halterman
@kuujo
Jul 21 2016 23:46
@leventov I wouldn't call those projects competitors. Those are in-memory data grids, which Atomix certainly is not. I think there's a lot more reason to invest in off-heap memory for a system that's designed to scale memory usage, but Atomix is not designed to scale horizontally right now. While its API design was influenced by Hazelcast, it's functionality is still very similar to ZooKeeper and Curator of Consul or any of the consensus based systems. That is, the focus is still on consistency and typically small data structures as opposed to scalability at the cost of consistency, just with a much simpler API. Scaling memory in Atomix would require a partitioning scheme. Off-heap memory would still be interesting, but the size of the map will still always be limited by the smallest machine.
Roman Pearah
@neverfox
Jul 21 2016 23:48
Yeah, I think we might be using Infinispan to serve as a massive memoization platform, with Atomix serving more as a state machine, though I'm not certain if it would really tax Atomix to use it for both.
The memoization doesn't really require hard consistency guarantees.