title

text

Alexander Korotkov
Alexander Korotkov Postgres Professional
: December
45 мин

PostgreSQL extendability: Origins and new horizons

Postgres was initially designed to support access methods extendability. Well known citation about access method in Postgres claims: "It is imperative that a user be able to construct new access methods to provide efficient access to instances of nontraditional base types" Michael Stonebraker, Jeff Anton, Michael Hirohama. Extendability in POSTGRES, IEEE Data Eng. Bull. 10 (2) pp.16-23, 1987

Initially, heap was just one for access methods. So, extendability of access methods would also mean pluggable storage engines in modern terms. For now, only index access methods are defined in pg_am table of system catalog. Those index access methods also have well-defined interface. Therefore in order to meet initial design PostgreSQL need to support two features:

  • Pluggable index access methods, i.e. ability to implement new index types by adding new tuples to pg_am;
  • Pluggable storage engines, i.e. ability to implement completely different storages for tables without traditional heap.

Besides mechanical work like "CREATE ACCESS METHOD" command, extensible index access methods needs to be WAL-logged. For now, community doesn't want extensions to define their own WAL-records, because there is a chance to break both recovery and replication, which is not acceptable. Another approach is to define generic WAL-records, that specify a difference between pages in generalized way.

There are only few DBMS which support pluggable storage engines now. MySQL is the most common example here. However, dealing with different storage engines in MySQL is like dealing with different DBMS. This is not the way PostgreSQL should go from our view.

However, now PostgreSQL users realize benefits from other storages. Ideas of columnar storages and in-memory storages for PostgreSQL are very popular. Simultaneously, technical possibilities to implement them are growing. FDW and custom nodes are arrived. Generic WAL and extensible index access methods are pending for 9.6. Much work in the direction of pluggable storage engines is already done even if it had different aims.

It's time for PostgreSQL core developers to think about native support of pluggable storages without kludges. Finally, we should get "CREATE STORAGE ENGINE name ..." command as legal extendability mechanism.

In this talk we will show current state on pluggable index access method and design of pluggable storage engines.

Слайды

Видео

Другие доклады

  • Eugeniy Tyumentcev
    Eugeniy Tyumentcev ООО "Здравствуй мир! Технологии"
    22 мин

    Using JSONB in Real Projects

    We will consider the advantages and disadvantages of solutions based on JSONB compared to traditional relational approach on real projects, including: 1. Performance 2. Data Versioning 3. Scalability 4. Reliability 5. Report building

  • Peter Gribanov
    Peter Gribanov
    22 мин

    1C:Enterprise: the most popular in Russia/CIS ERP level development platform that supports PostgreSQL

    More than 300.000 developers use technology platform "1C:Enterprise" as a main development tool. I'll tell you about architecture and features that made "1C:Enterprise" one of the most popular development environment in Russia and CIS and about growing popularity of PostgreSQL amongst 1C users.

  • Vladimir Serduk
    Vladimir Serduk SOFTPOINT
    22 мин

    You have a distributed IT system, it has many nodes, BUT it has: - Lack of efficiency of exchange. Delay timing - hours or days? - Interference to users block during the exchange? - Poor handling - all nodes exchange status is not clear; - Low exchange stability, the need for manual control?

    DBReplicaton - the technology of high-speed data exchange between PostgreSQL databases. This report presents a solution that runs in the tens of medium and large companies in Russia (> 2500 active users,> 20 nodes exchange), which has: - Own transport subsystem; - Centralized unified interface and control the exchange; - Bilateral exchanges: the ability to work with data on changes in all nodes involved in the exchange; - High data rate (2 seconds). Additionally, you will learn about the unusual use of replication in a variety of business systems.