Anastasia Lubennikova

Tags:   postgresql    postgrespro    gsoc    education    russia   
Category:   Interviews   
Interviewed by: Andreas Scherbaum

PostgreSQL is the World’s most advanced Open Source Relational Database. The interview series “PostgreSQL Person of the Week” presents the people who make the project what it is today. Read all interviews here.

Please tell us about yourself, and where you are from.

Hi, I am Anastasia, and I live in Moscow, Russia. I am a core developer working at Postgres Professional and all my career so far was devoted to the PostgreSQL project. In my spare time I like reading science fiction, jogging on the embankments of the Moscow river and practicing yoga. Sometimes I sign up to do something that excites and scares me at the same time, and it usually turns out to be an amazing adventure.

Anastasia Lubennikova

Anastasia Lubennikova

How do you spend your free time? What are your hobbies?

I used to spend most of my free time travelling. I like walking around the streets of new cities, exploring museums, picking postcards. Another hobby of mine is I also enjoy playing quiz games with my friends. Recently I started painting in watercolor. It is a great way to distract myself after a busy day at the computer.

Any Social Media channels of yours we should be aware of?

Last book you read? Or a book you want to recommend to readers?

I would recommend reading the short stories by Ray Bradbury. The “Dandelion Wine” is my go-to-book when I need something uplifting.

Any favorite movie, or show?

My favourite is the “Come From Away” musical. I love everything about it and hope that one day I’ll see it live on Broadway.

What’s still on your bucket list?

I rarely plan things in advance, because I don’t want to limit myself. My most recent idea is visiting the Wild Cat Conservation Centre in Australia.

When did you start using PostgreSQL, and why?

Unlike many other people in the community, I didn’t start as a PostgreSQL user. I studied SQL with PostgreSQL as a part of my curriculum when I was a 3rd year student in 2013. I remember the talk by Bruce Momjian. He gave a lecture for students, about the PostgreSQL community. And I was like “Whoa, a global project with people from all over the world - sounds great!”. Later I participated in GSoC, which was a great opportunity to combine my coursework with something practically useful.

Do you remember which version of PostgreSQL you started with?

Yes. I started studying it with version 9.3. And my first patch “Index-only scan for GiST” was accepted to version 9.5. Since then I have been working with PostgreSQL as a core developer.

I have a bachelor’s degree in Applied Mathematics and Informatics from Moscow Engineering Physics Institute. Prior to university, I knew almost nothing about computer science prior to university, so I learned a lot of useful things there. I am very grateful to all my teachers. And also at university I met Alexander Korotkov, who was my academic advisor and invited me to join Postgres Professional, where I work now.

What other databases are you using? Which one is your favorite?

I occasionally study various databases to keep up with the latest design ideas in the field, but I don’t use them.

Together with my colleagues, I am currently working on upgrading the PostgresPro Enterprise product to version 13. As for the community version of PostgreSQL, I develop a set of patches to improve built-in partitioning. And also I co-maintain the pg_probackup tool for backups, recovery and database validation.

How do you contribute to PostgreSQL?

I contribute as a core developer and reviewer with focus on indexes and data storage. To be more precise, I developed the index-only scan and microvacuum for GiST; covering B-tree indexes. B-tree deduplication that became available starting from version 13, is also my contribution.

Any contributions to PostgreSQL which do not involve writing code?

I am always happy to introduce the project to new people and educate newcomers about Postgres. At the very beginning of my career I created a course of lectures “Hacking Postgres” (in Russian language) about architecture details and PostgreSQL code specifics. I once was a mentor for Google Summer of Code for PostgreSQL. Currently, I am a member of the Code of Conduct Committee and also this November I was a Commitfest Manager.

What is your favorite PostgreSQL extension?

My favourite one is pageinspect . It is a great tool to learn more about internals and diagnose data corruption issues.

What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?

For me, the most annoying thing about PostgreSQL is the pace of development. Sometimes it is really hard to stay enthusiastic in long-running discussions which only eventually end up in new features.

What is the feature you like most in the latest PostgreSQL version?

B-tree deduplication for unique indexes. I am just excited how Peter Georgehan expanded my work from a simple compression patch into the feature that helps to eliminate index bloat. Here is a recording of my talk about this feature at PgConfIndia 2020. I am sure that this feature will be useful for many PostgreSQL users.

Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?

I am waiting for an implementation of pluggable storage API. No matter what kind of storage will be implemented first, it will be a powerful and interesting feature.

Could you describe your PostgreSQL development toolbox?

I think the set of tools for core development is pretty standard. I use VSCode, SublimeText, gdb, clang, valgrind, perf and a bunch of custom scripts.

Which skills are a must have for a PostgreSQL developer/user?

Everyone who works with PostgreSQL should master reading the documentation. For developers, patience and curiosity are a must have skills. Attention to detail is also very important.

Do you use any git best practices, which makes working with PostgreSQL easier?

I usually work on several repositories and versions at a time, so I am just trying to keep it as simple as possible. Meaningful names of branches and detailed commit messages help a lot.

Which PostgreSQL conferences do you visit? Do you submit talks?

I’ve spoken at PGConf.EU , PGConf.Russia, PGCon , PGConf.US, PGConf.India and some others. I usually attend conferences as a speaker, so I submit talks whenever I want to go somewhere. Public speaking is not my favourite activity, but the opportunity to travel encourages me to overcome shyness.

Do you think Postgres has a high entry barrier?

I don’t think so, while it may depend on the background. When I started, I was not aware that it is something difficult. And I am doing my best to help other beginners to see things as “doable”.

What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?

Start with something that is really interesting to you, whether it is a cool new algorithm or the problem that you want to fix. Look for previous discussions in -hackers . There is a good chance someone already attempted to do this - you can join them, or at least learn from the past mistakes. If there is no previous discussion, start one before you implement any code. Otherwise you might end up rewriting your patch multiple times.

To learn more about the PostgreSQL internals for a start, I highly recommend this series of articles:

If you want to contribute to the community version, consider reviewing existing patches on commitfest.

Do you think PostgreSQL will be here for many years in the future?

I do. It is improving a lot year by year. And I think that whatever the future holds, the community will be there, developing the system to fit the users’ needs and be even better.

Are you reading the -hackers mailinglist? Any other list?

I am trying to look through the new things on interesting topics and follow several threads. I am also subscribed to -announce and read PostgreSQL Weekly News, which is great to keep up with the recent commits.

What other places do you hang out?

Almost none. Sometimes I read a russian pgsql group on Telegram.

Anything else you like to add?

Our community is full of amazing people. Thank you for this project and a chance to virtually meet them.