title

text

Alexey Fadeev
Alexey Fadeev Sibedge
: December
22 мин

Building plv8: from a binary archive to a compact Docker image

The plv8 extension is very underestimated, though it can help simplify development for a variety of tasks. It's been a year since we started using this extension in our projects. The main reason for its low popularity is the complexity of building. Moreover, building plv8 requires a lot of traffic and disc space for temporary files. That's why we decided to build plv8 and provide ready-made binaries freely to anyone interested, not just as an offering for our customers. First, we made the binaries available on GitHub. Then we created a Docker image for Postgres with pre-installed plv8 based on Debian. It looked too heavy to us, and we decided to check Alpine, however, building it for Alpine appeared to be more complicated than we expected. I'll explain what difficulties we faced and how we managed to overcome them. I will also list the tasks that can be solved with plv8 and provide advice on how to make the development process more convenient. I will also share the links to our Docker images for the latest Postgres 13 and Postgres 14 releases, that are compact and can be used for any types of tasks.

Слайды

Фадеев.pptx

Видео

Видео доступно участникам мероприятия, выполнившим вход в личный кабинет

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

  • Alexandra Kuznetsova
    Alexandra Kuznetsova Postgres Professional
    22 мин

    Mamonsu monitoring agent: a brief tutorial

    Mamonsu is an active monitoring agent for PostgresSQL based on Zabbix. We are actively developing the agent: there are new unique metrics and visualization capabilities. But in addition to metrics collecting mechanism, Mamonsu has other useful features. I am going to briefly describe these features also known as "Mamonsu tools", the agent's advantages and the installation process.

  • Anastasia Volkova
    Anastasia Volkova DBeaver
    22 мин

    Babelfish: PostgreSQL with SQL Server support

    Tasks for migrations from the classic commercial DBMSs to open-source solutions are still relevant nowadays. Tools used to migrate Oracle applications to PostgreSQL has already proved to be efficient. But what if you have SQL Server? We want to introduce you to Babelfish, a OSS solution based on PostgreSQL 13. Babelfish supports TDS network protocol, T-SQL language, and SQL extensions specific to SQL Server. However, it isn't that simple. In our talk, we'll cover the features ensuring compatibility with SQL Server, existing problems and ways to solve them. Bonus: we'll also share the story on how we added the Babelfish support in DBeaver using the JDBC driver from Microsoft.

  • Иван Чувашов
    Иван Чувашов ООО Calltouch
    22 мин

    How to restore corrupted PostgreSQL data on your hard disc?

    Every DBMS stores its data on a hard disc, so you may face a situation when your data on disc gets corrupted. This can happen due to a controller failure, logical or physical data corruption; there are also other reasons. If it is just the index file that gets corrupted, the index recreation command will enable you to restore data consistency in your DBMS. If a table file or a file of a system section gets corrupted, data restore is impossible. In this case, you need to invent workarounds. You can try to restore this data from backup files, copy it from the corrupted table, or find another way to solve this problem. In this talk, we'll tackle several cases of data corruption on disc and describe the options for restoring the data from the corrupted tables.

  • Vadim Yatsenko
    Vadim Yatsenko Tantor Lab
    45 мин

    Harmful advice on autovacuum you shouldn't ever follow

    PostgreSQL has a number of peculiarities that you need to take into account not only while maintaining your database but also when designing your database schema. Experienced PostgreSQL are well aware of vacuuming process. On the web one can find tons of materials covering its internals, configurations and monitoring. Many valuable talks about vacuum were given at numerous conferences. However, we still face the common wraparound problem when the maximum possible number of transactions (xid) is reached. It happens even on databases that are relatively small in size. In my presentation, I will share a customer case that looks interesting to me. A chain of mistakes made at different stages of the database's life cycle once caused a disaster. The database fully stopped for one week, we detected a wraparound and spotted corrupted blocks. Maintenance was problematical, and we spent sleepless nights in search of a solution. We managed to achieve a local win as we finally restored the database, but it's not the end of this story, which makes it even more interesting.