diff --git a/postgres_helm/elephant_patroni_live_demo.png b/postgres_helm/elephant_patroni_live_demo.png new file mode 100644 index 0000000..0e0dd43 Binary files /dev/null and b/postgres_helm/elephant_patroni_live_demo.png differ diff --git a/postgres_helm/notes.txt b/postgres_helm/notes.txt index d87169f..b7028a1 100644 --- a/postgres_helm/notes.txt +++ b/postgres_helm/notes.txt @@ -26,6 +26,18 @@ Helm Oleksii +Patroni +- RAFT is the fabric that holds together your PostgreSQL containers +- External consistent key-value store instead of a built-in one: + advantages: + - PostgreSQL failure doesn't break the consensus + - use well-tested RAFT implementations (i.e. Etcd or Consul) + disadvantages: + - one needs to operate extra services +Features: +- synchronous vs asynchronous replication (consistency vs availability) +- some parameters need to be kept in sync on all cluster nodes (max_connections) + CitusDB - sharded postgres - query node, plus shard nodes @@ -36,6 +48,7 @@ giant robot elephant from The Nantes Project elephant helm by Blank Williams robot elephant by Robert Chew robot with elephant by Mark F Stosiak +stubborn elephant by Kolja Wilcke @01k diff --git a/postgres_helm/postgres_helm.md b/postgres_helm/postgres_helm.md index 7971034..e485959 100644 --- a/postgres_helm/postgres_helm.md +++ b/postgres_helm/postgres_helm.md @@ -118,39 +118,52 @@ Kubecon EU 2017 --- ![spilo_diagram](spilo_diagram.svg) + --- -## Patroni customization +## Extensibility -* Callbacks (on_role_chage) -* Custom replica creation -* Pluggable consistency layers +* callbacks +* custom replica creation methods +* pluggable consistent KV-stores --- -## Not just autofailover +## More than autofailover -* Synchronous mode -* Cascading replication -* Dynamic configuration +* synchronous mode +* cascading replication +* dynamic configuration --- ## Cluster maintenance + * "Hands-off" mode * Scheduled failovers and restarts --- -## Controlling Patroni +## Interfaces * REST API * patronictl --- +## Helm parameters + + * cluster name + * Etcd host + * number of replicas + * credentials + +--- + #### Patroni Demo +![patroni demo](elephant_patroni_live_demo.png) + --- ![citus sharded](citus_sharded.png) @@ -232,6 +245,14 @@ github.com/jberkus/atomicdb --- +## Spilo demo: + + * Helm Chart: +
github.com/alexeyklyukin/ +
/charts/incubator/patroni + +--- + # ¿questions? .left-column-narrow[ diff --git a/postgres_helm/spilo_diagram.svg b/postgres_helm/spilo_diagram.svg index 58e6a4d..3c31d0f 100644 --- a/postgres_helm/spilo_diagram.svg +++ b/postgres_helm/spilo_diagram.svg @@ -1,11 +1,11 @@ - + Produced by OmniGraffle 7.3 - 2017-03-29 07:29:42 +0000 + 2017-03-29 11:37:42 +0000 - + @@ -25,82 +25,110 @@ - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + Canvas 1 - Layer 1 - - - - - - Spilo master pod + + + + Spilo master pod - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - Patr - oni + + Patr + oni - + - - - - Service + + + Service - - - - Endpoint + + + Endpoint - - - - - - - Client + + + + + + Client - - - + + +