Aerospike Meetup 2023-06-07

We are happy to announce that Adjust is hosting an Aerospike Meetup on June 7th, 2023, in the Berlin office. Please head over to the Meetup website for details. The event starts at 18:30, and we have two speakers: Belhassen Dahmen (Adjust, Platform Engineer): The importance of a high performance scalable databases in a throughput intensive environment (Slides) Behrad Babaee (Aerospike): Scaling Aerospike: Lessons for Data-Intensive Application Developers (Slides) Please note that the event has a limit of 40 participants, and you must register using the Meetup website....

Debugging a PostgreSQL backend in one click with WezTerm

Introduction PostgreSQL has a process-based architecture. A single running PostgreSQL instance contains several types of processes: a single postgres server process, a backend process per each client connection and various maintenance background processes. During the development of an extension it is often necessary to debug a backend process using gdb (or a different debugger). Along with debugging logs it helps to understand how to work with the extension API since it is often not clear and the PostgreSQL documentation might not be enough....

PostgreSQL Meetup 2023-05-11

We are happy to announce that Adjust is hosting a PostgreSQL Meetup on May 11th, 2023, in the Berlin office. Please head over to the Meetup website for details. The event starts at 19:00, and we have two speakers: Elena Grahovac from FerretDB, will talk about: “Building an open-source MongoDB-compatible database on top of PostgreSQL” (Slides) Divyendu Singh will talk about “PLV8ify - TypeScript to PostgreSQL Functions” (Slides) Please note that the event has a limit of 30 participants, and you must register using the Meetup website....

CephFS and max file size

The task at hand was easy. Platform Engineering (PE) wants to re-create the filesystem for a NVram drive which holds a database. The database itself is around 9TB, but the size is nothing unusual for us. Plus we have procedures to take this database out of production for a prolonged period. All good. Or so I thought. First confirm that the database is no longer in production. Confirmed. Shut it down....

Using Tablespaces in PostgreSQL

Tablespaces are a key component for disk space management in relational database management systems. They serve as containers for storing objects such as tables, indexes, views, sequences and other data structures. Tablespaces allow database administrators to better manage disk space by allowing fine-grained management of the storage space used by the database. In this blog post, we will explore what a tablespace is, how to create it, and how to use it....

The Affordances of Quality - Test Hive Germany Meetup in April 2023

We are happy to announce the next Test Hive Germany Meetup, which will take place on April 24th in our Berlin office. Test Hive is a QA Community with more than 3000 members from different cities around the world. We have been hosting meetups since 2015 in Istanbul, Manchester, Stuttgart and Dubai. Although it is a QA community, everything related to quality is discussed and all software engineering practices are a part of that....

Secrets management improvements with Ansible Vault

Ansible is a powerful automation tool that helps us manage infrastructure, services, and databases. However, managing sensitive data such as passwords, keys, and other secrets can be challenging. Ansible Vault is a feature that provides a way to encrypt and store sensitive information within Ansible playbooks and inventory files. Ansible Vault has two modes: full file encryption: the whole contents of the file is encrypted, the type of content doesn’t matter; value encryption: a string value in a yaml file is encrypted....

11TB WAL in PostgreSQL

On a lovely Saturday afternoon our NetOps team raised an alarm: the disk usage on a specific database server was growing fast, and with the current growth rate we have about 30 hours left until the disk is full. Currently climbing over 80%, which triggered the alarm in the first place. Not good. However nothing serious as of now, but better investigate now and not wait until Monday. Zabbix Graph: Space utilization The System This particular server has about 3....

Creating new PostgreSQL enum data types using pg_type_template

Introduction In Adjust we are creating new data types for PostgreSQL, in order to make handling of data easier for us, but also sometimes to save some space. Many of them are written using the C language. Here are some of the more important extensions for us: istore: it is an integer based hstore. In istore both keys and values are represented and stored as integers. pg-base36: a base36 extension, which implements a base36 binary-to-text encoding algorithm....

Rex to Ansible Migration: Evaluate current automation tool

Blog posts in this series Evaluation of our existing automation tool Evaluation of new automation tools (planned) Inventory migration (planned) Rex Module migration (planned) Rex Wrapper (planned) Testing (planned) Bring it into production (planned) Experiences (planned) Ansible Migration: Evaluation of our existing automation tool In Adjust we are (or maybe have been, by the time you are reading this blog posting) using Rex as an automation tool. It served us well, and we grew the company and the infrastructure based on it....