title

text

Илья Космодемьянский
Илья Космодемьянский Data Egret
: December
45 мин

Linux IO internals for PostgreSQL administrators

Input-output (IO) performance issues have been on DBAs’ agenda since the beginning of databases. The volume of data grows rapidly and time is of an essence when one needs to get necessary data fast from the disk and, more importantly, to the disk.

For most databases it is relatively easy to find checklist of recommended Linux settings to maximize IO throughput and, in most cases, this checklist is indeed good enough. It is however essential always to understand how the optimisation of those settings actually works, especially, if you run into corner cases.

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

  • Alexander Korotkov
    Alexander Korotkov Postgres Professional
    Andrei Nikolayenko
    Andrei Nikolayenko Скала-Р
    Борис Нейман
    Борис Нейман Mellanox
    22 мин
  • Mikhail Tyurin
    Mikhail Tyurin ИТ предприниматель
    22 мин

    Deadlock explanations

    < Query failed: ERROR: deadlock detected
    < DETAIL: Process 17371 waits for ShareLock on transaction 102733872; Blocked by process.
    < Process 10414 waits for ShareLock on transaction 102733874; Blocked by process 17371.
    

    Such "unpleasant" messages from the server can seriously puzzle the developer. When working with locks, in particular, with transactions in general, it is necessary to take into account the features of the implementation of client libraries, which can cause the above exception.

    In the short talk, the mechanics of the interaction of locks will be explained, main attention being paid to causes of deadlocks. References to the relevant documentation pages will be given. A technique of "bypassing" this problem of concurrent data access will be described and illustrated with some generalized examples from practice are shown. The talk will be interesting to database developers and administrators as well as the client-side application developers.

  • Vladimir  Borodin
    Vladimir Borodin Яндекс
    45 мин

    Connection pooling at any scale

    It's not a secret that PostgreSQL connections are expensive so you should save them. To solve this problem there are PgPool-II and PgBouncer for quite a long time. At Yandex tens of thousands of connections to a single database is not a surprise so we use pgbouncer since time immemorial. This talk gives an overview of problems we faced and ways to solve them.

    VIDEO

  • Ildar Musin
    Ildar Musin Postgres Professional
    Dmitry Ivanov
    Dmitry Ivanov Postgres Professional
    45 мин

    Partitioning with pg_pathman

    Partitioning is a long-awaited feature in PostgreSQL. Although Postgres supports partitioning via inheritance, this approach has some disadvantages, such as the need to manually create partitions and support triggers, significant planning overhead, and no query execution optimizations. In this talk, we’ll tell you about the pg_pathman extension we are developing. pg_pathman supports HASH and RANGE partitioning, performs planning and execution optimizations, supports fast insert by using Custom Node instead of triggers, provides functions for partition management (add, split, merge, etc.), supports FDW, non-blocking data migration, and more. We'll also speak about pg_pathman integration with Postgres Pro Enterprise Edition and Oracle-like syntax support for partitioning. Finally, we'll discuss new partitioning capabilities in PostgreSQL 10, the already implemented features and further development plans.

    VIDEO