Use Logical Decoding to build your own application cache Thursday 10:30 Casablanca
LinkedIn: atanasovskiblagoj Facebook: Blagoj.Dex.Atanasovski Company website: sorsix.com
Hi, I’m Blagoj, a software engineer at Sorsix in Skopje. I’ve been working with PostgreSQL for a little bit over five years now, and have been using it for both operational and analytical use-cases. My interests include software architecture, concurrency and distributed systems.
I attended last years pgconf.eu in Warsaw and was amazed by the organization, the quality and the content of the talks, and the creative air around all the attendees. It was by far the best conference I’ve attended.
I will talk about how we created a configurable caching service that invalidates and updates it’s entries by using the Logical Decoding feature from PostgreSQL and some real world use cases that can benefit from something like this. One of our products at Sorsix is a nation wide integrated e-health enterprise system backed by PostgreSQL that handles over 50M transactions per day. Only a few queries in the system were responsible for a huge part of the DB load, but were crucial. We were constrained by how much we could change the system in one deployment and how fast we needed to change it. Finding all the places in multiple applications that comprise the system where specific entities were updated and introducing caching for those entities is a very risky operation, one missed update and the whole cache would become invalid. Instead by using logical decoding we get committed, consistent changes to the tables that we’re interested in, the cache can be (and was) developed independently, and integration can be done one point at a time, with a fallback existing to just execute the slow query to the database that we want to avoid.
I think my main target is developers, but anybody involved in the design of a software system will be interested.
Definitely JIT compiled statements, I watched a talk about the it at pgconf.eu 2017 it was in development, some initial results were available. I was amazed by the complete potential of the idea, but more so when it was announced that it was production ready and will be included in version 11.
Some of the talks I’ve already marked are: