Skip to content

(WIP) Abstract partitioned cluster layout with routing, optimized primary/replica placement, cluster diffs and range transition plans.

Notifications You must be signed in to change notification settings

chassisframework/partitioned_cluster_layout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PartitionedClusterLayout

WORK IN PROGRESS

PartitionedClusterLayout is an abstract expression of a generic state-partitioned cluster.

The goal of this library is to provide a data structure suitable for synchronizing between cluster members that encapsulates a few important concepts:

  • Cluster membership
  • Key-to-partition routing via PartitionMap
  • Optimal partition/replica placement via BinPacker.

Given two of these layout structures, the library can provide diffs and range transition plans for growing and shrinking the cluster in a controlled manner.

Custom partitioning strategies replica placement strategies are supported, see SimpleStrategy for an example.

Installation

The package can be installed by adding partitioned_cluster_layout to your list of dependencies in mix.exs:

def deps do
  [
    {:partitioned_cluster_layout, "~> 0.1.0"}
  ]
end

The docs can be found at https://hexdocs.pm/partitioned_cluster_layout.

About

(WIP) Abstract partitioned cluster layout with routing, optimized primary/replica placement, cluster diffs and range transition plans.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages