Slony-I

Last updated

Slony-I is an asynchronous master-slave replication system for the PostgreSQL DBMS, providing support for cascading and failover. Asynchronous means that when a database transaction has been committed to the master server, it is not yet guaranteed to be available in slaves. Cascading means that replicas can be created (and updated) via other replicas, i.e. they needn't directly connect to the master.

PostgreSQL Free and open-source object-relational database management system

PostgreSQL, often simply Postgres, is an open source object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliance. It can handle workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users. It is the default database on macOS Server and is available for Microsoft Windows and Linux.

In computing and related technologies such as networking, failover is switching to a redundant or standby computer server, system, hardware component or network upon the failure or abnormal termination of the previously active application, server, system, hardware component, or network. Failover and switchover are essentially the same operation, except that failover is automatic and usually operates without warning, while switchover requires human intervention.

A transaction symbolizes a unit of work performed within a database management system against a database, and treated in a coherent and reliable way independent of other transactions. A transaction generally represents any change in a database. Transactions in a database environment have two main purposes:

  1. To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure, when execution stops and many operations upon a database remain uncompleted, with unclear status.
  2. To provide isolation between programs accessing a database concurrently. If this isolation is not provided, the programs' outcomes are possibly erroneous.

Contents

Terminology

The name "slony" comes from the Russian word "слоны" which means "elephants". [1] This is a reference to the PostgreSQL elephant logo, as well as being a "tip of the hat" to Vadim Mikheev, who came up with some of the core ideas Slony-I uses to work. Note that there is a whole set of related terminology:

Russian language East Slavic language

Russian is an East Slavic language, which is official in the Russian Federation, Belarus, Kazakhstan and Kyrgyzstan, as well as being widely used throughout Eastern Europe, the Baltic states, the Caucasus and Central Asia. It was the de facto language of the Soviet Union until its dissolution on 25 December 1991. Although, nowadays, over two decades after the breakup of the Soviet Union, Russian is used in official capacity or in public life in all the post-Soviet nation-states, as well as in Israel and Mongolia, the rise of state-specific varieties of this language tends to be strongly denied in Russia, in line with the Russian World ideology.

Elephant Large terrestrial mammals with trunks from Africa and Asia

The elephants are the large mammals forming the family Elephantidae in the order Proboscidea. Three species are currently recognised: the African bush elephant, the African forest elephant, and the Asian elephant. Elephants are scattered throughout sub-Saharan Africa, South Asia, and Southeast Asia. Elephantidae is the only surviving family of the order Proboscidea; other, now extinct, members of the order include deinotheres, gomphotheres, mammoths, and mastodons.

slony
is the plural word for elephants, and indicates that a cluster consists of multiple databases
slon
is the singular word for elephant; each replication node is managed by a program named "slon", which aggregate together into the aforementioned "cluster of elephants"
slonik
is the word for a "little elephant," and is the name of the program used to configure the cluster. In effect, the "little elephant" tells the cluster, "here's what you need to do!"

Unique features

Unlike many other replication solutions for PostgreSQL, Slony-I is not tied to any particular version of the database, which makes it possible to upgrade a database cluster one node at a time, without material downtime. (Version 2.0.0 requires PostgreSQL 8.3+, though)

See also

Related Research Articles

MySQL SQL database engine software

MySQL is an open source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query Language.

Master/slave is a model of communication where one device or process has unidirectional control over one or more other devices. In some systems a master is selected from a group of eligible devices, with the other devices acting in the role of slaves.

Microsoft Exchange Server is a mail server and calendaring server developed by Microsoft. It runs exclusively on Windows Server operating systems.

A database server is a server which houses a database application that provides database services to other computer programs or to computers, as defined by the client–server model. Database management systems (DBMSs) frequently provide database-server functionality, and some database management systems rely exclusively on the client–server model for database access.

MySQL Cluster is a technology providing shared-nothing clustering and auto-sharding for the MySQL database management system. It is designed to provide high availability and high throughput with low latency, while allowing for near linear scalability. MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine for MySQL.

Multi-master replication is a method of database replication which allows data to be stored by a group of computers, and updated by any member of the group. All members are responsive to client data queries. The multi-master replication system is responsible for propagating the data modifications made by each member to the rest of the group, and resolving any conflicts that might arise between concurrent changes made by different members.

LAMP (software bundle) software bundle

LAMP is an archetypal model of web service stacks, named as an acronym of the names of its original four open-source components: the Linux operating system, the Apache HTTP Server, the MySQL relational database management system (RDBMS), and the PHP programming language. The LAMP components are largely interchangeable and not limited to the original selection. As a solution stack, LAMP is suitable for building dynamic web sites and web applications.

Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.

Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network.

Greenplum

Greenplum was a big data analytics company headquartered in San Mateo, California. Greenplum was acquired by EMC Corporation in July 2010.

Redis open-source in-memory database

Redis is an open-source in-memory data structure project implementing a distributed, in-memory key-value database with optional durability. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, hyperloglogs, bitmaps, streams and spatial indexes. The project is mainly developed by Salvatore Sanfilippo and is currently sponsored by Redis Labs.

VoltDB is an in-memory database designed by Michael Stonebraker, Sam Madden, and Daniel Abadi. It is an ACID-compliant RDBMS which uses a shared nothing architecture. It includes both enterprise and community editions. The community edition is licensed under the GNU Affero General Public License.

Couchbase Server

Couchbase Server, originally known as Membase, is an open-source, distributed multi-model NoSQL document-oriented database software package that is optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, Couchbase Server is designed to provide easy-to-scale key-value or JSON document access with low latency and high sustained throughput. It is designed to be clustered from a single machine to very large-scale deployments spanning many machines. A version originally called Couchbase Lite was later marketed as Couchbase Mobile combined with other software.

Amazon Relational Database Service is a distributed relational database service by Amazon Web Services (AWS). It is a web service running "in the cloud" designed to simplify the setup, operation, and scaling of a relational database for use in applications. Administration processes like patching the database software, backing up databases and enabling point-in-time recovery are managed automatically. Scaling storage and compute resources can be performed by a single API call as AWS does not offer an ssh connection to RDS instances.

Tarantool is an open-source NoSQL database management system and Lua application server. It maintains databases in memory and ensures crash resistance with write-ahead logging. It includes a Lua interpreter and interactive console but also accepts connections from programs in several other languages.

MemSQL is a distributed, in-memory, SQL database management system. It is a relational database management system (RDBMS). It compiles Structured Query Language (SQL) into machine code, via termed code generation. On April 23, 2013, MemSQL launched its first generally available version of the database to the public.

Oracle NoSQL Database

Oracle NoSQL Database is a NoSQL-type distributed key-value database from Oracle Corporation. It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.

SymmetricDS is open source software for database and file synchronization with Multi-master replication, filtered synchronization, and transformation capabilities. It is designed to scale for a large number of nodes, work across low-bandwidth connections, and withstand periods of network outage. Data synchronization occurs asynchronously from a scheduled job, with data changes being sent over a push or pull operation. It uses standard web protocols (HTTP) and database technologies (JDBC) in order to support a wide range of platforms and maximize its interoperability. It includes support for Oracle, MySQL, MariaDB, PostgreSQL, Greenplum, SQL Server, SQL Server Azure, HSQLDB, H2, Derby, DB2, Firebird, Informix, Interbase, SQLite, Sybase ASE, Sybase ASA, MongoDB, Amazon_Redshift, and VoltDB databases.

Postgres-XL distributed database based on PostgreSQL

Postgres-XL is a distributed relational database management system (RDBMS) software based on PostgreSQL. It aims to provide feature parity with PostgreSQL while distributing the workload over a cluster. The name "Postgres-XL" stands for "eXtensible Lattice".

References

  1. "Slony-I 2.2.5 Documentation: Slony-I Concepts". 2016-05-31. Retrieved 2017-02-02.
<i>Linux Journal</i> magazine

Linux Journal is a monthly technology magazine published by Linux Journal, LLC.. It focuses specifically on Linux, allowing the content to be a highly specialized source of information for open source enthusiasts.

O'Reilly Media is an American media company established by Tim O'Reilly that publishes books and Web sites and produces conferences on computer technology topics. Their distinctive brand features a woodcut of an animal on many of their book covers.