Meeting #RuPostgres: scaling applications on PostgreSQL
On September 15, a meeting dedicated to scaling applications on PostgreSQL will take place at Avito's office. Let's talk about the algorithms and nuances of implementing transactionalities in programming languages, building business transactions in the database per service pattern, how OZO is built - the asynchronous type-safe PostgreSQL client-client for C ++ 17, and PostgreSQL transaction isolation levels. Stas Kelvich (Postgres Professional), Sergey Handrikov (Yandex), Konstantin Evteev (Avito) and Mikhail Tyurin will make presentations. Register for a meeting and invite colleagues. Under the cut - theses of speeches of speakers, a link to the registration and information on the broadcast of the mitap.
Distributed transactions and time travel. Stas Kelvich, Postgres Professional
“The discussion will be based on the article“ Clock-SI: Snapshot for Partitioned Data Stores Using Loosely Synchronized Clocks ”by Jiaqing Du, Sameh Elnikety and Willy Zwaenepoel. We will try to deal with the Clock-SI protocol, we will also talk about the existing algorithms and nuances of the implementation of transactionality in programming languages (for example, Software Transactional Memory in Clojure) and databases (from IBM System-R to Google Spanner); why the isolation levels described in ANSI SQL weakly reflect reality and touch upon the topic of transaction anomalies. ”
Scaling an application to PostgreSQL in Avito: tips and tricks. Konstantin Evteev, Avito
“I want to talk about solutions from the community that we implemented in Avito architecture to scale our application under constantly growing loads.
I'll tell you about the "two-level smart" cache for more efficient use of standby.
I’ll share a story about Avito’s experience in solving one of the challenges of the microservice architecture - implementing business transactions while maintaining data consistency between services using the Database per Service architectural pattern. ”
Logical replication and PostgreSQL transaction isolation levels. Mikhail Tyurin
“From the tenth version of PostgreSQL, in addition to physical replication, the built-in logical one is also available to us. In addition, for many years, solutions on trigger logical replication exist and have been successfully applied. On the other hand, relatively recently, from version 9.1, we have transactions with an “honest” level of Serializable. These two significant circumstances (as well as debates on the Internet) prompted the author to review the problem of applying isolation levels for various existing replication methods, including analyzing the presence of Serializable on the replica. ”
OZO is an asynchronous type-safe header-only PostgreSQL client library for C ++ 17. Sergey Khandrikov, Yandex
“The library is built on the basis of Boost.Asio, thanks to which it provides support for all types of asynchrony from callbacks to corutin. The library communicates with PostgeSQL using libpq and a binary protocol, providing both asynchronous data reception and asynchronous request sending. OZO supports both Compile-time query designers, as well as the possibility of their run-time configuration. All query parameters are automatically serialized to a binary representation. The results of query execution are also automatically deserialized into both simple types and those adapted using Boost.Fusion and Boost.Hana structures. ”
12:00 - 12:30 - Registration
12:30 - 13:15 - Distributed transactions and time travel - Stas Kelvich, Postgres Professional
13:25 - 14:05 - PG Saga: dependent data changes in several services without two-phase commits and synchronous dependencies - Konstantin Evteev, Avito
14:05 - 14:35 - Break
14:35 - 15:20 - Logical replication and transaction isolation levels PostgreSQL - Mikhail Tyurin
15:20 - 16:10 - OZO - asynchronous type-safe header-only library PostgreSQL client for C ++ 17 - Sergey Khandrikov, Yandex
16:30 - ……. - Afterparty
How to get and where to look
Participation in the event is free, but you need to register . Please indicate your full name as in your passport and take documents with you, otherwise you will not be allowed into our office.
Address: Avito office, Lesnaya 7 .
A link to the live broadcast mitapa are looking to-day activities on YouTube-channel AvitoTech .