Atomix_NoLimit Mac OS
Atomix_NoLimit Mac OS
Table of Contents
Introduction
- Comparisons
This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles. Use it on OS X, Windows, or Linux. Built-in package manager. Search for and install new packages or create your own right from Atom. Smart autocompletion. Atom helps you write code faster with a smart and flexible autocomplete. File system browser.
Concepts
Cluster Management
- Cluster Configuration
- Member Discovery
- Partition Groups
- Member Groups
- Cluster Membership
Cluster Communication
Primitives
- Overview
- Primitive Protocols
- AtomicCounter
- AtomicCounterMap
- AtomicDocumentTree
- AtomicIdGenerator
- AtomicLock
- AtomicMap
- AtomicMultimap
- AtomicNavigableMap
- AtomicSemaphore
- AtomicSortedMap
- AtomicValue
- DistributedCounter
- DistributedCyclicBarrier
- DistributedList
- DistributedLock
- DistributedMap
- DistributedMultimap
- DistributedMultiset
- DistributedNavigableMap
- DistributedNavigableSet
- DistributedQueue
- DistributedSemaphore
- DistributedSet
- DistributedSortedMap
- DistributedSortedSet
- DistributedValue
- LeaderElection
- Transactions
Custom Primitives
- Creating the Primitive Service
Configuration
- Configuration Reference
- Cluster Discovery Protocols
- Cluster Membership Protocols
- Raft
- Primary-Backup
- Distributed Log
Serialization
Agent
Deployment
REST API
Python API
CLI
Test Framework
- Disrupting Nodes
- Disrupting the Network
Architecture
- Primitive Protocols
Atomix is a tool for solving common distributed systems problems in a variety of different ways. It is unopinionated about the problems it solves, instead providing primitives with which to solve problems. Some examples of the primitives it provides are:
- Distributed data structures (maps, sets, trees, counters, values, etc)
- Distributed communication (direct, publish-subscribe, etc)
- Distributed coordination (locks, leader elections, semaphores, barriers, etc)
- Group membership
Each of these primitives can be replicated using a variety of configurable distributed systems protocols with varying guarantees:
- Multi-Raft - a strongly consistent partitioned consensus algorithm
- Multi-Primary - a consistent partitioned leader-based synchronous/asynchronous replication algorithm
- Anti-entropy - a highly scalable eventually consistent gossip/reconciliation protocol
- CRDT - an eventually strongly consistent gossip-style replication protocol
Primitives are thread-safe, asynchronous, and reactive, relying heavily on event notifications to detect state changes in the system:
And can be accessed in a variety of different ways, including:
- Asynchronous APIs
- Synchronous APIs
- REST API
Similarly, they can be configured either in code or in configuration files:
Atomix No Limit Mac Os X
- Java builders
- HOCON configurations
- JSON configurations
Atomix No Limit Mac Os Download
This flexibility allows architects to build extremely diverse systems.
ONOS Use Case
The ONOS project for which Atomix is primarily developed is an excellent use case in using the features of Atomix outlined above. At its core, ONOS uses Atomix group membership and messaging for cluster management and communication. Additionally, stores in ONOS rely heavily on Atomix primitives for state replication and coordination. Using Atomix allows ONOS engineers to choose the ideal primitive for the use case of each individual store. For example, some stores may use synchronous primitives for simplicity, while others may use asynchronous (non-blocking) primitives for concurrency. Some stores use Atomix primitives to build higher-level custom replication protocols. The unopinionated nature of Atomix allows engineers to use the best tool for the job, and the ability to encapsulate most of the complexity of distributed systems in Atomix primitives has reduced the barrier to entry for new ONOS contributors.
Atomix_NoLimit Mac OS