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

Aug 7, 2021
2ad0852 · Aug 7, 2021

History

1 Commit
Aug 7, 2021
Aug 7, 2021
Aug 7, 2021
Aug 7, 2021
Aug 7, 2021
Aug 7, 2021
Aug 7, 2021

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