<?xml version='1.0' encoding='utf-8'?>
<schedule><version>Firefly</version><conference><title>PGConf.EU 2024</title><start>2024-10-22</start><end>2024-10-25</end><days>4</days><baseurl>https://www.postgresql.eu/events/pgconfeu2024/schedule/</baseurl></conference><day date="2024-10-22"><room name="Other"><event id="6019"><start>08:15</start><duration>00:45</duration><room>Other</room><title>Registration</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6019/</url><track>PGConf.EU</track><persons /></event></room><room name="Kozani"><event id="5684"><start>09:00</start><duration>08:00</duration><room>Kozani</room><title>Hands-on Introduction to PostgreSQL Operation</title><abstract>This practical tutorial will guide you through the complete process of PostgreSQL installation, providing you with the necessary skills to operate PostgreSQL in a realistic production environment.

We will begin by installing and configuring PostgreSQL on Linux. After the basic setup, we will perform tuning based on the resources of the VM and explore useful system views. Following this, we will set up pgBouncer and learn how to operate it. Next, we will configure backup and recovery infrastructure using pgBackRest and set up a physical replica. The final step will take you through a major upgrade process using the pg_upgrade tool.

This is a practical tutorial: each participant will receive a VM image for a comprehensive hands-on experience.

Audience:

* Database administrators who are new to PostgreSQL (both beginners and DBAs with experience in alternative databases)
* Developers interested in learning more about PostgreSQL administration

Prerequisites:

* Basic knowledge of the Linux command line
* A laptop capable of running 3 VMs 1-4GB RAM and 10-20GB disk space each.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5684/</url><track>Training</track><persons><person id="88">Ilya Kosmodemiansky</person></persons></event></room><room name="Edessa"><event id="5998"><start>09:00</start><duration>08:00</duration><room>Edessa</room><title>Mastering PostgreSQL in Kubernetes with CloudNativePG</title><abstract>Join us for an intensive one-day training session designed for professionals aiming to enhance
their expertise in managing PostgreSQL databases within Kubernetes environments using the
CloudNativePG operator. This session is led by two maintainers and founders of
CloudNativePG, among the leading Kubernetes and PostgreSQL space authorities, who work at
EDB. Participants will gain practical insights into overcoming the challenges of running stateful
workloads in Kubernetes and transforming these challenges into opportunities for robust
PostgreSQL deployments. The training covers a comprehensive range of topics, including
advanced deployment options, creating consistent and reusable local environments through
Infrastructure as Code (IaC), and mastering essential day-2 operations such as monitoring,
logging, continuous backup, Point-In-Time Recovery, scaling, switchover, and automated
failover. Engage in hands-on exercises and collaborate with peers to set up and manage
PostgreSQL clusters. This ensures you leave with the skills and confidence to optimise
PostgreSQL performance and reliability in Kubernetes.

#### Hardware requirements

Laptop: Sufficient RAM, CPU, and disk to run Kubernetes in Docker (Kind) and any operating
system that supports it.
Software: Students must come to the training session with the following software already
installed, running the latest available version at the time of training:

* Kind (please follow instructions at kind.sigs.k8s.io/docs/user/quick-start)
* Kubectl
* The cnpg plugin for Kubectl</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5998/</url><track>Training</track><persons><person id="4">Gabriele Bartolini</person><person id="660">Leonardo Cecchi</person></persons></event></room><room name="Naoussa"><event id="5690"><start>09:00</start><duration>03:30</duration><room>Naoussa</room><title>A beginner's guide to performance</title><abstract>When getting started with PostgreSQL and databases in general everybody is
concerned about performance. However, the question is: What are the most
important steps to speeding up your database and what are the pitfalls one will
face when trying to improve performance?

This half-day session will guide you through the fundamentals of PostgreSQL
database tuning and show you how to eliminate bottlenecks.

Knowledge and equipment requirement:

* Basic database experience
* a laptop with PostgreSQL installed</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5690/</url><track>Training</track><persons><person id="39">Hans-Jürgen Schönig</person></persons></event></room><room name="Pella"><event id="5755"><start>09:00</start><duration>03:30</duration><room>Pella</room><title>Logical replication - getting in and out of the cloud</title><abstract>Logical Replication in PostgreSQL is a tool that can be leveraged to encompass multiple critical data integration and movement scenarios, including moving all or a portion of your data in and out, from and to fully managed database services in the cloud like Azure Database for PostgreSQL. From creating an exact copy of your original data in a different environment to applying vertical and horizontal filtering and only copying the data you want.

But with Logical Replication you can also integrate with other non-database systems like message brokers and event stores, to enable real-time data streaming and even-based architectures.

In this session, we will cover all the most important solution patterns that you can implement using PostgreSQL Logical Replication, including high level tools like pgcopydb leveraging Logical Replication under the hood, or how to build custom applications that consume logical decoding and using existing OSS tools to build and monitor your distributed data workflow.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5755/</url><track>Training</track><persons><person id="359">Alexander Kukushkin</person><person id="1071">Silvano Coriani</person></persons></event></room><room name="Naoussa"><event id="5999"><start>13:30</start><duration>03:30</duration><room>Naoussa</room><title>Empowering AI Applications: Integrating Vector Databases with PostgreSQL</title><abstract>* Methodology: building up foundations through problem solving. The attendees will be
presented with a problem that can be solved by using a vector representation of a given
dataset with and without aidb extension, and then the usage of the different searching
strategies. A known example is to develop a recommendation engine where users can
do a search using text and image. We would use an equivalent challenge during the
training to make it concrete and not just theoretical.
* Vector Utilization: Unveil the critical role and diverse applications of vector data within
PostgreSQL.
* Performance Mastery: Benchmark aidb and pgvector’s performance, contrasting it with
competing solutions in the industry.

#### Hardware Requirements:
* Computer with internet access, web browser, and the possibility of accessing web pages with self-signed certificates.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5999/</url><track>Training</track><persons><person id="1179">Bilge Ince</person><person id="541">Boriss Mejias</person></persons></event></room><room name="Pella"><event id="5685"><start>13:30</start><duration>03:30</duration><room>Pella</room><title>Are you collecting the right metrics?</title><abstract>Of course, it is important to collect metrics on your database clusters. Often, it isn't easy to understand how best mandatory, important and optional metrics should be split apart and handled. Depending on PostgreSQL cluster architectures, sometimes metrics that are typically useless can become of high or even critical importance.

We will discuss available metrics at Linux, container and PostgreSQL levels and sort out the usage of these metrics. This will help in choosing what to monitor, and why, along with setting up alerting thresholds and workflows. We will additionally cover the modification of PostgreSQL resource allocations using default cgroups mechanism.

Attendees will gain:

Attendees will gain the knowledge of important metrics to collect to ensure critical events are never missed. At the end of the session, users will be able to understand and follow how their system behaves. This will be to optimize observability at the system level as well as at the application or project level.

### Technical requirements

No previous knowledge is required.

If you'd like to participate in the session, please bring your laptop to use as a playground with [PostgreSQL installed](https://www.postgresql.org/download/), or an ssh client like [OpenSSH](https://www.openssh.com) and/or [psql](https://www.timescale.com/blog/how-to-install-psql-on-mac-ubuntu-debian-windows/) already installed.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5685/</url><track>Training</track><persons><person id="652">Frederic Delacourt</person></persons></event></room></day><day date="2024-10-23"><room name="Other"><event id="6016"><start>08:30</start><duration>01:00</duration><room>Other</room><title>Registration</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6016/</url><track>PGConf.EU</track><persons /></event></room><room name="Olympia"><event id="6013"><start>09:30</start><duration>00:15</duration><room>Olympia</room><title>Welcome and Opening</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6013/</url><track>PGConf.EU</track><persons><person id="1">Magnus Hagander</person></persons></event><event id="5869"><start>09:50</start><duration>00:50</duration><room>Olympia</room><title>The PostgreSQL License Fee</title><abstract>PostgreSQL is free and open-source, so there is no license fee to pay. However, keeping the project successful requires the work of many people—engineers, website managers, event organizers, project administrators, and on and on. It takes a global community to support the project, and community participation is the license fee we pay to ensure the project's continuity. I'll give an overview of how the project is organized, which will also provide a myriad of ideas for becoming involved in ways that meet your interests and skills, and keep the project robust and resilient.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5869/</url><track>Keynotes</track><persons><person id="680">Stacey Haysler</person></persons></event></room><room name="Other"><event id="6003"><start>10:40</start><duration>00:30</duration><room>Other</room><title>Coffee Break</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6003/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5579"><start>11:10</start><duration>00:50</duration><room>Olympia</room><title>Leveraging AI as a PostgreSQL DBA</title><abstract>Artificial Intelligence (AI) is all the rage these days. You can find all sorts of information about how to build your own AI, consume your PostgreSQL data and more. However, what if you just want to get a little better at your job? Can AI do anything for those of us who are just trying to muddle through?

The short answer is, yes. The longer answer is what this session is all about. You can take advantage of what AI can do for you in simple tasks such as generating meaningful test data, simple query tuning and more. Come learn how you can put AI to work in your day-to-day tasks, making things just a little bit easier. You can use AI as a way to learn PostgreSQL better and as a way to get some tasks done faster and more accurately. AI is out there, so you may as well make use of it. Come to this session to learn how.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5579/</url><track>DBA</track><persons><person id="792">Grant Fritchey</person></persons></event></room><room name="Olympia B"><event id="5949"><start>11:10</start><duration>00:50</duration><room>Olympia B</room><title>Smooth Sailing: How We Tackled PostgreSQL Migration Challenges from CentOS to Ubuntu</title><abstract>With CentOS approaching its end of life, the migration of PostgreSQL servers to a more sustainable operating system has become a critical task. In this presentation, we will delve into the process of migrating all PostgreSQL servers from CentOS to Ubuntu as part of Azure Cosmos DB for PostgreSQL, focusing on the numerous challenges encountered and the strategies employed to overcome them.

Prior to the actual migration, extensive validations were conducted on several clones of each cluster, testing various scenarios to ensure a seamless transition. Minimizing downtime for customers was a top priority, along with optimizing PostgreSQL performance to achieve the best possible results during reindexing on Ubuntu.

This session will provide a brief overview of the migration preparation, explaining our validation approach, followed by an in-depth discussion of the specific problems faced during the migration process. Attendees will gain valuable insights into the practical solutions we implemented to address these challenges, ensuring a smooth transition for PostgreSQL instances from CentOS to Ubuntu on Azure Cosmos DB for PostgreSQL.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5949/</url><track>DBA</track><persons><person id="1172">Sena Güngör Tavukçuoğlu</person></persons></event></room><room name="Ilissos"><event id="5710"><start>11:10</start><duration>00:50</duration><room>Ilissos</room><title>High-concurrency distributed snapshots</title><abstract>PostgreSQL uses snapshots to determine which transaction can see which versions of updated rows, creating an abstraction of reading from an immutable database. This mechanism has been largely unmodified for almost 2 decades. In this talk I will do a deep dive into how snapshots work right now. What kinds of problems the current approach has, including problems with large concurrency, tracking sub-transactions, inconsistent commit order between primaries and replicas and phantom transactions with synchronous replication.

I will also outline a potential new hybrid design for snapshots that would solve or alleviate these issues and give an essential building block for making PostgreSQL a true distributed database.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5710/</url><track>Internals</track><persons><person id="868">Ants Aasma</person></persons></event></room><room name="Olympia"><event id="5933"><start>12:10</start><duration>00:50</duration><room>Olympia</room><title>connection_builder for PostgreSQL community</title><abstract>As PostgreSQL becomes the database of choice for an increasing number of businesses and organisations, its community is growing exponentially. 

At the same time, with this rise in popularity the expectations for the database’s performance and capabilities grow as well. 

To meet this increased demand, we need more hands on deck—more hackers, reviewers, and contributors. More importantly, we need stronger connections, collaboration, and exchange within the community.

Historically, the PostgreSQL community has been a relatively close-knit group with its own rules, communication styles, and a sense of familiarity among its members. This poses a challenge for those seeking to connect, discuss their ideas, receive support in the hacking process, and integrate within the community. 

In this session, I will share: 

- The key reasons for building a network within the PostgreSQL community and beyond. 
- Inspiring stories of newcomers who successfully built their connections. 
- Existing platforms and methods for connecting and seeking advice. 
- Practical ideas to start conversations at pgconf.eu, on mailing lists and in direct communication.

The session will include mild interactive elements designed to encourage you to rethink “networking” and to help you interact with people in the room, at the conference, within the broader PostgreSQL community and beyond.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5933/</url><track>Community</track><persons><person id="657">Valeria  Kaplan</person></persons></event></room><room name="Olympia B"><event id="5630"><start>12:10</start><duration>00:50</duration><room>Olympia B</room><title>UNDELETE data FROM table;</title><abstract>PostgreSQL is very good at keeping your data safe. But unfortunately, that also holds the other way round: something that has been deleted will stay deleted. In this talk, we look at practical options to UNdelete data from tables. Ingredients are backups, transaction IDs, pg_dirtyread and full page inserts. From the maintainer of pg_dirtyread.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5630/</url><track>DBA</track><persons><person id="82">Christoph Berg</person></persons></event></room><room name="Vergina"><event id="6028"><start>12:10</start><duration>00:50</duration><room>Vergina</room><title>Security attacks on PostgreSQL</title><abstract>This talk will examine how to cause damage to a PostgreSQL database by abusing insecure configuration or object definitions:
impair availability (denial of service)
gain access to the database
gain access to forbidden data
become superuser
You need to know the dangers if you want to protect your database!</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6028/</url><track>Sponsors</track><persons><person id="1186">Laurenz Albe</person></persons></event></room><room name="Ilissos"><event id="5839"><start>12:10</start><duration>00:50</duration><room>Ilissos</room><title>NUMA vs PostgreSQL</title><abstract>Most modern computers running  PostgreSQL have non-uniform memory access characteristics (NUMA). I.e., accessing some memory is faster than accessing other memory. All modern server CPUs, most desktop CPUs and even many laptop CPUs are NUMA, due to the use of chiplets.

While PostgreSQL has been optimized to work better on NUMA systems, so far we have done so by optimizing memory accesses and algorithms in a general way, rather than 

a) optimizing algorithms and data structures to take NUMA into account
b) specifying memory locality (i.e. interleaved or local) for regions of memory


In this talk I'll present the problem, show the results of some experimental patches to improve NUMA awareness and will speculate on 
what we should do in PostgreSQL.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5839/</url><track>Internals</track><persons><person id="140">Andres Freund</person></persons></event></room><room name="Other"><event id="6011"><start>13:00</start><duration>01:00</duration><room>Other</room><title>Lunch</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6011/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5916"><start>14:00</start><duration>00:50</duration><room>Olympia</room><title>Sparta’s Dual Kingship and PostgreSQL Active-Active</title><abstract>With the improvements in logical replication released in PostgreSQL 16, there is an increasing interest in active-active clusters in PostgreSQL. We have observed new blog posts and conference talks on the subject discussing possible architectural configurations. Many projects want to move from vertical to horizontal scalability, enticed by the benefits of scaling out. But the illusion of a transparent active-active cluster is broken when faced with the challenges of having multiple writable database nodes.

In classical Greek government systems, we find the example of Sparta, having a Dual Kingship system. The motivation of such a system with two masters was not to scale-out the government, but to prevent absolutism. Despite the different motivation, there are several lessons we can take from Sparta’s system in order to build an active-active PostgreSQL cluster. When is consensus needed? When can rulers take autonomous decisions? When do rulers need a third party to resolve conflict? In fact, the Spartan’s Dual Kingship systems was able to scale-out in times of war, using a technique that can be seen as sharding, which is also useful for databases in times of heavy workloads.

In this talk we will learn about the possibilities and challenges of a PostgreSQL cluster when multiple writable nodes collaborate to a common goal, and how we can apply lessons from classical Greek government systems.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5916/</url><track>App Developer</track><persons><person id="541">Boriss Mejias</person></persons></event></room><room name="Olympia B"><event id="5700"><start>14:00</start><duration>00:50</duration><room>Olympia B</room><title>Discovering Postgres: A Journey into the #1 Open Source Relational Database</title><abstract>PostgreSQL is a robust relational database management system that's been under active development for 35+ years. What makes it tick? 

In this talk, I'll share my journey of how I discovered Postgres and began working with it from the first time. 

Join me as we discuss:
What makes PostgreSQL so successful?
What can be improved?
What are the different ways you can contribute to the community?</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5700/</url><track>Community</track><persons><person id="1123">Emma Saroyan</person></persons></event></room><room name="Vergina"><event id="6046"><start>14:00</start><duration>00:50</duration><room>Vergina</room><title>What does it take to onboard an extension?</title><abstract>Extensions are the powerups of the PostgreSQL database, they can add new datatypes, indexing methods and even turn a single PostgreSQL instance into a horizontal distributed system. At the same time, some extensions may be incompatible, can introduce risks to the stability of the database, integrity of data it holds and the overall security of your deployment. We will go over these concepts and you will learn how we approach reviewing both our extensions and open-source extensions before onboarding them to the Azure cloud service . You will be able to apply a similar process to your local and cloud environments.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6046/</url><track>Sponsors</track><persons><person id="1199">Adam Wolk &amp; Nacho Alonso Portillo</person></persons></event></room><room name="Ilissos"><event id="5935"><start>14:00</start><duration>00:50</duration><room>Ilissos</room><title>Practical Memory Tuning for PostgreSQL</title><abstract>This talk will first introduce the different ways PostgreSQL can use memory, from the operating system, to cluster wide and then into per session and per operation. From there we will dive into specifics around different PostgreSQL parameters like shared_buffers, work_mem, maintenance_work_mem and how to set them depending on your workload. The presentation will also cover some of the lesser known ways that PostgreSQL will consume memory, how you can diagnose what is using the memory in your PostgreSQL cluster and possible ways to avoid running out of memory. Additionally the talk we will cover the importance of hugepages for not only performance but memory usage on large memory systems as well some of the changes to memory settings in the latest versions.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5935/</url><track>DBA</track><persons><person id="232">Grant McAlister</person></persons></event></room><room name="Olympia"><event id="5750"><start>15:00</start><duration>00:50</duration><room>Olympia</room><title>My Journey in PostgreSQL bug fixing</title><abstract>Reporting a bug with a repro and patch for a fix can be tricky and the first attempt at a patch does not need to be perfect!  

In this session, I will share my experience into a few bug fixes and deep-dive into how a repro was created, the initial attempt at a fix and the final committed patch.  

If you are interested in starting your own journey in contributing to PostgreSQL this session is for you!</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5750/</url><track>Internals</track><persons><person id="1091">Bertrand Drouvot</person></persons></event></room><room name="Olympia B"><event id="5925"><start>15:00</start><duration>00:50</duration><room>Olympia B</room><title>Growing the PostgreSQL Community: My experience organising local events in different geographies</title><abstract>In this talk, I’ll share my journey of organizing PostgreSQL events and meetups in various places such as Australia and Spain. Since I first got into the PostgreSQL world in 2013, I’ve seen its popularity skyrocket.

I’ll talk about how community events have helped spread the word about PostgreSQL and why they’re so important for the growth and health of the PostgreSQL ecosystem. I’ll share some tips on running successful community events and, more importantly, why they’re worth the effort.

I’ll also explain why it’s crucial for companies, even competitors, to work together to organise these events. By collaborating, we can grow PostgreSQL’s market share in the database industry, which benefits everyone.

Lastly, I’ll discuss how the energy and contributions from the community help ensure PostgreSQL stays strong and keeps improving. This talk will give a perspective on why building PostgreSQL’s popularity matters and how community events play a big part in that.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5925/</url><track>Community</track><persons><person id="1169">Andrea Cucciniello</person></persons></event></room><room name="Vergina"><event id="6038"><start>15:00</start><duration>00:50</duration><room>Vergina</room><title>Crunchy Postgres for Kubernetes: Your Virtual DBA</title><abstract>In organisations where everything’s running on Kubernetes, the PostgreSQL databases are often seen as just another part of the landscape. The platform engineers or systems administrators find themselves charged with “looking after the databases” even if they don’t have database expertise.
Fortunately, if you find yourself in this situation, there’s no need to panic!
Crunchy Postgres for Kubernetes (CPK) can act as your virtual DBA, automating everything from deployment of a high availability database environment, to backup &amp; recovery, monitoring, and even PostgreSQL major version upgrades.
CPK is created and maintained by PostgreSQL experts, and is based on PGO, the Postgres Operator for Kubernetes from Crunchy Data. The Operator knows how to do database administration tasks, and also how the various database components interact with Kubernetes, so it can get the most out of the platform.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6038/</url><track>Sponsors</track><persons><person id="1196">Karen Jex</person></persons></event></room><room name="Ilissos"><event id="5892"><start>15:00</start><duration>00:50</duration><room>Ilissos</room><title>Patroni Deployment Patterns</title><abstract>Over the last years, Patroni has emerged as one of the most popular and successful High-Availability (HA) solutions for PostgreSQL. It solves the split-brain and leader-election problems by using a RAFT-based distributed consensus store (DCS) like etcd that keeps important cluster information. A REST API allows for convenient management of the Postgres nodes and their configuration. However, Patroni is but a template for PostgreSQL HA; it can be deployed in a wide variety of ways and configurations.

This talk will present a brief overview of Patroni and then discuss various deployment patterns (and possible issues with them) that we encountered while working with customers to implement PostgreSQL HA. In particular, it will discuss the following: synchronous standbys and/or read replicas, standby clusters for multi-region/availability zone replication, client fail-over possibilities and issues/solutions with DCS problems interfering with Patroni.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5892/</url><track>DBA</track><persons><person id="301">Michael Banck</person></persons></event></room><room name="Other"><event id="6006"><start>15:50</start><duration>00:30</duration><room>Other</room><title>Tea Break</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6006/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5898"><start>16:20</start><duration>00:50</duration><room>Olympia</room><title>Untangling the Web of PostgreSQL Permissions</title><abstract>Users, roles, and permissions in PostgreSQL - it sounds like a snoozefest, right? Wrong. This dull topic is a minefield of disasters waiting to happen. One wrong GRANT and suddenly your intern has DROP privileges on your production database. Oops.

In this talk, we'll navigate the treacherous waters of PostgreSQL's security model. We'll start with the basics - what's the difference between a user and a role anyway? (Spoiler: nothing, but don't tell anyone I told you that.) Then we'll dive into the nitty-gritty of permissions, from the obvious (SELECT, INSERT) to the obscure (TRUNCATE, anyone?).

But wait, there's more! We'll explore the dark art of role inheritance, where permissions spread like a virus through your database. You'll learn how to create a permissions structure that anyone can understand. You'll also learn to audit your setup without going insane.

By the end of this session, you'll have the tools to secure your PostgreSQL instance well. It will be tighter than Fort Knox. At least, it will be tight enough that your CEO can't accidentally delete the entire customer table. Whether you're a newbie or a seasoned DBA, you'll walk away with practical tips to make your database security less of a headache and more of a... well, slightly smaller headache.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5898/</url><track>DBA</track><persons><person id="387">Lætitia AVROT</person></persons></event></room><room name="Olympia B"><event id="5599"><start>16:20</start><duration>00:50</duration><room>Olympia B</room><title>Using Postgres to locate the best coffee near you!</title><abstract>Discover how combining PostgreSQL with PostGIS and vector data brings natural language queries to life, allowing you to ask, "Where's the nearest coffee shop?" and get precise results. In this session, we will first explain what vector data is and how it enhances the capabilities of PostgreSQL for handling geographical information. We'll then explore how to effectively integrate PostGIS with vector data to support natural language processing directly in your database.

We will walk through setting up your PostgreSQL database to handle these types of queries, demonstrate the process of storing geographical data, and show how to create queries that understand and respond to natural language inputs. I'll also share a practical example: using this technology to find the best coffee locations nearby. This talk will equip you with the knowledge to implement similar features in your own GIS applications, making them more intuitive and user-friendly.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5599/</url><track>App Developer</track><persons><person id="1100">Varun Dhawan</person></persons></event></room><room name="Vergina"><event id="6058"><start>16:20</start><duration>00:50</duration><room>Vergina</room><title>Transitioning to PostgreSQL: A Flexible Pathway for Compatibility</title><abstract>Migrating from legacy databases like Microsoft SQL Server and Oracle to PostgreSQL can be long and challenging. At Data Bene, our internal project Polyphase simplifies this transition by using open-source tools like Babelfish (for SQL Server) and IvorySQL (for Oracle). These tools create a compatibility layer that allows applications to run on PostgreSQL without a complete migration. While Babelfish and IvorySQL currently function like "patches" on PostgreSQL, we are advocating for them to become fully integrated extensions to streamline the process further. Our solution analyses queries, provides feedback on compatibility with PostgreSQL, and offers real-time insights for developers. Join our presentation to learn how we can accelerate your journey to PostgreSQL.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6058/</url><track>Sponsors</track><persons><person id="1208">Cédric Villemain &amp; Andrea Cucciniello</person></persons></event></room><room name="Ilissos"><event id="5540"><start>16:20</start><duration>00:50</duration><room>Ilissos</room><title>Fearless Extension Development With Rust and PGRX</title><abstract>I’ve been working with Postgres since 2010, and over the years there have been many times when I’ve hit functionality or performance barriers and wanted to extend PostgreSQL to do new things.

This presented a problem for me: I knew I needed to use C, but as someone who didn’t have years of professional experience writing code for production this felt error-prone and daunting.

Enter PGRX, which allows users to create extensions which interface with the PostgreSQL C API from Rust. It’s safe, fast and easy; giving all the benefits of a modern language and developer experience while helping to protect your database from the horrors of undefined behavior.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5540/</url><track>Internals</track><persons><person id="803">James Blackwood-Sewell</person></persons></event></room><room name="Olympia"><event id="5654"><start>17:20</start><duration>00:50</duration><room>Olympia</room><title>Fun with Postgres High Availability Poker</title><abstract>Understanding all the details of a High Availability PostgreSQL clusters is one of the most critical DBA knowledge area's. 

Instead of boring you with endless numbers of slides, with volunteer assistance from the audience, we will show you all important concepts like WAL transport, synch/async commit, RTO, RPO, network involvement etc with nothing more than a few decks of playing cards and some funny hats.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5654/</url><track>Community</track><persons><person id="797">Dave Pitts</person><person id="859">Derk van Veen</person></persons></event></room><room name="Olympia B"><event id="5846"><start>17:20</start><duration>00:50</duration><room>Olympia B</room><title>Comparing Connection Poolers for PostgreSQL</title><abstract>There is a growing number of connection poolers for PostgreSQL available, and there are few comparisons of their features and performance.

In addition to the tried and true options of pgpool-II (released 2006) and pgbouncer (2007), there are new contenders: odyssey (2019), pgagroal (2019), pgcat (2022), and supavisor (2023).
The talk will compare at least four of the mentioned connection poolers.

Join me for an exploration of connection poolers for PostgreSQL:
- basics of connection pooling
- challenges of operating connection poolers
- introduction and feature comparison of different poolers
- performance evaluation of different poolers
- general guidance on when and how to implement connection poolers</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5846/</url><track>DBA</track><persons><person id="599">Julian Markwort</person></persons></event></room><room name="Vergina"><event id="6050"><start>17:20</start><duration>00:50</duration><room>Vergina</room><title>Integrating AI with Postgres: Opportunities, Challenges, and Future Possibilities</title><abstract>In this session, EDB Machine Learning Engineer Bilge Ince will explore the seamless integration of AI within PostgreSQL. Discover how AI-driven enhancements like the aidb extension and pgvector transform Postgres from a traditional database into an intelligent system. This talk will provide practical insights for leveraging AI within your data infrastructure using Postgres. Plus, you’ll gain a deeper understanding of the role of LLMs and their interaction with vector data in Postgres. As AI continues to unlock new possibilities with Postgres, this talk offers a preview of future opportunities for integrating AI with the world’s most powerful database technology.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6050/</url><track>Sponsors</track><persons><person id="1203">Bilge Ince</person></persons></event></room><room name="Ilissos"><event id="5720"><start>17:20</start><duration>00:50</duration><room>Ilissos</room><title>Streaming I/O and vectored I/O</title><abstract>Traditionally, PostgreSQL did all relation I/O as sequential 8KB pread() or pwrite() system calls. This talk is about a new "streaming" programming model that allows multiple blocks to be read or written at the same time, and eventually in the background ahead of time.

We will talk about several things that cover new features in PostgreSQL 17 and ongoing work in PostgreSQL 18:

 * overview of system file I/O interfaces
 * storage manager changes for multi-buffer operations
 * buffer manager changes for multi-buffer operations
 * the stream abstraction
 * "synchronous" streaming I/O
 * partial steps to asynchronous I/O
 * use cases (heap/index scans, vacuum, recovery, ...)

We will also talk more briefly about some aspects of the next stages of the larger AIO project:

 * overview of kernel buffering, pros, cons and motivations for escaping from it
 * why asynchronous I/O and direct I/O go together
 * a peek at WIP asynchronous I/O system
 * asynchronous streaming I/O</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5720/</url><track>Internals</track><persons><person id="988">Nazir Bilal Yavuz</person><person id="574">Thomas Munro</person></persons></event></room><room name="Macedonia Level"><event id="6022"><start>18:15</start><duration>02:45</duration><room>Macedonia Level</room><title>PostgreSQL Europe Reception</title><abstract>As with previous PGConf.EU events, the 2024 conference in Athens will have a social event.

Following the success of last year's event, we’re again making this year’s social easy for all to attend: just join us in the common area at the conclusion of the conference on Wednesday, October 23, for snacks, refreshments and activities. We look forward to seeing you and celebrating what we know will be a great conference!</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6022/</url><track>PGConf.EU</track><persons /></event></room></day><day date="2024-10-24"><room name="Other"><event id="6017"><start>09:00</start><duration>00:30</duration><room>Other</room><title>Registration</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6017/</url><track>PGConf.EU</track><persons /></event></room><room name="Olympia"><event id="5797"><start>09:30</start><duration>00:50</duration><room>Olympia</room><title>An ultimate guide to upgrading your PostgreSQL installation</title><abstract>Even an experienced PostgreSQL DBA can not always say that upgrading
between major versions of Postgres is an easy task, especially if
there are some special requirements, such as downtime limitations or
if something goes wrong. For less experienced DBAs anything more
complex than dump/restore can be frustrating.

In this talk I will describe why we need a special procedure to
upgrade between major versions, how that can be achieved and what sort
of problems can occur. I will review all possible ways to upgrade your
cluster from classical pg_upgrade to old-school slony or modern
methods like logical replication. For all approaches, I will give a
brief explanation how it works (limited by the scope of this talk of
course), examples how to perform upgrade and some advice on
potentially problematic steps. Besides I will touch upon such topics
as integration of upgrade tools and procedures with other software —
connection brokers, operating system package managers, automation
tools, etc. This talk would not be complete if I do not cover cases
when something goes wrong and how to deal with such cases.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5797/</url><track>DBA</track><persons><person id="88">Ilya Kosmodemiansky</person></persons></event></room><room name="Olympia B"><event id="5677"><start>09:30</start><duration>00:50</duration><room>Olympia B</room><title>Exploring Postgres Databases with Graphs</title><abstract>Diagrams are powerful tools for thought and communication, and databases are full of interesting graphs that translate into useful visual representations. Database documentation, however, ordinarily has room for only one: the entity-relationship diagram or ERD, a birds-eye view of foreign key links between tables. ERDs exemplify a number of problems with documentation more generally, and without sustained effort inevitably fall into disuse and decay.

But documentation is a means, not an end. By putting a few tools together on top of Postgres, we can achieve many of the same goals through visual exploration of the graphs extant within a running database instead of reference to static resources.

We'll discuss:

- how exploration can serve learning and reference needs better than external documentation;
- why less is more in building mental models of a system;
- and where the other useful graphs are hiding, from trigger cascades to role inheritance and beyond!</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5677/</url><track>App Developer</track><persons><person id="939">Dian Fay</person></persons></event></room><room name="Vergina"><event id="6032"><start>09:30</start><duration>00:50</duration><room>Vergina</room><title>Get started with Tembo AI: build GenAI apps on Postgres</title><abstract>The Tembo AI platform is designed specifically to provide engineering teams with a convenient way to build with artificial intelligence and PostgreSQL.

Tembo AI is a comprehensive solution that integrates both chat and embedding models into your PostgreSQL environment, enabling a seamless and powerful experience for building GenAI applications. Restrictions around with what services you can share data? With Tembo Self Hosted you can get embedding and chat models built into your solution, so that data never has to leave your infrastructure.

Join us for a demo and find out how we plan to further power your AI use cases without the need for you to piece it all together yourself.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6032/</url><track>Sponsors</track><persons><person id="1190">Adam Hendel</person></persons></event></room><room name="Ilissos"><event id="5689"><start>09:30</start><duration>00:50</duration><room>Ilissos</room><title>Debugging active queries with mid-flight instrumented explain plans</title><abstract>Have you ever wondered what an active query is doing under the hood? Instrumented explain plans obtained with EXPLAIN ANALYZE are very powerful when investigating bottlenecks in a query, with one small limitation: a query needs to finish in order for the plan with statistics to become visible.

I recently wrote a patch for the already existing in-progress patch "Logging plan of the running query" to also log instrumentation details collected up until the time the plan was logged. This includes rows collected and time spent so far in each plan node.

In this talk I will present an extended/experimental version of that patch where active queries with an enabled flag print the instrumented execution plan to a catalog table in a regular interval and demonstrate how this can help troubleshoot queries that never finish.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5689/</url><track>Internals</track><persons><person id="1110">Rafael Thofehrn Castro</person></persons></event></room><room name="Olympia"><event id="5830"><start>10:30</start><duration>00:50</duration><room>Olympia</room><title>Dissimilarity search: implementing in-memory vector search algorithms to PostgreSQL</title><abstract>Searching over vector spaces is a well-studied concept in mathematics and computer science, but the problem space has new meaning with the rise of AI/ML systems, particularly generative AI, that output very large vectors. Prior to generative AI, we predominately saw vector search in databases through geospatial, full-text, and bioinformatic/cheminformatic searches, all of which are supported in PostgreSQL either natively or through extensions. However, each of these domains have specific requirements that avoided some of the challenge we've seen searching over vectors from AI/ML systems, including using small (3/4-dim) vectors, using vectors as a filter instead of finding order (where "K-nearest neighbor" (K=NN) requires ordering), or allowing for high latency searches.

Modern approximate nearest neighbor search (ANN) has evolved over the past 25 years, and has produced a variety of algorithms that propose efficient search methods over vector spaces that can return related results with a high degree of relevancy (measured as "recall"). Some of these algorithms include IVF ("inverted file"), HNSW ("hierarchical navigable small worlds"), LSH ("locality-sensitive hashing"), and others. However, most ANN algorithmic design focuses on the efficiency of how the index behaves in memory -- some of these performance and search relevancy benefits may not carry over to databases due to considerations like on-disk layout, ongoing updates, available system memory, and resource constraints due to other workloads on the same system.

In this talk, we'll take a deep look at a variety of ANN algorithms that can be implemented in PostgreSQL, and what considerations we need to make to ensure they're implemented efficiently. We'll explore the pgvector implementations of the IVFFlat and HNSW algorithms and design decisions that allow for efficient indexing and search relevancy while achieving a higher level of recall, including index data structures, organization of data pages, effective update management, and query costing. We'll also explore PostgreSQL-specific details that impact these implementations, including lock management, background workers for index build parallelism, leveraging expressions to extend index implementations, and more. We'll also explain the tradeoffs between in-memory and on-disk representations of a variety of ANN algorithms.

At the end of this talk, you'll understand the considerations you need to make when implementing an ANN search algorithm for PostgreSQL, which can also be extended to other databases systems.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5830/</url><track>Internals</track><persons><person id="6">Jonathan S. Katz</person></persons></event></room><room name="Olympia B"><event id="5871"><start>10:30</start><duration>00:50</duration><room>Olympia B</room><title>Postgres schema migrations using the expand/contract pattern</title><abstract>Learn how to do Postgres schema migrations without breaking dependent applications by leveraging the expand/contract pattern.

pgroll is a new open-source migration tool for Postgres that keeps multiple versions of a schema live during a migration, helping you roll out database schema changes without downtime.

Database schema migrations often pose significant challenges to developers, particularly when striving for zero downtime migrations.

There are many things that can go wrong:

* Schema changes breaking client applications
* Unexpected table locking causing downtime
* Human mistakes causing data loss

This talk presents a new approach to schema migrations using an 'expand/contract' pattern where multiple versions of a database schema are maintained during the migration, allowing old and new versions of client applications to run side-by-side during an application rollout. Each version of the application sees the version of the database schema with which it is designed to work.

The talks covers the ideas behind this approach, and the challenges to be overcome such as:

* Limitations of existing tools and techniques for Postgres schema migrations.
* The use of Postgres views to present multiple versions of an underlying table.
* Backfilling data between old and new schema versions.
* Techniques to avoid unexpected table locking during migrations.
* Finally we introduce pgroll, an open-source tool that puts these ideas into practice and we show how it can be used to facilitate safe application rollouts across database schema changes.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5871/</url><track>App Developer</track><persons><person id="1034">Andrew Farries</person></persons></event></room><room name="Ilissos"><event id="5768"><start>10:30</start><duration>00:50</duration><room>Ilissos</room><title>Mastering PostgreSQL Partitioning: Supercharge Performance and Simplify Maintenance</title><abstract>As your database grows, the performance and maintenance of large tables can become challenging. Fear not! PostgreSQL has the right tool for the job: declarative table partitioning. In this talk, I will explore the benefits of partitioning in PostgreSQL, including improved performance and simplified maintenance.

After introducing the benefits of table partitioning, I’ll discuss the different types of partitioning available in PostgreSQL, such as range, list, and hash partitioning, and highlight common use cases and trade-offs. 

With practical examples, I’ll demonstrate how to implement declarative partitioning in PostgreSQL while maintaining transparency to the application. We will also discuss some key considerations and best practices when designing the schema for partitioning.

I’ll finish with a look at popular PostgreSQL extensions like TimescaleDB and Citus for similar workloads.

By the end of this session, you will be able to create partitioned tables in PostgreSQL that improve the performance and maintenance of your application, allowing you to scale with more control than ever before.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5768/</url><track>DBA</track><persons><person id="810">Ryan Booz</person></persons></event></room><room name="Other"><event id="6004"><start>11:20</start><duration>00:30</duration><room>Other</room><title>Coffee Break</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6004/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5747"><start>11:50</start><duration>00:50</duration><room>Olympia</room><title>A Deep Dive into Postgres Statistics</title><abstract>You may have heard that Postgres keeps statistics on your data to help choose a query plan. But have you ever wondered how Postgres decides which statistics to keep, or the exact influence those statistics have on a query plan? Did you know that your favorite database stores different types of statistics that can be used in the query plan? 

You may know that you can CREATE STATISTICS to manually tell Postgres what to do, but it's not always obvious when you should do that instead of relying on the defaults. It can be even trickier when working with a client's database where the relationship between tables and columns aren't immediately obvious.

What I want you to learn today is exactly that: how can you know if Postgres is keeping the correct statistics when you don't necessarily know the data. The best way to answer all of these questions is by looking directly at Postgres source code. By looking at the source of truth itself, we can really understand exactly what is going on under the hood. We'll learn about soft dependencies, most common values list, and a lot of other fun "math" stuff.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5747/</url><track>Internals</track><persons><person id="442">Louise Grandjonc</person></persons></event></room><room name="Olympia B"><event id="5647"><start>11:50</start><duration>00:50</duration><room>Olympia B</room><title>GSoC 2024: Enhancing Data Insights for Postgres with Remote Sinks</title><abstract>This talk focuses on methods and technology for using measurements acquired from various PostgreSQL monitoring tools. Succeeding pgwatch2, pgwatch3 is packed with a number of new and exciting features. One such feature is the implementation of Remote Sinks in GSoC '24, which allows users to use their database measurements across varying storage formats and processing units. Sinks can be understood as separate units where you can not only store your measurements but also run various processes on them to derive essential insights.

The goal of this talk is to introduce the audience to how having a 'remote sink setup' can help improve the way we use PostgreSQL and how we can extend this functionality to create advanced sink implementations according to our requirements.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5647/</url><track>Community</track><persons><person id="976">Akshat Jaimini</person><person id="72">Pavlo Golub</person></persons></event></room><room name="Vergina"><event id="6056"><start>11:50</start><duration>00:50</duration><room>Vergina</room><title>Postgres: From Cloud to Hybrid and On-Prem Again</title><abstract>The rise of operators like CloudNativePG is transforming Postgres deployments in Kubernetes, providing flexibility for running databases across VMs or bare metal, with dedicated storage for high-performance needs. This open source stack—combining Kubernetes, Postgres, and CloudNativePG—also aligns with the European Union's Data Act, which requires service providers to guarantee data portability and facilitate switching between vendors. 

EDB Technical Fellow and Advisor Dr. Marc Linster, Ph.D. will join Gabriele on stage for this talk to explore how organizations are evolving the way they run Postgres databases in Kubernetes—leveraging CloudNativePG, the open source and openly governed operator founded by EDB. We will also highlight the opportunities this shift presents for PostgreSQL DBAs to participate in this evolutionary change and retain full control of their data again, including on-premises.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6056/</url><track>Sponsors</track><persons><person id="1206">Gabriele Bartolini</person></persons></event></room><room name="Ilissos"><event id="5554"><start>11:50</start><duration>00:50</duration><room>Ilissos</room><title>PostgreSQL Security: From Attack Simulation to Defense</title><abstract>In today's digital age, understanding the potential threats to your PostgreSQL database and how to counteract them is crucial. This talk, 'PostgreSQL Security: From Attack Simulation to Defense', offers a comprehensive exploration of key external threats that PostgreSQL databases face.

We will start by examining real-world attack simulations to highlight the vulnerability of databases to various security threats. These examples will provide a concrete understanding of how these threats operate and the risks they pose to your PostgreSQL database.

However, identifying threats is only half the battle. The primary focus of this presentation is not just to expose the threats but to equip you with effective defense strategies. For each threat discussed, we will provide a summary of conclusions and recommendations to help you understand how to best protect your PostgreSQL database. These countermeasures are designed based on best practices and are aimed at enhancing your database's resilience to these threats.

Whether you're a database administrator, a developer, or an IT professional concerned about PostgreSQL security, this session is designed to give you practical, applicable knowledge to secure your databases. Come join us as we delve into the world of PostgreSQL threats and defenses.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5554/</url><track>DBA</track><persons><person id="604">Taras Kloba</person></persons></event></room><room name="Other"><event id="6009"><start>12:40</start><duration>01:00</duration><room>Other</room><title>Lunch</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6009/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5870"><start>13:40</start><duration>00:50</duration><room>Olympia</room><title>PostgreSQL Observed—and Explained</title><abstract>To quote the baseball player Yogi Berra, "You can observe a lot just by watching." 
In this session, Stacey Haysler (not an engineer) will offer PostgreSQL tips learned from watching the email lists and attending conference sessions. Karen Jex (definitely an engineer) will then explain the technical reasons for the recommendations. This talk will provide helpful guidance for new users of Postgres, and useful reminders for more experienced users.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5870/</url><track>DBA</track><persons><person id="667">Karen Jex</person><person id="680">Stacey Haysler</person></persons></event></room><room name="Olympia B"><event id="5819"><start>13:40</start><duration>00:50</duration><room>Olympia B</room><title>Finding and fixing a data-corruption bug with the help of the community</title><abstract>We started rolling out PostgreSQL 16 earlier this year when we suddenly saw a very small percentage (0.15%) of services alerting on data-corruption. Luckily, we traced the corruption to a faulty FSM (free space map), which is easily fixable without too much downtime. This talk describes how we could leverage the help of the community in finding, mitigating and then fixing the bug.

We will do a deep dive on how PG writes data to disk and what we did to fix the issue in the end. We will also learn on how to fix these specific issues without downtime or VACUUM FULL with a new function we proposed to expose in pg_freespacemap.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5819/</url><track>Community</track><persons><person id="968">Patrick Stählin</person></persons></event></room><room name="Vergina"><event id="6035"><start>13:40</start><duration>00:50</duration><room>Vergina</room><title>Porting on-prem performance troubleshooting skills to the cloud</title><abstract>In this session we aim to equip attendees with practical knowledge and tools to monitor, troubleshoot, and analyze performance bottlenecks effectively.  In addition to Postgres native tools, you will augment your knowledge with cloud specific performance tools. We will share best practices for optimizing queries, managing indexes, and tuning configuration parameters for both Azure and open-source PostgreSQL. We will also cover performance considerations in moving to the cloud. Whether you’re a database administrator, a developer, or just someone interested in PostgreSQL performance, this session has something for you.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6035/</url><track>Sponsors</track><persons><person id="1193">Denzil Ribeiro</person></persons></event></room><room name="Ilissos"><event id="5897"><start>13:40</start><duration>00:50</duration><room>Ilissos</room><title>The Wire Protocol</title><abstract>The current PostgreSQL wire protocol was introduced in version 7.3, in 2002. A lot of new features have been added since to the backend since, but the protocol has stayed largely unchanged. Aside from PostgreSQL itself, a lot of client libraries and middleware have been written that speak the protocol, and even other DBMS implementations who wish to be wire-compatible with PostgreSQL clients.

This is a tour of the protocol starting from the basics of authentication and running queries, to the COPY protocol, replication features and envisioned future development.

Topics to cover:
- Authentication, encryption and protocol feature negotiation
- Queries, prepared statements and portals
- Pipelining, error handling
- COPY mode
- Physical and logical replication modes
- Protocol extensions and versioning</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5897/</url><track>Internals</track><persons><person id="11">Heikki Linnakangas</person></persons></event></room><room name="Olympia"><event id="5584"><start>14:40</start><duration>00:50</duration><room>Olympia</room><title>Demystifying Kubernetes for Postgres DBAs: A Guide to Operators</title><abstract>This technical presentation, featuring live demos, aims to demystify Kubernetes and provide Postgres professionals with essential knowledge about Kubernetes Operators. Attendees will learn how day-to-day life might change for a DBA when shifting from self-managed Postgres to using a Postgres operator. The focus will be on general Kubernetes and Postgres concepts, with examples from multiple operators and demos from the open source CoudNativePG operator, but avoids favoring any specific operator. This talk will cover: 

Introduction to Kubernetes components and operators.
Differences between stateless and stateful Kubernetes deployments.
Extending the Kubernetes API with Postgres logic.
Ensuring high availability and understanding Kubernetes state management.
Transforming the DBA role with a Kubernetes operator.
Managing Postgres clusters: installation, configuration, and upgrades.
Database security best practices.
Storage and capacity planning: network vs. local storage.
Performance monitoring and tuning.
Troubleshooting Postgres performance.
Effective backup and recovery strategies.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5584/</url><track>DBA</track><persons><person id="865">Adam Wright</person></persons></event></room><room name="Olympia B"><event id="5954"><start>14:40</start><duration>00:50</duration><room>Olympia B</room><title>Supporting a New PostgreSQL Version in Your Extension - A Citus Case Study</title><abstract>In this talk, we will explore strategies for supporting a new PostgreSQL major version in PG extensions, using Citus as a case study. Citus is a distributed database extension for PostgreSQL. Generally, PG extensions allow users to add custom functionality, enhance database capabilities, and optimize performance. Because of this, extensions often have complex hooks into the PostgreSQL query planner and executor, requiring significant effort to remain updated rather than becoming a fork.

We'll cover everything from reviewing release notes and identifying compatibility issues to making code adjustments for major query planner/executor changes and minor crashes due to changes in catalog tables. This talk provides a behind-the-scenes look at the challenges of keeping Citus up-to-date with Postgres 15 and 16 (and the progress on 17beta2). The lessons learned and strategies used will merge into practical tips for managing similar issues in other PostgreSQL extensions.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5954/</url><track>Community</track><persons><person id="1173">Naisila Puka</person></persons></event></room><room name="Vergina"><event id="6051"><start>14:40</start><duration>00:50</duration><room>Vergina</room><title>Advantages of globally distributed PostgreSQL in a managed cloud for ultra-high availability, disaster tolerance and greater security</title><abstract>In today’s fast-paced, globally connected world, applications must be always on, always available and always highly responsive. pgEdge Distributed PostgreSQL delivers the ultra-high availability, low latency and disaster tolerance that makes this possible. This presentation will explore the core use cases that benefit from deploying distributed PostgreSQL with asynchronous logical replication in multi-master and multi-region configurations, addressing challenges like slow response times, maintenance downtime, and disaster recovery. Additionally, we will share the advantages of distributed PostgreSQL in a managed cloud, including improved security, simplified deployment and management, seamless scaling, and automated backups. Attendees will learn how to more easily leverage multi-master capabilities, latency-based routing and more in a distributed cluster to ensure optimal performance and maximal reliability for users worldwide.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6051/</url><track>Sponsors</track><persons><person id="1204">David Mitchell</person></persons></event></room><room name="Ilissos"><event id="5845"><start>14:40</start><duration>00:50</duration><room>Ilissos</room><title>Actual trees, not b-trees – or how I found PostgreSQL through PostGIS</title><abstract>Some day, my neighbor came over and said „you work with computers, you can help me with my project…“ 
So my journey to PostgreSQL started. He wanted to create a web site that shows the trees he monitors including all the parameters on each tree he regularly collects and likewise, add all the trees of people like him who monitor trees all over Germany. The idea behind it is to show which types of trees can still cope with the changed climate and which ones struggle. This will allow those who need to replace dead trees a source of information to choose the right type of trees that will grow well in their area.
I had not setup a database before so I informed myself on different types of databases. One main feature required was an efficient way to find objects based on their geolocation which lead me to PostGIS and therefore, I picked PostgreSQL.
The next steps where to find out how to get the data into the database with several surprises (like e.g. buildings listed as trees) I got and how to show it on a map on a web site in an interactive way so that users can search for trees based on various criteria.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5845/</url><track>App Developer</track><persons><person id="1153">Johannes Paul</person></persons></event></room><room name="Other"><event id="6007"><start>15:30</start><duration>00:30</duration><room>Other</room><title>Tea Break</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6007/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5707"><start>16:00</start><duration>00:50</duration><room>Olympia</room><title>Unearthing the Past with PostgreSQL: How Open Source is Revolutionizing Digital Archaeology</title><abstract>Archaeology is undergoing a digital revolution, and PostgreSQL is at the forefront. This talk explores how a team of French archaeologists leveraged PostgreSQL and PostGIS to create B.A.D.A.S.S. (Base Archaeological Data: Attributive and Spatial System), transforming their field data collection and analysis processes.

We'll dive into the challenges of digitizing complex archaeological data, the benefits of spatial databases for site mapping, and how a web interface allows real-time data entry on excavation sites.

We'll see how we used an open-source tool (SQLPage: https://sql.ophir.dev/) to build a full production-ready web UI on top of the database very quickly, and without any other knowledge in the team than just SQL.

Join us to discover how open-source tools are helping uncover history more efficiently than ever before.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5707/</url><track>App Developer</track><persons><person id="947">Ophir Lojkine</person><person id="1183">Thomas Guillemard</person></persons></event></room><room name="Olympia B"><event id="5569"><start>16:00</start><duration>00:50</duration><room>Olympia B</room><title>Introduction to Fair-Use TPC Benchmarking Kits</title><abstract>Let us go over a handful of freely available benchmarking kits that can be used with PostgreSQL.  They are designed to characterize system performance and give you an idea of how well your system performs.  They can also be used for evaluating the performance of patches! 

A number of benchmark specifications for transaction processing and databases have been released by the TPC (Transaction Processing Performance Council) over the years.  We will lightly review a handful of the current benchmarks and how to interpret results before demoing how to use these fair-use benchmarking kits.  Particularly the C and E, a couple of the OLTP workloads, and the H and DS, a couple of the decision support workload. 

These kits were originally developed at the OSDL before its merger with the Free Standards Group to form the Linux Foundation, thus they are primarily for Linux systems.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5569/</url><track>DBA</track><persons><person id="772">Mark Wong</person></persons></event></room><room name="Vergina"><event id="6057"><start>16:00</start><duration>00:50</duration><room>Vergina</room><title>Modern PostgreSQL for AI applications: with LLM integrations and powerful search</title><abstract>In this session, we will talk about extending PostgreSQL to support modern AI workloads. PostgreSQL extensions are a powerful part of the Postgres ecosystem. Some are relatively straightforward to run, while others bring broad sets of new functionality and enable new workloads, allowing Postgres to compete with specialized databases. Lantern.dev offers a unique way to accomplish this for AI workloads, including scalable indexing and LLM integrations with Postgres.

Along the way, we will also introduce a new way of consuming PostgreSQL extensions in the cloud. Informed from our time building and running Citus first as a separate database, and later as a PostgreSQL extension and a cloud service, we will talk about ways to combine workload-specific expertise of AI applications, with the operational management of Postgres.

If you're interested in AI applications with PostgreSQL in particular, or running workload-specific PostgreSQL extensions in general, this session is for you.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6057/</url><track>Sponsors</track><persons><person id="1211">Di Qi</person><person id="1207">Umur Cubukcu</person></persons></event></room><room name="Ilissos"><event id="5592"><start>16:00</start><duration>00:50</duration><room>Ilissos</room><title>–Mom, can we have G**gle Maps? –We have G**gle Maps at home</title><abstract>For those moments when you're craving a high-quality GIS dataset but everything is too expensive, OpenStreetMap is a free, community driven Open Data solution.

Do you really need access to extortionately priced APIs for what you want to do? Don't we already have a leading combo of database and GIS backend in PostgreSQL and PostGIS?

This talk explores use cases and what you can do with OpenStreetMap data in PostgreSQL, as well as what tools and resources you need, and how to load, update and search the data.

Examples of nifty things a "non-GIS-person" can do with these tools will be provided!</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5592/</url><track>App Developer</track><persons><person id="323">Jimmy Angelakos</person></persons></event></room><room name="Olympia"><event id="6045"><start>17:00</start><duration>00:15</duration><room>Olympia</room><title>Using PostgreSQL in real life</title><abstract>PostgreSQL is gaining popularity every day, but what does it really mean to run PostgreSQL in the real world? How does it impact an insurance company, a startup, a personal project, or research endeavors? More importantly, how can we leverage Open Source to improve life for everyone? Which contributions truly make a difference and have a lasting impact?</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6045/</url><track>Platinum Sponsor Keynotes</track><persons><person id="1198">Hans-Jürgen Schönig</person></persons></event><event id="6049"><start>17:20</start><duration>00:15</duration><room>Olympia</room><title>Making Postgres serverless</title><abstract>What does it take to make Postgres serverless? What were the difficulties, what has worked well. What we working on, and what are we looking forward to, to make Postgres great for modern serverless cloud environments.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6049/</url><track>Platinum Sponsor Keynotes</track><persons><person id="1202">Heikki Linnakangas</person></persons></event><event id="6061"><start>17:40</start><duration>00:15</duration><room>Olympia</room><title>Postgres Over the Horizon: Anchor Points for the Future We Should Be Building Now</title><abstract>Predicting the future often requires a look into the past. In this keynote, we will revisit the 2013 PGConf.EU keynote, “PostgreSQL in 5 years - Expectations from the marketplace,” to see how far we’ve come and use those insights to project what the future holds for Postgres. As we look ahead to the next five and ten years, the focus will shift beyond transactional capabilities to encompass expanded roles for AI and advanced analytics workloads. The future of Postgres lies in its ability to meet the engineering demands of an AI-driven world. Join us as we outline the key anchor points that will shape the future of Postgres, helping developers and enterprises alike build resilient systems designed for tomorrow’s data landscape.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6061/</url><track>Platinum Sponsor Keynotes</track><persons><person id="1209">Peter Eisentraut</person></persons></event><event id="6036"><start>18:00</start><duration>00:15</duration><room>Olympia</room><title>Everything Postgres at Microsoft – 2024 in Review</title><abstract>2024 was the biggest year yet for Postgres at Microsoft. Our team of Postgres open source developers &amp; committers made many contributions to Postgres 17 while on the Azure side, we've continued to add more enterprise and AI features at a rapid pace. This keynote will share 3 things with you: (1) an overview of our recent open-source contributions to Postgres 17 and its ecosystem, (2) a rundown of new features that are now available in our managed service; and (3) a peek—with demos—into new capabilities we'll soon deliver into Azure Database for PostgreSQL.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6036/</url><track>Platinum Sponsor Keynotes</track><persons><person id="1194">Charles Feddersen</person></persons></event></room></day><day date="2024-10-25"><room name="Other"><event id="6018"><start>09:00</start><duration>00:30</duration><room>Other</room><title>Registration</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6018/</url><track>PGConf.EU</track><persons /></event></room><room name="Olympia"><event id="5718"><start>09:30</start><duration>00:50</duration><room>Olympia</room><title>Incremental Backup</title><abstract>In this talk, I'll discuss the incremental backup feature which I developed for PostgreSQL 17. The talk will discuss how we determine what data has changed, and why the chosen approach was selected. It will then review in some detail how incremental backups can be taken and restored, and why things work as they do. It will briefly touch on use cases for the feature and possible future work in this area.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5718/</url><track>DBA</track><persons><person id="264">Robert Haas</person></persons></event></room><room name="Olympia B"><event id="5946"><start>09:30</start><duration>00:50</duration><room>Olympia B</room><title>Supporting extensions, but really now</title><abstract>I have experience with the extensibility of a software being its
strength coming from Rails and Ruby. Many language communities have their package managers, plugins, gems, JVM, npm, and architectures these days are typically modular.

All these ecosystems have similar challenges too. Dependencies
maintained by the proverbial single individual in Nebraska, lack of documentation, infrequent security patches, malicious actors...

Joining Tembo in July this year, I have ramped up my knowledge of the larger ecosystem, in no small part thanks to David Wheeler's "State of the Postgres Extensions Ecosystem" / "Extension Ecosystem Mini-Summits" work. Now I want to look at Postgres' challenges from that broader perspective again.

Before we can tackle challenges we need to truly understand what's preventing maturity, and we need to measure the work we do to make the stuff we rely on more robust. What would an annual State of the Extensions look like? I have asked different stakeholders and can't wait to share my recommendations.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5946/</url><track>Community</track><persons><person id="1171">Floor Drees</person></persons></event></room><room name="Vergina"><event id="6033"><start>09:30</start><duration>00:50</duration><room>Vergina</room><title>Automated Database Change Management with Flyway and CI/CD Pipelines</title><abstract>Managing database schema changes in a DevOps culture can be a daunting task. Having a process in place that provides for quick, predictable iterations across a team of developers and DBAs can accelerate your ability to deliver value to customers.

In this session, we'll talk about the various methods of deploying changes from dev to production, the key factors that drive success in a development team, and how to begin your automation journey. From there we'll take a hands-on journey through the process using Flyway and GitHub Actions to automatically deploy changes. Along the way, we'll discuss how to verify changes, check for errors, and celebrate a faster, predictable process.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6033/</url><track>Sponsors</track><persons><person id="1191">Ryan Booz</person></persons></event></room><room name="Ilissos"><event id="5829"><start>09:30</start><duration>00:50</duration><room>Ilissos</room><title>From VMs to Cloud-Native PostgreSQL in Kubernetes: A Case Study of Migrating a Medium-Sized Application</title><abstract>We have all been there – managing a traditional primary-replica PostgreSQL installation with stability and ease, ensuring all stakeholders are satisfied. Our on-premise infrastructure was reliable, eliminating the need for High Availability (H-A) solutions like Patroni. However, the landscape shifted dramatically when our customers decided to go “all-in” on Kubernetes, despite their limited understanding of running databases in such a dynamic environment.

In this business-critical application case study, earning millions CZK daily, we detail our journey from skepticism to expertise. Initially wary, we evaluated various Postgres operators, progressing through staging environments and building our know-how to administer databases without “SSH-ing into servers.” We delved into the details traditionally familiar to us and performed extensive testing and experiments before moving to production.

We will compare traditional installations with operator-based ones across key areas:

- Initial Installation
- High Availability, Disaster Recovery
- Backup and Restore
- Performance Tuning
- Client Connections
- And more

This session will provide a grounded perspective on the “Kubernetes” hype, highlighting both challenges and surprising benefits. By the end, you will see how even a skeptical, conservative DBA can become passionate about running PostgreSQL in Kubernetes after experiencing its advantages firsthand.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5829/</url><track>DBA</track><persons><person id="1104">David Pech</person></persons></event></room><room name="Olympia"><event id="5660"><start>10:30</start><duration>00:50</duration><room>Olympia</room><title>What's in a Postgres major release? An analysis of contributions in the v17 timeframe</title><abstract>Have you ever wondered what the ratio is of substantive vs. polish commits is in a Postgres release? Or how much code was refactored during a Postgres release cycle? What is the ratio of code to documentation—or code to comments? Have you ever wondered what the cycle time is for fixes: from when an idea is first proposed to when it lands in the Postgres core? What about non-code contributions in the timeframe of Postgres 17: things like serving as conference organizers or on talk selection teams? And while we all know Postgres is a global project, where are the PG contributors from?

In this talk, you’ll walk through a brand new analysis—done by Postgres committer Daniel Gustafsson and Claire Giordano—of the contributions to Postgres in the v17 timeframe. The analysis will build on published blog posts such as the one Robert Haas publishes annually—and will leverage data sources such as the Postgres commit logs—and info about error message translations, conference contributions, and more. And there will be fun insights too, such as, what was the oldest piece of code that was replaced in PG 17?</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5660/</url><track>Community</track><persons><person id="535">Claire Giordano</person></persons></event></room><room name="Olympia B"><event id="5884"><start>10:30</start><duration>00:50</duration><room>Olympia B</room><title>Identity at Scale - How Okta uses Postgres</title><abstract>At Okta we have a wide range of different state and persistence dedicated systems. These range from regular key-value stores like Redis, a large fleet of NoSQL databases of the likes of DynamoDB and MongoDB, and ever larger and more predominant usage of PostgreSQL for a wide majority of new and old use cases. 
This talk is all about the operational challenges of managing a fleet of 650+ Postgres database clusters, spread across two cloud providers, and in a variety of different use cases, with different operational profiles to each of them. 
We will uncover a range of operational challenges such as: 
* Database operational procedures: backups/restore, version management, data retention and observability for 650+ clusters
* Sizing: when and how to scale up individual clusters
* Same database, different use cases: full text search vs basic CRUD vs spike traffic management are handled from a database perspective and what issues/challenges we encounter dealing with non-predictable problems.
* Same database engine, different deployments: tactics and deployment practices on how to handle  multi and single tenant deployments, the performance and operational implications of such scenarios. 
* Database Topology: how our clusters are designed per client and resiliency needs in mind. 


What we would like the attendee to get from this session: 
* A good set of live production examples and lessons learned on managing a large postgres fleet on a variety of different constraints.
* How different use cases, combined with single vs multi-tenant deployments can drive your database optimisation efforts 
* What and how to handle performance issues at scale due to unexpected load or cascading effects of "bad" releases.
* How to build for failure and where databases take an important role on such an architecture.


This is an operational focussed talk were we will focus on a lot lessons learned, where a natural comparison between different database engines will be used for highlighting the how and why we are using PostgreSQL and where we are heading in terms of broader adoption of the technology @okta-oauth-dep.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5884/</url><track>DBA</track><persons><person id="1162">Norberto Leite</person></persons></event></room><room name="Vergina"><event id="6037"><start>10:30</start><duration>00:50</duration><room>Vergina</room><title>The Elephant Has No Clothes</title><abstract>PostgreSQL is the most popular open-source database among developers. It is one of the Top 5 databases in the world, and it is fully open source and community driven. But, PostgreSQL, the “Emperor” of databases, has no clothes! For all intents and purposes, Slonik is “walking around naked” because there is no open source TDE solution to keep the elephant clothed.
Transparent Data Encryption is the way that data at rest protection can be done on the database level, ensuring the data is encrypted on the disk as well as in your backups and no application changes are required. While TDE is not available in PostgreSQL we created an extension that addresses (clothes the elephant) this issue and strengthens the security of your database.
Join us as we tell the story of The Elephant Has No Clothes and how Percona is solving this issue. We will go over data that span the development of the extension, the added security benefits to your database, and point to what the future holds for TDE.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6037/</url><track>Sponsors</track><persons><person id="1195">Jan Wieremjewicz</person></persons></event></room><room name="Ilissos"><event id="5853"><start>10:30</start><duration>00:50</duration><room>Ilissos</room><title>Speeding up logical replication setup</title><abstract>Logical replica is a popular choice if you want to migrate an existing cluster with minimal downtime. For large databases, it can take a considerable amount of time and resources (WAL retention while copying table data) to finish the setup.

pg_createsubscriber is a new tool for Postgres 17 that aims to create a logical replica faster than the regular method (initial data synchronization). It creates a logical replica using a physical replica. All tables in the specified databases are included in the replication setup.

This talk will explain the pg_createsubscriber in detail. Present the options, limitations and future development.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5853/</url><track>DBA</track><persons><person id="668">Euler Taveira</person></persons></event></room><room name="Other"><event id="6005"><start>11:20</start><duration>00:30</duration><room>Other</room><title>Coffee Break</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6005/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5645"><start>11:50</start><duration>00:50</duration><room>Olympia</room><title>Column encryption solutions and ideas</title><abstract>Many users are looking for data encryption solutions, for security and compliance reasons. In many cases, targeted solutions for column-level encryption can be appropriate and in some cases offer even better security and compliance than full-disk encryption or TDE.

In this talk I will introduce solutions for column-level encryption, including application-side solutions and solutions using plugins like pgcrypto and pgsodium. I'll also cover some cryptographic details and typical security and regulatory requirements for encryption in databases and how different encryption solutions can address them.

And at the end we can think about what core PostgreSQL could offer for this in the future.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5645/</url><track>DBA</track><persons><person id="503">Peter Eisentraut</person></persons></event></room><room name="Olympia B"><event id="5792"><start>11:50</start><duration>00:50</duration><room>Olympia B</room><title>Hidden gems of WAL-G backup tool</title><abstract>The typical workflow of any backup solution is relatively straightforward: set up a point-in-time recovery archive, create a backup rotation schedule, and verify the restoration process from time to time. However, WAL-G provides some useful features that can be useful for database administrators in a stormy situation: 1. Performance adjustments to modify the usual "cheap backups - fast restores" mode. 2. Advanced consistency monitoring capabilities to ensure that backups are accurate. 3. Quick standby catch-up and other high availability cluster features. 4. Various methods to extract a changeset for incremental backups. Additionally, I will discuss the future roadmap, including consistent backups for sharded clusters and the use of advanced S3 capabilities.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5792/</url><track>DBA</track><persons><person id="524">Andrey Borodin</person></persons></event></room><room name="Vergina"><event id="6047"><start>11:50</start><duration>00:50</duration><room>Vergina</room><title>Time travel with Neon</title><abstract>Neon's storage system is like a WAL archive on steroids. It makes it possible to retrieve database pages at any point in time, which makes fast startups and branching possible.
I will demonstrate how to do time travel, and talk about the technology behind it.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6047/</url><track>Sponsors</track><persons><person id="1200">Heikki Linnakangas</person></persons></event></room><room name="Ilissos"><event id="5593"><start>11:50</start><duration>00:50</duration><room>Ilissos</room><title>PostgreSQL Executor: Executing your execution plan</title><abstract>In PostgreSQL, one of the key components is its query executor which is really in charge of running your query. This presentation will deep dive into this vital component of PostgreSQL and shed some light on the inner workings of the very heart of PostgreSQL. Let us understand how PostgreSQL really runs a query, how data is processed and which key internal algorithms and data structures are at work to make PostgreSQL tick. How does PostgreSQL handle expressions? What is an executor state and how does PostgreSQL actually execute an execution plan created by the optimizer? Where does parallelism kick in?</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5593/</url><track>Internals</track><persons><person id="1098">Rafia Sabih</person></persons></event></room><room name="Other"><event id="6010"><start>12:40</start><duration>01:00</duration><room>Other</room><title>Lunch</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6010/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="5585"><start>13:40</start><duration>00:50</duration><room>Olympia</room><title>Performance Archaeology</title><abstract>Let's do some basic benchmarks (both OLTP and OLAP) on releases since PostgreSQL 8.0, and see how the performance changed over the years. It's unexpectedly difficult to realize how much has the performance changed over many releases, because we usually test and measure only the two releases. But the incremental improvements can compound pretty quickly, and the hardware and applications change too. So let's do some testing and look at numbers ;-)

You will not learn about how to use cool new features during this talk, but hopefully you'll learn how far we got in the past ~15 years.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5585/</url><track>Internals</track><persons><person id="116">Tomas Vondra</person></persons></event></room><room name="Olympia B"><event id="5824"><start>13:40</start><duration>00:50</duration><room>Olympia B</room><title>PostgreSQL for Oracle DBAs - A walk in the park?</title><abstract>Relational Databases are all one of the same, right? Same thing, different names, no?

Whilst the core concepts might still be the same between Oracle and PostgreSQL, transition from an Oracle DBA role to a PostgreSQL one might not be as straight forward.

In this talk we will explore some of the key differences between managing Oracle and PostgreSQL DBs, including some of the features I initially missed and the ones I never looked back to!</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5824/</url><track>DBA</track><persons><person id="1130">Teresa Lopes</person></persons></event></room><room name="Vergina"><event id="6029"><start>13:40</start><duration>00:50</duration><room>Vergina</room><title>HELP!!1! The database is slow!!</title><abstract>You are the devops mastermind behind your application, sending a lot of queries happily to your database, which just as happily answers your requests. But suddenly BOOOM, your application is getting slow. Wait, that must be the database, right?
If there is a database expert in your organization, you are sending them an SOS. There are chances they will ask you a myriad of questions, so that they can identify the problem faster. If you don't have anyone to ask, you have to ask yourself - but what exactly? And how to answer all those questions? Even more importantly, how do you get to the solution - as fast as possible?
This talk presents an approach with which such problems can be approached in a structured manner, helping both developers/devopses and database people troubleshoot database performance problems.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6029/</url><track>Sponsors</track><persons><person id="1187">András Váczi</person></persons></event></room><room name="Ilissos"><event id="5737"><start>13:40</start><duration>00:50</duration><room>Ilissos</room><title>Creating a Board Game Chatbot with Postgres, AI, and RAG</title><abstract>This session explores the integration of PostgreSQL with AI technologies and Large Language Models (LLMs), demonstrating the creation of a chatbot capable of answering board game rules questions. Using board games as a fun example, we'll showcase information retrieval techniques based on natural language and how to implement them with PostgreSQL at scale.

We'll start with an introduction to Retrieval-Augmented Generation (RAG), a cutting-edge approach that combines retrieval-based and generation-based models for accurate, contextually relevant responses. The session will cover the process of collecting and preprocessing board game rules data, generating and storing vector embeddings using pgvector for efficient similarity searches, and training and deploying a language model to generate responses using these embeddings. Additionally, we'll discuss configuring PostgreSQL for highly performant vector searches and real-time data operations.

Attendees will gain insights into RAG's theoretical underpinnings and practical skills in integrating AI with PostgreSQL for intelligent chatbot applications. Join us to discover how combining PostgreSQL with advanced AI techniques and LLMs can revolutionize data interaction.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5737/</url><track>App Developer</track><persons><person id="978">Matt Cornillon</person></persons></event></room><room name="Olympia"><event id="5617"><start>14:40</start><duration>00:50</duration><room>Olympia</room><title>Postgres Platform "Best Practices" for the Modern DBA</title><abstract>During the past few decades, the role of the Postgres Database Administrator (DBA) has evolved significantly, giving rise to the "Database Platform Engineer." This role emphasizes building developer-owned database tooling, and managing/optimizing databases as a cohesive fleet.

Across my last several jobs, I have contributed to &amp; led several database platform teams, and managed Postgres for a wide range of projects. In this talk, I will share Postgres database platform engineering "best practices" refined through my experience at companies of varying size, level of engineering maturity, and data scale.

These best practices focus on a wide range of technical and human-focused topics, including:

* Metadata management
* Logging &amp; migration Postgres configurations
* Networking/DNS
* The role of databases in a microservice world
* The advantages vs risks of a "self-service" infra platform
* Maintaining quality of schema design &amp; access patterns when your team doesn't own data</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5617/</url><track>DBA</track><persons><person id="882">Chelsea Dole</person></persons></event></room><room name="Olympia B"><event id="5812"><start>14:40</start><duration>00:50</duration><room>Olympia B</room><title>Vacuuming Large Tables: How Recent Postgres Changes Further Enable Mission Critical Workloads</title><abstract>We have all heard about Postgres vacuum horror stories and tales of transaction wraparound disasters. Even if you've never been through one yourself, you may be concerned that you might someday experience it, or may know people who have avoided Postgres altogether because of it. But it doesn't have to be this way. 

In this talk, we will explore this topic through a review of a real-world wraparound incident, walking through the challenges and hope offered by changes in the last several Postgres releases. We'll explore the inner workings of the Postgres vacuum process, its dual purpose of managing both disk bloat and transaction IDs (XIDs), and how recent innovations have improved this process, particularly for large tables with heavy transaction loads. We'll dive deep into key features like:
- What Index Deduplication has to do with minimizing vacuum workload and improving efficiency.
- How On/Off Index Vacuuming gives you control over vacuuming during maintenance windows.
- Why one key Autovacuum enhancement was so critical for improving XID wraparound prevention.

Beyond theory, we'll revisit the real-world incident and see how each new Postgres feature would have mitigated the impact. While no single change is a silver bullet, the combined effect is significant. We'll also explore the potential of the new radix tree implementation in Postgres 17 as the possible final piece of the puzzle for providing a manageable solution to XID wraparound risks.

This talk equips DBAs with a deeper understanding of recent Postgres advancements and their practical application in managing high-transactional and/or mission-critical workloads. You'll leave with actionable insights to optimize your Postgres environment and concrete arguments to convince management that it is worth the upgrade for the potential to minimize the risk of XID wraparound incidents.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5812/</url><track>DBA</track><persons><person id="168">Robert Treat</person></persons></event></room><room name="Ilissos"><event id="5748"><start>14:40</start><duration>00:50</duration><room>Ilissos</room><title>pg_ivm: Extensions for Rapid Materialized View Update</title><abstract>Materialized views are database objects that store the results of a query. It enables rapid query responses, but to keep the state up to date after a underlying table is modified,  materialized views require to be refreshed. Currently, the only way PostgreSQL provides is REFRESH MATERIALIZED VIEW command, but it could take a long time since the whole view is rebuilt by executing the query again.

pg_ivm is an extension module that provides the way to update the materialized view rapidly using a technique called Incremental View Maintenance (IVM), which computes and applies only the incremental changes to the materialized view without rebuilding the whole view. This feature has been also proposed for PostgreSQL core, and pg_ivm is the extension module version of this.

In this talk, I will provide a short introduction of pg_ivm, the idea and design behind it, how it works, and performance. I will also show the current status of our project including recent and ongoing works, for example, outer-join support.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5748/</url><track>App Developer</track><persons><person id="356">Yugo Nagata</person></persons></event></room><room name="Other"><event id="6008"><start>15:30</start><duration>00:30</duration><room>Other</room><title>Tea Break</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6008/</url><track>Breaks</track><persons /></event></room><room name="Olympia"><event id="6012"><start>16:00</start><duration>01:00</duration><room>Olympia</room><title>Lightning Talks</title><abstract>A series of short talks, each a maximum of 5 minutes long, submitted by attendees and selected during the conference itself.
Details on how the talks were submitted/selected are available [here](https://2024.pgconf.eu/attendee-info/lightning-talks/) 

1. Christoph Berg: Bits and News from the PostgreSQL Contributors Team
2. Di Qi: A Simple Version of BM25 in Postgres
3. Mark Wong: PostgreSQL Performance Farm 5 Second Update
4. Neeta Goel: Migration Consideration: Oracle to PostgreSQL
5. Enes Cakir: Reduce your GitHub Actions bill by 10x
6. Jelte Fennema-Nio: pg_duckdb: Challenges and Benefits of Elephants with Beaks
7. Hannu Krosing: PgObject - a self-describing pg-typed structured data type (like JSON but Much Better)
8. Raoul De Guchteneere: Migrating on new servers using repmgr with near zero downtime
9. Chris Ellis: So, You Want A … PGDay Website?
10. Marat Bogatyrev: From Backup to Integrity. Leveraging WAL-G for PostgreSQL
11. Ads &amp; Floor: Every Postgres contribution counts
12. Eren Basak: Managing PostgreSQL on Cloud
13. Claire Giordano: My Journey to PostgreSQL &amp; the PGCA Board of Directors</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6012/</url><track>PGConf.EU</track><persons><person id="30">Andreas Scherbaum</person><person id="424">Chris Ellis</person><person id="82">Christoph Berg</person><person id="535">Claire Giordano</person><person id="1155">Di Qi</person><person id="1218">Enes Cakir</person><person id="1221">Eren Başak</person><person id="1171">Floor Drees</person><person id="755">Hannu Krosing</person><person id="839">Jelte Fennema-Nio</person><person id="1227">Marat Bogatyrev</person><person id="772">Mark Wong</person><person id="1217">Neeta Goel</person><person id="1223">Raoul De Guchteneere</person></persons></event><event id="6014"><start>17:00</start><duration>00:30</duration><room>Olympia</room><title>So long, and thanks for all the fish</title><abstract>Closing remarks of the conference. Join us as for the now traditional light hearted review and wrap up the events of the week.</abstract><url>https://www.postgresql.eu/events/pgconfeu2024/schedule/session/6014/</url><track>PGConf.EU</track><persons><person id="2">Dave Page</person><person id="1">Magnus Hagander</person></persons></event></room></day></schedule>