These are chat archives for atomix/atomix
We are no longer monitoring this channel, please join Slack! https://join.slack.com/t/atomixio/shared_invite/enQtNDgzNjA5MjMyMDUxLTVmMThjZDcxZDE3ZmU4ZGYwZTc2MGJiYjVjMjFkOWMyNmVjYTc5YjExYTZiOWFjODlkYmE2MjNjYzZhNjU2MjY
MergePolicythat looks at this client supplied timestamp to figure out recency.
Hello all... Maven question. If I have the proper dependencies pertaining to atomix in my pom.xml file for my project, why might I get an error like this upon running the project? The answer might be obvious, but I'm new to Maven
Exception in thread "main" java.lang.NoClassDefFoundError: io/atomix/catalyst/transport/Address
Caused by: java.lang.ClassNotFoundException: io.atomix.catalyst.transport.Address
... 1 more
FILEbased log, the only thing that can potentially grow with usage is the state machine state. For example, if you have a
DistributedMapwith a large number of unique keys then you might start seeing some memory pressure. Otherwise base Atomix itself is fairly light weight. I routinely run it with 128MB max heap size
MEMORYlog. Vert.x just uses it to store node IDs and event bus addresses, and you don't need much more memory than would normally be required for those things. There is some overhead
StorageLevel. The log index is held in memory along with a bit array, but the log index is pretty compact and the bit array is tiny. Atomix/Copycat frequently compacts the log which also frees memory.
Storageconfiguration, but typically the memory footprint even with defaults is really small, like 10 or 20mb in my experience even with log indexes.
commitIndexis greater than a segment's last index, or when a leader's lowest
nextIndexis greater than a segment's last index. That would actually allow the
MEMORYlog to be more efficient as well.
MAPPEDsegments. The log only actually memory maps
MAPPEDsegments that haven't been compacted. Once a segment is compacted it's rewritten to a
RandomAccessFilethat's not mapped.
Polling members, that indicates that the follower is not hearing from any leader and so it's trying to start a new election. If it can't talk to a majority of the cluster then it will repeatedly do that until it can talk to a majority of the cluster or finds a leader
bootstrap(...)with arguments, you should
bootstrap(...)with arguments on all the nodes in that list
bootstrap()on one node and then
join(thatNode)on all the others
bootstrap(threeNodes)on only one node then this is the type of log you'll get since it can't be elected leader without the other two nodes