Skip to content

avito-tech/skytools

 
 

Repository files navigation

= SkyTools - tools for PostgreSQL =

This is a package of tools in use in Skype for replication and
failover.  Also it includes a generic queuing mechanism PgQ and
utility library for Python scripts.

== Overview ==

It contains following tools:

=== PgQ ===

This is the queue machanism we use.  Consists of PL/pgsql, and C code
in database, with Python framework on top of it.  It is based on
snapshot based event handling ideas from Slony-I, written for general
usage.

Features:

- There can be several queues in database.
- There can be several producers than can insert into any queue.
- There can be several consumers on one queue and all consumers see
   all events.

Documentation:

- PgQ admin tool (pgqadm) usage: doc/pgq-admin.txt
- PgQ SQL API overview: doc/pgq-sql.txt
- PgQ SQL reference: http://skytools.projects.postgresql.org/pgq/

=== Londiste ===

Replication tool written in Python, using PgQ as event transport.

Features:

- Tables can be added one-by-one into set.
- Initial COPY for one table does not block event replay for other
  tables.
- Can compare tables on both sides.

Documentation:

- Londiste script usage: doc/londiste.cmdline.txt
  (also available as `man 1 londiste`)
- Londiste configuration: doc/londiste.config.txt
  (also available as `man 5 londiste`)
- Londiste reference: doc/londiste.ref.txt

=== walmgr ===

This script will setup WAL archiving, does initial backup and
runtime WAL archive and restore.


Packages

No packages published

Languages

  • Python 48.5%
  • PLpgSQL 36.9%
  • C 8.8%
  • Shell 4.5%
  • Makefile 0.8%
  • PLSQL 0.3%
  • Other 0.2%