Giter Club home page Giter Club logo

kaastolon's Introduction

kaastolon a fork of stolon - PostgreSQL cloud native High Availability

Discourse Go Report Card Downloads Latest release

Stolon Logo

Why?

Original Stolon is not so active to accept things like new features, etc. (they are mostly working on some bug fixed and pg version)

So we made this repo to be more active ;)

But we are watching original repo to keep things up to date

Behind kaastolon

kaastolon is coming from where they call Karimi as a Service so I merged stolon with that ;)

Behind stolon

stolon is a cloud native PostgreSQL manager for PostgreSQL high availability. It's cloud native because it'll let you keep an high available PostgreSQL inside your containers (kubernetes integration) but also on every other kind of infrastructure (cloud IaaS, old style infrastructures etc...)

For an introduction to stolon you can also take a look at this post

Our Features

  • an extra argument for connecting to slave nodes (in kubernetes you can add extra service and deployment for proxy with that one)
  • added simple round robin for selecting slave node
  • add PostgreSQL 16 support (drop PostgreSQL 10 support)
  • probe api added (with /readyz and /healthz endpoints)

Realesed and docker images are published ;)

Features

  • Leverages PostgreSQL streaming replication.
  • Resilient to any kind of partitioning. While trying to keep the maximum availability, it prefers consistency over availability.
  • kubernetes integration letting you achieve postgreSQL high availability.
  • Uses a cluster store like etcd, consul or kubernetes API server as an high available data store and for leader election
  • Asynchronous (default) and synchronous replication.
  • Full cluster setup in minutes.
  • Easy cluster administration
  • Can do point in time recovery integrating with your preferred backup/restore tool.
  • Standby cluster (for multi site replication and near zero downtime migration).
  • Automatic service discovery and dynamic reconfiguration (handles postgres and stolon processes changing their addresses).
  • Can use pg_rewind for fast instance resynchronization with current master.

Architecture

Stolon is composed of 3 main components

  • keeper: it manages a PostgreSQL instance converging to the clusterview computed by the leader sentinel.
  • sentinel: it discovers and monitors keepers and proxies and computes the optimal clusterview.
  • proxy: the client's access point. It enforce connections to the right PostgreSQL master and forcibly closes connections to old masters.
  • slave proxy (optional): same as proxy but for readonly connections

For more details and requirements see Stolon Architecture and Requirements

Stolon architecture

Documentation

Documentation Index

Installation

Stolon is available in brew. It is unofficial and not supported by the project. So check the version before installing using brew.

Step to install using brew

Quick start and examples

Project Status

Stolon is under active development and used in different environments. Probably its on disk format (store hierarchy and key contents) will change in future to support new features. If a breaking change is needed it'll be documented in the release notes and an upgrade path will be provided.

Anyway it's quite easy to reset a cluster from scratch keeping the current master instance working and without losing any data.

Requirements

  • PostgreSQL 16, 15, 14, 13, 12, 11, 10

  • etcd2 >= v2.0, etcd3 >= v3.0, consul >= v0.6 or kubernetes >= 1.8 (based on the store you're going to use)

  • OS: currently stolon is tested on GNU/Linux (with reports of people using it also on Solaris, *BSD and Darwin)

build

To build stolon we usually test and support the latest two major versions of Go like in the Go release policy.

make

High availability

Stolon tries to be resilient to any partitioning problem. The cluster view is computed by the leader sentinel and is useful to avoid data loss (one example over all avoid that old dead masters coming back are elected as the new master).

There can be tons of different partitioning cases. The primary ones are covered (and in future more will be added) by various integration tests

FAQ

See here for a list of faq. If you have additional questions please ask.

Contributing to stolon

stolon is an open source project under the Apache 2.0 license, and contributions are gladly welcomed! To submit your changes please open a pull request.

Contacts

  • For general discussion about using and developing stolon, join the stolon forum
  • For bugs and feature requests file an issue

kaastolon's People

Contributors

0xflotus avatar abn avatar aermolaev avatar albertvaka avatar alessandro-sorint avatar amberbee avatar aswinkarthik avatar benwh avatar camandel avatar damupfel avatar dependabot[bot] avatar dineshba avatar dirbaio avatar donbowman avatar euank avatar gvalsecchig avatar ihcsim avatar johannesboon avatar jskswamy avatar karuppiah7890 avatar keierk01 avatar lawrencejones avatar mhkarimi1383 avatar nh2 avatar pierref avatar robdaemon avatar sgotti avatar siepkes avatar strangeman avatar wchrisjohnson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hadryan

kaastolon's Issues

Looking for someone to test latest changes with us ;)

Hello Everyone,

We have changed lots of things and we want to test it before production release
I'm inviting you to help us and test the newer docker image

ghcr.io/basalam/kaastolon:master-pg10
ghcr.io/basalam/kaastolon:master-pg11
ghcr.io/basalam/kaastolon:master-pg12
ghcr.io/basalam/kaastolon:master-pg13
ghcr.io/basalam/kaastolon:master-pg14
ghcr.io/basalam/kaastolon:master-pg15

changes

After your tests please give us your feedback here,

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.