<?xml version='1.0' encoding='utf-8'?>
<schedule><version>Firefly</version><conference><title>PGConf.EU 2015</title><start>2015-10-27</start><end>2015-10-30</end><days>4</days><baseurl>https://www.postgresql.eu/events/pgconfeu2015/schedule/</baseurl></conference><day date="2015-10-27"><room name="Ballroom A"><event id="957"><start>09:00</start><duration>08:00</duration><room>Ballroom A</room><title>PostgreSQL Replication &amp; Upgrades</title><abstract>Course Content

* Physical Replication in 9.4/9.5
* Logical Decoding
* Logical Replication
* Selective Replication
* Bi Directional Replication
* Zero Downtime Upgrade from 9.4 to 9.5
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/957/</url><track>Training</track><persons><person id="210">Petr Jelinek</person><person id="17">Simon Riggs</person></persons></event></room><room name="Ballroom B"><event id="958"><start>09:00</start><duration>03:30</duration><room>Ballroom B</room><title>PostgreSQL performance tuning</title><abstract>Good database performance is vital and essential to many business around the globe. Unfortunately many databases are not tuned properly and many SQL queries have not been optimized properly. This training is a frontal assault on all kinds of performance problems bugging databases all over the planet.

Topics:

* Finding slow queries
* Fixing missing indexes
* Dealing with fuzzy searches
* Tweaking memory parameters
* Optimizing storage (checkpoints, etc.)
* Dealing with FILLFACTOR
* Handling VACUUM
* Optimizing space consumption
* Reading execution plans (EXPLAIN, etc.)
* Approaching performance problems systematically
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/958/</url><track>Training</track><persons><person id="39">Hans-Jürgen Schönig</person></persons></event></room><room name="Ballroom C"><event id="954"><start>09:00</start><duration>08:00</duration><room>Ballroom C</room><title>PostgreSQL Server Development</title><abstract>Full day training on modifying the PostgreSQL code base, including both
server and client side modifications, from interacting with the
community through to having your feature be included.

A VM will be provided which attendees should download ahead of the
training.  This VM will include the appropriate tools for developing
with PostgreSQL.

Specifically, we will cover:

Basics of the source management tool 'git': downloading the PostgreSQL
source code, reviewing the commit log, updating the repository based on
commits done by PostgreSQL committers, using branches, and tracking
feature work against the PostgreSQL code.

Introduction to PostgreSQL source code: the directory structure, where
to find the client applications, the server side code, extensions, and
the documentation.

Overall PostgreSQL Architecture:  How a query goes through the entire
system from the command-line interface psql, through the C library which
speaks the PostgreSQL protocol, across the wire with the PostgreSQL
protocol, and the server-side reception of that query, and then parsing,
planning, execution, including how data makes it from the user to the
filesystem and how query results are returned to the user.

With this basis for working with PostgreSQL, we will then move on to
discuss new feature development.

Interacting with the PostgreSQL community through the mailing lists
used by all of the active PostgreSQL developers and committers.

Using a branch in git to commit code to, including how to write commit
messages and how the PostgreSQL project expects to see new patches.
This will involve hand-on modification of the PostgreSQL code, building
with these changes and using your new feature.

How to use the PostgreSQL "commitfest" application to register your new
feature patch to be reviewed by other developers.  We will walk through
the states which a given patch goes through from submission via the
commitfest application to eventual commit to the PostgreSQL repository.


*Prerequisites:* Knowledge of C and at least one one Vim, Emacs, Jed or
other Linux-based text editor.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/954/</url><track>Training</track><persons><person id="84">Stephen Frost</person></persons></event></room><room name="Ballroom B"><event id="959"><start>13:30</start><duration>03:30</duration><room>Ballroom B</room><title>Elevating your confidence with the Elephant's restoration capabilities</title><abstract>This half day training will focus purely on the backup and restore of PostgreSQL. In this training you will learn the nuances of PostgreSQL's built in backup and restore capabilities as well as external abilities brought about by technologies such as snapshots and pgBackrest.

There will be instruction on pg_dump/all and restore including a full understanding of the different backup/restore formats, when to use them and how to reduce potential production issues running long backups.

Lastly, the students will be shown how to use pgBackrest, filesystem snapshots and other well known utilities to properly manage the Elephant's data.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/959/</url><track>Training</track><persons><person id="23">Joshua D. Drake</person></persons></event></room></day><day date="2015-10-28"><room name="Other"><event id="1122"><start>09:30</start><duration>00:15</duration><room>Other</room><title>Welcome and opening</title><abstract>Welcome and opening</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1122/</url><track>Keynotes</track><persons><person id="1">Magnus Hagander</person></persons></event></room><room name="Ballroom A+B"><event id="939"><start>09:45</start><duration>01:00</duration><room>Ballroom A+B</room><title>The bigger picture: More then just code</title><abstract>PostgreSQL is the world's most advanced open source database. It's the product of years of dedication and devotion of many people with impressive skills and knowledge.
As any quality FOSS project, it's dynamic and innovative, and goes a step further with setting up an example of maintaining high standards while producing a very complex piece of software. 
Further, as any FOSS project, it will encounter (and have to overcome if it wants to keep growing) the three key challenges:
1. Proper integration of newcomers
2. Maintaining vision and values 
3. Keeping an open ear for the users
Yes, there will be many exciting technical problems, but the key growth factors are people related. 
In FOSS, everything revolves around the contributors, and it all comes down to the community to attract, integrate and support. As FOSS communities, we need to acknowledge this and work on setting up a culture that will enable us to thrive. Let's talk about this!</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/939/</url><track>Keynotes</track><persons><person id="260">Tamara Atanasoska</person></persons></event></room><room name="Other"><event id="1128"><start>10:45</start><duration>00:25</duration><room>Other</room><title>Coffee</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1128/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="1021"><start>11:10</start><duration>00:50</duration><room>Ballroom A+B</room><title>Upcoming PostgreSQL 9.5 Features</title><abstract>Postgres 9.5 adds many features designed to enhance the productivity of
developers:  UPSERT, CUBE, ROLLUP, JSONB functions, and PostGIS
improvements.  For administrators, it has row-level security, a new
index type, and performance enhancements for large servers.  This talk
covers the top ten new features that will appear in the Postgres 9.5
release.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1021/</url><track>General</track><persons><person id="44">Bruce Momjian</person></persons></event></room><room name="Ballroom C+D"><event id="948"><start>11:10</start><duration>00:50</duration><room>Ballroom C+D</room><title>Backup and Recovery using PITR </title><abstract>Backup and Recovery strategies are absolutely key to the successful operation of any business critical data management. Database backup strategies must plan for catastrophic failure of a device, maintenance, disaster at a location, operator error, data corruption and compliance requirements. 

This session will look specifically at application/user error and the steps needed to get your database back into production with minimal or no data loss using Point in Time Recovery (PITR)
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/948/</url><track>DBA</track><persons><person id="263">Mark Jones</person></persons></event></room><room name="Palais I-III"><event id="947"><start>11:10</start><duration>00:50</duration><room>Palais I-III</room><title>Experimenting with semantic analysis</title><abstract>As of  9.5, PostgreSQL can be used nicely for Full Text Search. However, if you are looking for a "cheap hotel" the word "hotel" is surely more relevant than the word "cheap". 

Many algorithms have been developed over the year to approach the problem if semantic search, which can be added to PostgreSQL if needed. 

During this talk a couple of approaches and a demo will be presented.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/947/</url><track>Developer</track><persons><person id="39">Hans-Jürgen Schönig</person></persons></event></room><room name="Ballroom A+B"><event id="935"><start>12:10</start><duration>00:50</duration><room>Ballroom A+B</room><title>Where's Waldo? - text search and pattern matching in PostgreSQL</title><abstract>There are many use cases for text search and pattern matching, and there are also a wide variety of techniques available in PostgreSQL to perform text search and pattern matching. Figuring out the best "match" between use case and technique can be confusing. This talk will review the possibilities and provide guidance regarding when to use what method, and especially how to properly deal with the related index methods to ensure speedy searches.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/935/</url><track>Developer</track><persons><person id="38">Joe Conway</person></persons></event></room><room name="Ballroom C+D"><event id="1028"><start>12:10</start><duration>00:50</duration><room>Ballroom C+D</room><title>Dockerizing a Larger PostgreSQL Installation: What could possibly go wrong?</title><abstract>Migrating existing systems that have worked flawlessly for years is not always an easy job. And, as always, these systems have to be updated from time to time to use newer versions of software. This is a story of such a migration of a larger PostgreSQL instance (&gt; 500GiB databases for a fleet management company) from a traditional bare metal installation to a modern dockerized version. This new architecture was chosen because it should be easier to upgrade to newer versions of PostgreSQL when they are available, but also it should be easier to test the same configuration before deploying on production. Also, all the manual work for the instances setup and management was scripted with Ansible.
This presentation will cover the following topics:
•	Choosing and creating the Docker images for dividing the required functionalities in different containers.
•	Partitioning the stored data to different storage spaces (SSDs, HDDs…)
•	Loading the production data into the database
•	Replication the data from master to slave, fail over from master to slave, recreating slaves from a previous master.
•	Creating backups and archiving WALs for point in time recovery (PITR) and devising retention policies for these data.
•	Monitoring the instances and automating log analysis.
•	Managing the all process steps with Ansible.
We have encountered multiple problems when performing this migration and we will present the most interesting ones along with brief information of how we have solved them.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1028/</url><track>DBA</track><persons><person id="222">Mladen Marinović</person></persons></event></room><room name="Palais I-III"><event id="1025"><start>12:10</start><duration>00:50</duration><room>Palais I-III</room><title>Tuple internals: exposing, exploring and explaining</title><abstract>Tuple is an important element of PostgreSQL core. However all available PostgreSQL documentation just give a superficial description of tuple's headers, without actually looking into tuple data area. Physical tuple layout was considered to be useful mostly for PostgreSQL developers. However, for DBA and application developers it is not only fun to know how attribute data is packed in a tuple, but it also helps to create more efficient and less disk consuming databases. To fill this gap we would need a tool that allow easily look into tuple data and see what is there. That is why we modified pageinspect extension so it can show not only tuple headers, but also raw data of the tuple and how it is split into attributes. 

However this talk is not about pageinspect improvements itself, but about usage of improved pageinspect to reveal actual content of the tuple. Using snapshots taken by pageinspect as an examples, we will discuss in details the following topics:

- how does PostgreSQL pack fixed and variable length attributes;
- speak about attribute compression and TOAST storage;
- see how does aligning work;
- find out how NULL-values are actually stored.

And finally, we'll take a look at  the algorithm of attribute extraction, see what optimizations are made there, and thus come to understanding what changes can be made in the table structure in order to get better extraction performance. </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1025/</url><track>Hacker</track><persons><person id="285">Nikolay Shaplov</person></persons></event></room><room name="Other"><event id="1123"><start>13:00</start><duration>01:00</duration><room>Other</room><title>Lunch</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1123/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="1056"><start>14:00</start><duration>00:50</duration><room>Ballroom A+B</room><title>Location based dating in China - 0 to 100000000 daily swipes in a year</title><abstract>Tantan is at the moment the best location based dating app for Android and iOS in China. We started early summer 2014 on a blank sheet and now handle more than 500k daily users in our backend built on Go using PostgreSQL together with PostGIS as our database.

In this presentation I will talk about how we have scaled horizontally with a custom but simple sharded solution built on schemas to handle our current and future load. About how we have come a long way with a simple strategy, using only PostgreSQL and application sharding. I bring up some optimizations we did and some things to watch out for. 

Each day we store and process 100 million swipes, create 500 thousand matches between our users and respond to 10 million geospatial queries. In the app we show nearby users ranked by closeness, activity and profile information, and only those you have not seen before ranked for optimal match chance. To calculate the list of nearby available users we have a fairly complex plpgpsql function utilizing a gist index for the k-nearest neighbor ordering. It returns a result in around 100-200ms.  </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1056/</url><track>General</track><persons><person id="295">Victor Blomqvist</person></persons></event></room><room name="Ballroom C+D"><event id="971"><start>14:00</start><duration>00:50</duration><room>Ballroom C+D</room><title>A Postgres DBA's toolbelt</title><abstract>Talk is a categorized overview (together with some live showcases) of various PostgreSQL specific scripts, utilities and whole toolsets that DBA-s should be aware of for monitoring database performance, database logs and identifying/fixing most common adminstration problems around areas of general performance metrics, tuning, locking, indexing, bloat. Doesn't include backup, replication and clustering topics i.e. focus is more on working with a single running database. Covered tools include some known oldies from wiki.postgresql.org as well as some of my newer favourites from Github.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/971/</url><track>DBA</track><persons><person id="219">Kaarel Moppel</person></persons></event></room><room name="Palais I-III"><event id="1062"><start>14:00</start><duration>00:50</duration><room>Palais I-III</room><title>Access method extendability in PostgreSQL or back to origin</title><abstract>Postgres was initially designed to support access methods extendability. Well
known citation about access method in Postgres claims:
"It is imperative that a user be able to construct new access methods to provide
efficient access to instances of nontraditional base types"
Michael Stonebraker, Jeff Anton, Michael Hirohama.
Extendability in POSTGRES, IEEE Data Eng. Bull. 10 (2) pp.16-23, 1987

Such extendability basically remains nowadays in PostgreSQL:
access methods are defined in pg_am table of system catalog and have well-documented
interface. However, it's impossible to create access methods in external (non-core)
module, since
 * There is no "CREATE ACCESS METHOD" command, one has to insert am definition directly to pg_am.
 * There is no way to define new WAL-records types in extension. Indexes of
   this new access method wouldn't be WAL-logged.

This breaks extendability of PostgreSQL, which we consider important feature and  motivate us to 
fix this ancient problem. 

The first problem is mostly mechanical. We just need to implement
"CREATE ACCESS METHOD" command like many other "CREATE" command.

Problem of WAL is a bit more complex. Actually, we don't want extensions to
define their own WAL-records, because implementing of corresponding redo functions
is a challenging task (even for skilled core programers) and there is a chance to
break both recovery and replication, which is not acceptable.

Another approach is to define generic WAL-records, that specify a difference
between pages in  generalized way. The important property of such WAL-records
is that they should be bullet-proof: error in user code shoudn't produce
broken WAL-records which fails to replay.

Custom access methods is not the only consumer of generic WAL-records. For example,
PostgreSQL now has powerful extendability mechanisms: FDW and custom nodes, which
can be used to implement custom storage engines in extensions and they has to 
be WAL-logged somehow.

In this talk we will present a generic WAL and an example of extension, which creates custom WAL-logged access method.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1062/</url><track>Hacker</track><persons><person id="64">Alexander Korotkov</person><person id="309">Fedor Sigaev</person><person id="164">Oleg Bartunov</person></persons></event></room><room name="Ballroom A+B"><event id="1077"><start>15:00</start><duration>00:50</duration><room>Ballroom A+B</room><title>Dumping the Mainframe: Migration Study from DB2 UDB to PostgreSQL</title><abstract>This talk will present a proof of concept project that is migrating an important database from DB2 UDB on a z/OS mainframe to PostgreSQL on Linux servers.  The schema are migrated using SQLWorkbench/J and the data is migrated using both SQLWorkbench/J (for data export) and pgloader (for import into PostgreSQL). To ease application migration, an extension similar in spirit to orafce (named db2fce) was created providing popular DB2 functions.

Along the road, several obstacles and issues were encountered, including incompatible export/import formats, grumpy mainframe database admins, unimplemented objects for schema dumps and the notorious "invalid byte sequence for encoding 'UTF8': 0x00" error.  All those problems and their solution will be discussed.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1077/</url><track>General</track><persons><person id="301">Michael Banck</person></persons></event></room><room name="Ballroom C+D"><event id="1014"><start>15:00</start><duration>00:50</duration><room>Ballroom C+D</room><title>Managing PostgreSQL with Ansible</title><abstract>This talk will cover the topics listed below:

* General info about configuration management and benefits of using configuration management tools
* Ansible overview and advantages of Ansible comparing to other configuration management tools
* Basics of Ansible such as roles, tasks, handlers, modules, playbooks etc
* Info about Ansible PostgreSQL module and its usage with examples
* A playbook example using PostgreSQL module, it might cover managing Postgres DBs on AWS systems.
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1014/</url><track>DBA</track><persons><person id="281">Gülçin Yıldırım Jelinek</person></persons></event></room><room name="Palais I-III"><event id="1038"><start>15:00</start><duration>00:50</duration><room>Palais I-III</room><title>PostgreSQL on the Raspberry Pi 2</title><abstract>With the release of Raspberry Pi 2 it is a perfect occasion to check how the new version of the most favourite credit-card sized computer performs as a PostgreSQL database server compared to the previous micro-board. In this talk we will learn how to compile and install PostgreSQL on the Raspberry Pi, check its performance comparing benchmarks of the two versions against more powerful computers, and also discuss why installing a professional and robust database system on a tiny computer meets the main educational purpose of the Raspberry Pi on becoming a tool that facilitates the teaching and learning of Computer Science for the masses.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1038/</url><track>Hacker</track><persons><person id="290">Rubens Souza</person></persons></event></room><room name="Other"><event id="1129"><start>15:50</start><duration>00:30</duration><room>Other</room><title>Coffee</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1129/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="1085"><start>16:20</start><duration>00:50</duration><room>Ballroom A+B</room><title>Serializable Transactions, Eventual Consistency and Really Scary Stuff</title><abstract>What every application developer needs to know about when databases don't quite work right.
Covers details of how Serializable transactions work in Postgres, various approaches to consistency in distributed systems and details of various anomalies and how to avoid them.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1085/</url><track>Developer</track><persons><person id="17">Simon Riggs</person></persons></event></room><room name="Ballroom C+D"><event id="1047"><start>16:20</start><duration>00:50</duration><room>Ballroom C+D</room><title>HA strategy, properly done</title><abstract>High Availability is such a strong phrase, and is sometimes attributed to systems where it doesn’t comply.
This talk is aimed for database administrators, system administrators and system architects.
We will go through what High Availability means for different business and how to get to the amount of 9s wanted.
As we go through all the issues involved we will see tools which will make our work easier, and will see where and how it can all fail.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1047/</url><track>DBA</track><persons><person id="200">Martín Marqués</person></persons></event></room><room name="Palais I-III"><event id="931"><start>16:20</start><duration>00:50</duration><room>Palais I-III</room><title>cstore_fdw - turn you PostgreSQL into columnar store</title><abstract>cstore_fdw is an open-source extension to PostgreSQL allowing for storing data in columnar fashion. This talk introduces this extension from installing and integrating it to your databases, through showing typical use-cases, to a live demo including explain plans of a sample queries. Columnar storage, as well as a particular data format ORC will be described. This talk will focus on version 1.2 of cstore_fdw.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/931/</url><track>General</track><persons><person id="139">Jan Holčapek</person></persons></event></room><room name="Ballroom A+B"><event id="1070"><start>17:20</start><duration>00:50</duration><room>Ballroom A+B</room><title>One National Health System - One Postgres Database (Architecture and Performance Review)</title><abstract>In this presentation, we will present the overall architecture of the Macedonian National Health System http://mojtermin.mk which consissts of tens of different applications and services, which have at it’s core one main Postgres database cluster. We will present how we maintain the high uptime and availability of a system under active development with database size of 100s of GB and over 10M transactions per day on a single master server. The presentation will be done from the development and the administration perspective, focusing on the optimization of the system load and the overall architecture choices that had to be made to achieve the desired performance. We will present experiences on how we’re managing: database change management and migration, auditing, security, staging and uat environments, performance monitoring, system alerts and replication and also review how we handled several specific high alert situations.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1070/</url><track>General</track><persons><person id="305">Boro Jakimovski</person><person id="257">Dragan Sahpaski</person></persons></event></room><room name="Ballroom C+D"><event id="1091"><start>17:20</start><duration>00:50</duration><room>Ballroom C+D</room><title>Performance improvements in 9.5 and beyond</title><abstract>PostgreSQL 9.5 brings a number of interesting performance improvements, and performance-related features - improved sorting performance, hashjoin improvements, lock scalability, removal of unnecessary references by optimizer, etc. This talk aims to overview the main improvements, including some benchmark results to illustrate the the gains.

We'll also briefly talk about what we believe will happen in the near future - what performance-related features we're working on, and what we see happening in the community.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1091/</url><track>DBA</track><persons><person id="116">Tomas Vondra</person></persons></event></room><room name="Palais I-III"><event id="1059"><start>17:20</start><duration>00:50</duration><room>Palais I-III</room><title>Writing a Postgres Driver</title><abstract>The best way to learn a new programming language is often jumping straight in and starting a project. And what better project is there than a Postgres driver?
 
In this session we’ll take a code-driven deep-dive on the ins-and-outs of writing a LibPQ based Postgres driver for Crystal with, a new programing language. We’ll cover the evolution of moving from the easy to understand text protocol to the more efficient binary protocol. And of course, we’ll learn how to use LibPQ and a bit about Crystal.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1059/</url><track>Hacker</track><persons><person id="87">Will Leinweber</person></persons></event></room></day><day date="2015-10-29"><room name="Ballroom A+B"><event id="961"><start>09:30</start><duration>00:50</duration><room>Ballroom A+B</room><title>WAL, standbys and Postgres 9.5</title><abstract>Standby nodes are part of the ecosystem for Postgres users for a long time since file-based log shipping is present, their use gaining a lot of adopters since the introduction 5 years ago in 9.0 of streaming replication, which is now well-spread and used in a large number of production systems, with both warm and hot standbys.

This presentation goes through all the things that one needs to know regarding all the new things that have changed in 9.5 with standbys and WAL, particularly how to deal with those changes, how to take advantage of them, and how to use the new things that the upcoming release of Postgres is coming up with to make the life of administrators, and their clusters more performant and smoother.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/961/</url><track>General</track><persons><person id="107">Michael Paquier</person></persons></event></room><room name="Ballroom C+D"><event id="934"><start>09:30</start><duration>00:50</duration><room>Ballroom C+D</room><title>Amazon RDS for PostgreSQL - What's new and lessons learned</title><abstract>This session will provide a brief overview of the RDS service, how the service achieves durability &amp; HA and then do a deep dive into the new features that we have released in the last year.  During the session we will also discuss the lessons learned running a large fleet of PostgreSQL instances.  In addition we will present benchmarking results looking at differences between the 9.3,9.4 and 9.5 releases.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/934/</url><track>DBA</track><persons><person id="232">Grant McAlister</person></persons></event></room><room name="Palais I-III"><event id="962"><start>09:30</start><duration>00:50</duration><room>Palais I-III</room><title>Oracle to PostgreSQL: replication and migration</title><abstract>Is it possible to migrate multi terabyte production Oracle database to PostgreSQL? Can it be achieved without affecting our clients' workloads? In this session I would like to show case our Oracle to PostgreSQL migration project including challenges we faced, problems we encountered and solutions we have deployed.

Teradata Marketing Applications Infrastructure Department has embarked on a database unification project. The main goal of this project was standardising our database environment on PostgreSQL.  In order to achieve this we had to migrate legacy Oracle databases to PostgreSQL. This task was quite a challenge because of database size and 24x7 constant utilisation.  We used cross platform replication solution from 2ndQuadrant to achieve downtime window of just a few minutes.  At the same time we customised this solution to best fit our project of replicating database with intention of standardising on PostgreSQL.

This session will focus on technical details of migration. I will discuss large scale database migration challenges such as replicating multi-billion row tables and tables consisting of hundreds of columns. Furthermore emphasis will be set on system's architecture, problems and their solutions and lessons learned.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/962/</url><track>DBA</track><persons><person id="265">Tomasz Rybak</person></persons></event></room><room name="Ballroom A+B"><event id="1082"><start>10:30</start><duration>00:50</duration><room>Ballroom A+B</room><title>Database containers in enterprise world</title><abstract>Container technologies bring many new challenges to every part of software engineering, from   administrators to maintainers in distributions. Let's take a look at the process of writing, building delivering and running Docker containers in the world of enterprise system. The talk will cover best practices we identified in Red Hat during preparation database images, that are usable as standalone containers, services orchestrated using kubernetes or even PaaS like OpenShift.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1082/</url><track>General</track><persons><person id="237">Honza Horak</person></persons></event></room><room name="Ballroom C+D"><event id="1020"><start>10:30</start><duration>00:50</duration><room>Ballroom C+D</room><title>Unlocking the Postgres Lock Manager</title><abstract>Locking is critical for providing high concurrency for any database — you cannot fully utilize your hardware if locking is throttling its use. This talk explores all aspects of locking in Postgres by showing queries and their locks; covered lock types include row, table, shared, exclusive, and advisory lock types. The high concurrency provided by Multiversion Concurrency Control (MVCC) is also covered. </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1020/</url><track>DBA</track><persons><person id="44">Bruce Momjian</person></persons></event></room><room name="Palais I-III"><event id="952"><start>10:30</start><duration>00:50</duration><room>Palais I-III</room><title>Planning Parallel and Distributed Queries</title><abstract>In order to achieve vertical scalability across a variety of workloads, PostgreSQL will need the ability to use many CPU cores to process a single query; that is, parallel query.  To achieve horizontal scalability, it will need the ability to distribute a single query across many nodes, with each node most likely accessed through PostgreSQL's Foreign Data Wrapper (FDW) machinery.  Query planner enhancements are needed in each case, and the enhancements required for each of the two cases are surprisingly similar.  In this talk, I'll discuss the similarities and differences between these two problems, as well as how they relate to a third much-needed PostgreSQL feature, declarative partitioning.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/952/</url><track>Hacker</track><persons><person id="264">Robert Haas</person></persons></event></room><room name="Other"><event id="1130"><start>11:20</start><duration>00:30</duration><room>Other</room><title>Coffee</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1130/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="933"><start>11:50</start><duration>00:50</duration><room>Ballroom A+B</room><title>Data Science with PostgreSQL</title><abstract>This talk will describe the activities of a data scientist: data ingestion (ETL), preprocessing, data understanding and predictive analytics. PostgreSQL will be presented as the tool that supports many of those tasks, by itself or using extensions.
Data ingestion: Foreign Data Wrappers for accessing other databases, NoSQL data stores and Hadoop; procedural languages for access to other systems
Preprocessing: Standard and advanced SQL
Data understanding: descriptive statistics with SQL, visualization with PL/R
Predictive analytics: machine learning with PL/R and PL/Python, model application in the database
The presenter is a data scientist with many years of analytics experience. He's been a fan of PostgreSQL since the 1990s and uses it wherever he can.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/933/</url><track>General</track><persons><person id="259">Balázs Bárány</person></persons></event></room><room name="Ballroom C+D"><event id="1087"><start>11:50</start><duration>00:50</duration><room>Ballroom C+D</room><title>VACUUM, Freezing &amp; Avoiding Wraparound</title><abstract>A simple introduction to how MVCC works and why we need to VACUUM. Covers changes in VACUUM and HOT from release to release and ends with a look at the future of this key aspect of Postgres internals.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1087/</url><track>DBA</track><persons><person id="17">Simon Riggs</person></persons></event></room><room name="Palais I-III"><event id="1090"><start>11:50</start><duration>00:50</duration><room>Palais I-III</room><title>The Importance of Query Profiling</title><abstract>Query profiling is an essential instrument for improving the performance of a PostgreSQL database server. First, most workloads are constantly drifting towards new usage patterns, so that existing optimisation gradually become outdated and lose their efficiency. Also, PostgreSQL itself evolves at a fast and steady pace, providing at every release several new capabilities as well as improved versions of some of the existing ones.

In this talk we review the current state of query profiling instrumentation, starting from log analysis tools such as pgBadger and then moving to real-time solutions, in particular pg_stat_statements and its variant pg_stat_plans. We will show concrete examples, and we will sketch comprehensive architectures for query profiling, concluding with a roadmap and wishlist discussion.
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1090/</url><track>Developer</track><persons><person id="34">Gianni Ciolli</person></persons></event></room><room name="Ballroom A+B"><event id="1057"><start>12:50</start><duration>00:50</duration><room>Ballroom A+B</room><title>Becoming a SQL Guru </title><abstract>When it comes to data, SQL is a vast and powerful language. That being said, it is difficult to know and properly utilize all of its functionality, especially considering that each RDBMS has its own dialect and feature set. In this talk, we will review the advanced SQL functionality available for you within PostgreSQL, enabling you to become the SQL guru of your team. We will explore examples and use cases for Common Table Expressions(including recursive queries), Correlated and Uncorrelated Subqueries, Analytical Window Functions(ie: Percentile, Running Aggregates, Rank), Lateral, and other less commonly known, but incredibly useful, features supported by PostgreSQL. This talk will provide you with the tools you need to write (or rewrite) performant, readable, and efficient queries, solve complex analytical questions, and make large data sets and complex data/analysis requests more manageable.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1057/</url><track>General</track><persons><person id="296">Stella Nisenbaum</person></persons></event></room><room name="Ballroom C+D"><event id="1076"><start>12:50</start><duration>00:50</duration><room>Ballroom C+D</room><title>Integrating PostgreSQL with Logstash for real-time monitoring</title><abstract>The Logstash pipeline is a very common framework that allows system administrators to monitor their distributed infrastructures using ElasticSearch and Kibana. In such cases, it is important that PostgreSQL, as a relevant and crucial component of such systems, could fit in this wider architecture.

In a very simplicistic scenario, log entries can be post-processed by Logstash through standard text log files, automatically produced by PostgreSQL.

However, through the 'redislog' extension, PostgreSQL can ship log entries directly to a Redis server in JSON format. The Redis server can act as a broker in a typical Logstash architecture. Once data is pulled out from Redis, entries are immediately pushed into ElasticSearch as JSON objects and made available to end users through the Kibana web interface.

In this presentation we will be exploring some future evolution of such an approach, including, for example, a generic implementation around AMQP.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1076/</url><track>DBA</track><persons><person id="4">Gabriele Bartolini</person><person id="186">Marco Nenciarini</person></persons></event></room><room name="Palais I-III"><event id="1034"><start>12:50</start><duration>00:50</duration><room>Palais I-III</room><title>An Introduction to PostgreSQL Triggers</title><abstract>Triggers are those little bits of code running in your database that gets executed when something happens that you care about. Whether you are a developer who puts all of your business logic inside of PL/pgSQL functions or someone who uses an ORM and wants to stay away from database code, you will likely end up using triggers at some point. The fact that the most recommend way of implementing table partitioning in PostgreSQL uses triggers accounts for the importance of understanding triggers.  

In this talk, we will step through examples of writing various types of triggers using practical uses cases like partitioning and auditing.

- The structure of a trigger 
- BEFORE vs AFTER triggers
- Statement Level vs Row Level triggers
- Conditional triggers
- Event triggers
- Debugging triggers
- Performance overhead of triggers

All of the examples will be done using PL/pgSQL so in addition to getting an overview of triggers, you will also get a good understanding of how to code in PL/pgSQL. There will be examples from conditionals to loops and cursors. </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1034/</url><track>Developer</track><persons><person id="209">Jim Mlodgenski</person></persons></event></room><room name="Other"><event id="1124"><start>13:40</start><duration>01:00</duration><room>Other</room><title>Lunch</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1124/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="1054"><start>14:40</start><duration>00:50</duration><room>Ballroom A+B</room><title>Linux tuning to improve PostgreSQL performance</title><abstract>Linux operating system has lots of tuning options which can change performance of your PostgreSQL installation drastically. For PostgreSQL, obviously, most important are storage-related options like vm.dirty*, IO elevators or filesystem mount options, but there are many more of them: CPU scheduler options, NUMA settings, or even power saving policy. 

The goal of this talk is to explain to DBAs and engineers how to use all this settings in order to match hardware configuration and PostgreSQL workload. </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1054/</url><track>DBA</track><persons><person id="88">Ilya Kosmodemiansky</person></persons></event></room><room name="Ballroom C+D"><event id="993"><start>14:40</start><duration>00:50</duration><room>Ballroom C+D</room><title>Efficiently Backing up Terabytes of Data with PgBackRest</title><abstract>PgBackRest is open source software developed to perform efficient backup on PostgreSQL databases that measure in tens of terabytes and greater. It supports per file checksums, compression, partial/failed backup resume, high-performance parallel transfer, asynchronous archiving, tablespaces, expiration, full/differential/incremental, local/remote operation via SSH, hard-linking, restore, and more. PgBackRest is written in Perl and does not depend on rsync or tar but instead performs its own deltas which gives it maximum flexibility. This talk by the author will introduce the features, give sample configurations, and discuss design philosophy.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/993/</url><track>DBA</track><persons><person id="274">David Steele</person></persons></event></room><room name="Palais I-III"><event id="1081"><start>14:40</start><duration>00:50</duration><room>Palais I-III</room><title>Profiling postgres with perf</title><abstract>In this session we'll discuss instrumenting PostgreSQL with linux' perf suite of profiling tools. Perf is tremendously useful to investigate performance issues, both in production scenarios and for development.

We'll cover:

* how to compile postgres to get meaningful profiles
* overview over the perf utilities
* taking and interpreting CPU profiles
* measuring lock contention for heavyweight-, lightweight- and spin-locks
* a short introduction over modern CPU architecture, and what that means for writing code and profiling code
* defining custom tracepoints, and what to use them for</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1081/</url><track>Hacker</track><persons><person id="140">Andres Freund</person></persons></event></room><room name="Ballroom A+B"><event id="1066"><start>15:40</start><duration>00:50</duration><room>Ballroom A+B</room><title>PostgreSQL as a Scalable Document Store</title><abstract>Two recent additions to the PostgreSQL ecosystem have turned PostgreSQL into an attractive solution as a horizontally scalable document store. JSONB enables fast operations and indexing of JSON documents, while the pg_shard extension transparently shards PostgreSQL tables across many machines and replicates the shards for high availability. pg_shard also seamlessly distributes SQL statements, without requiring changes to the application layer.

In this talk we will discuss how to turn PostgreSQL into a scalable document store using pg_shard and JSONB. We will discuss different ways of sharding your data, the various performance trade-offs when sharding your data, and how to effectively combine JSONB with non-JSONB columns. We conclude with a futuristic demo: a distributed table with JSONB columns, backed by a dynamically changing row and columnar store.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1066/</url><track>General</track><persons><person id="242">Marco Slot</person></persons></event></room><room name="Ballroom C+D"><event id="977"><start>15:40</start><duration>00:50</duration><room>Ballroom C+D</room><title>PostgreSQL Performance on EXT4, XFS, F2FS, BTRFS and ZFS</title><abstract>One of the most common question I'm asked by users and customer about configuring a Linux-based system for PostgreSQL is "What file fystem should I use to get the best performance?" Sadly, most of the recommendations is based on obsolete "common knowledge" passed from generation to generation. But in recent years the file systems improved a lot - we've seen both evolution of established file systems (EXT family, XFS, ...) and revolution in the form of BTRFS, ZFS or F2FS. And of course new kinds of hardware (SSDs) which certainly impacts the design of a file system.

I'm aware of benchmarks presented on Phoronix, but I consider them "informational" rather than a sound source of reliable data - I think we need much better benchmarks, so I've performed an extensive set of PostgreSQL benchmarks on a variety of file systems, with different configurations, etc.

This talk will present and discuss the results, and hopefully give some recommendations on which file system to use and how to configure it for PostgreSQL (and possibly for other applications).</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/977/</url><track>DBA</track><persons><person id="116">Tomas Vondra</person></persons></event></room><room name="Palais I-III"><event id="1009"><start>15:40</start><duration>00:50</duration><room>Palais I-III</room><title>Indexes don't mean slow inserts.</title><abstract>Write-optimized indexes for PostgreSQL.
Database indexing is a wide field of research. New fashion is write-optimized data structures, which helps to achieve optimal tradeoff between write performance and read performance. This presentation contains review of popular modern disk data storage algorithms, discussion about several generations of database engine algorithms: B-tree, LSM-trees (LevelDB, Cassandra), cache-oblivious arrays, Fractal Trees (Tokutek), not forgetting to mention their pros and cons. In this talk we introduce COLA - wirte-optimized access method for PostgreSQL, based on Cache-oblivious lookahead arrays algorithm. First working prototype of COLA AM has better write performance without significant slowing down the queries. We'll also discuss current issues of COLA development.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1009/</url><track>Hacker</track><persons><person id="279">Anastasia Lubennikova</person></persons></event></room><room name="Other"><event id="1131"><start>16:30</start><duration>00:30</duration><room>Other</room><title>Coffee</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1131/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="1103"><start>17:00</start><duration>00:50</duration><room>Ballroom A+B</room><title>Lightning Talks</title><abstract>Lightning Talks - the high intensity part of conference which only uses 5 minutes of attention span at a time.

The rules for Lightning Talks are easy: you can talk about anything, but not longer than 5 minutes. The audience really prefers the talks to be related to PostgreSQL (the worlds most advanced OpenSource Database, the project, the community, the conference, the ecosystem)

To optimally prepare for your awesome Lightning Talk: give your presentation as HTML, OpenOffice, PDF, PPT or Prezi to Harald Armin Massa hours before the scheduled time. If you cannot do that, please make sure your laptop/tablet/mobilephone is able to communicate with the projector, especially that you have all necessary adapters and Jobs-plugs and you have the correct drivers, settings and licences.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1103/</url><track>Keynotes</track><persons><person id="78">Harald Armin Massa</person></persons></event></room></day><day date="2015-10-30"><room name="Ballroom A+B"><event id="968"><start>09:30</start><duration>00:50</duration><room>Ballroom A+B</room><title>PostgreSQL Features I wish I learned earlier</title><abstract>Postgres has a lot of cool &amp; powerful features. In this talk I'll show you a few I wish I learned about earlier:

* .pg_service.conf
* pg_notify
* WITH queries
* WITH RECURSIVE queries
* REASSIGN OWNED

and probably some more things...</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/968/</url><track>General</track><persons><person id="267">Thomas Klausner</person></persons></event></room><room name="Ballroom C+D"><event id="1035"><start>09:30</start><duration>00:50</duration><room>Ballroom C+D</room><title>Debugging Your PL/pgSQL Code</title><abstract>PL/pgSQL is a very robust development language allowing you to write complex business logic. The downside is as the complexity of your functions grows, how do you debug them? We have all used RAISE statements to print out the progress of our functions, but they can quickly overwhelm your logs becoming useless. 

In this talk, we will:
- Walk through the setup of 2 key PostgreSQL extensions, the PL/pgSQL Debugger and the PL Profiler
- Demonstrate how the PL Profiler can identify problem areas in your functions
- Setting breakpoints in functions and triggers
- Stepping through PL/pgSQL functions
- Discuss the performance impact of running the extensions on production environments
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1035/</url><track>Developer</track><persons><person id="209">Jim Mlodgenski</person></persons></event></room><room name="Palais I-III"><event id="1069"><start>09:30</start><duration>00:50</duration><room>Palais I-III</room><title>GPGPU Accelerates PostgreSQL, Unlock the power of multi-thousand cores</title><abstract>Heterogeneous processor architecture is a direction of the recent semiconductor evolution. Major vendors tend to allocate more transistors on GPU cores than before, due to power consumption and dark silicon problems. It also means we are required to design software to pull out hardware capability, for better performance-investment ratio on hardware.

The upcoming PostgreSQL v9.5 has a fantastic functionality - custom-scan/join interface that allows extension to implement its own logic in addition to the built-in plans, like hash-join or nested-loop.
We implemented a custom-scan/join provider, named PG-Strom, that off-loads some CPU intensive workloads to GPU processors, for asynchronous and super parallel processing. It shows us a surprising performance improvement up to x10~x20 times faster in the heavy join and aggregation workloads, with no change of SQL query.
At the point of submission, it supports full table scan, hash-join, nested-loop and aggregation in GPU side, towards the multiple data types includes variable-length data.

This session will introduce brief features of GPU and CUDA, its implementation and characteristic algorithms, evaluation result towards field workload and our future roadmap.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1069/</url><track>Hacker</track><persons><person id="122">KaiGai Kohei</person></persons></event></room><room name="Other"><event id="1132"><start>10:20</start><duration>00:30</duration><room>Other</room><title>Coffee</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1132/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="926"><start>10:50</start><duration>00:50</duration><room>Ballroom A+B</room><title>My Love of Developing with the Postgres FDW...And how Production tested those Feelings</title><abstract>I couldn't wait to use the Postgres Foreign Data Wrapper (postgres_fdw) in a project; imagine being able to read and write data to many databases all from a single database!  I finally found a project where it made sense to use this amazing technology.

I mapped out my architecture and began to code, and realized there were some things that did not work as expected: I could not call remote functions or insert into a table with a serial primary key and have it autoupdate.  I found workarounds (which I will share), so the project went on.

We tested the setup, everything seemed to work well, and then we went to deploy to production.  And then the real fun began.

Despite the title, I still love the Postgres FDW but wanted to provide some cautionary tales from a hybrid developer/DBA perspective on how to properly use them in your working environment.  This talk will cover:

    * Basic Postgres FDW setup in a development environment vs. production environment
    * Handling some common FDW uses case that you think are trivial but are not
    * Working with advanced Postgres constructs such as schemas and sequences with FDWs
    * Putting it all together to make sure your production application is safe with your FDWs
    * ...and when you really, really need to make a remote call and it is not supported by a FDW, how to do that too!</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/926/</url><track>Developer</track><persons><person id="6">Jonathan S. Katz</person></persons></event></room><room name="Ballroom C+D"><event id="1051"><start>10:50</start><duration>00:50</duration><room>Ballroom C+D</room><title>Autovacuum, explained for engineers </title><abstract>What is autovacuum, how it works and why is it so important? In this talk, I will cover PostgreSQL MVCC and Undo-management basics, problems and hazards of misconfigured autovacuum, a couple of strategies on how to make your PostgreSQL installation feel happy about autovacuum. In addition I will show a couple of bloat-removing techniques and give some advices on how to monitor autovacuum activity in your database. </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1051/</url><track>DBA</track><persons><person id="88">Ilya Kosmodemiansky</person></persons></event></room><room name="Palais I-III"><event id="1093"><start>10:50</start><duration>00:50</duration><room>Palais I-III</room><title>How to provide your own  DBaaS: a practical story</title><abstract>The CERN Database on Demand service has now been in operation for the
last three years. Designed to scale, it currently manages about 240
single database instances from three different flavors: PostgreSQL,
MySQL and Oracle. It's a homemade solution providing enterprise level
RDMBS services to the CERN community.

This talk describes the architecture of our solution. How it combines
Openstack virtualization, plain physical servers and servers under a
clusterware software, and goes on to cover the new implementation of our
framework, which is being developed as an Open Source project
(e.g . https://github.com/cerndb/DBOD-core,
https://github.com/cerndb/dbod-api ). It also covers the storage based
functionality, NFS access protocol, which grounds critical  database services such as backup
and recovery implementation, and other aspects of the service such as
database monitoring monitoring, component upgrades, etc
</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1093/</url><track>General</track><persons><person id="302">ruben gaspar aparicio</person></persons></event></room><room name="Ballroom A+B"><event id="1067"><start>11:50</start><duration>00:50</duration><room>Ballroom A+B</room><title>Generic Editor for Hierarchical Data Running in the Browser</title><abstract>Tables/rows in SQL-databases, being joined by foreign keys, can be viewed as a tree-structure similar to a file explorer. Tables correspond to directories and rows to files. Each node in the tree is clearly defined  by its path. This path can be considered as the URI of the table or row under consideration.

Putting this together, we developed a generic, configurable JavaScript based editor with three main modules:
- JSON files, defining the tables and hierarchy under consideration.
- REST webservice, consuming the URIs. Based on [node.js](https://nodejs.org/)and [node-postges](https://github.com/brianc/node-postgres).
- HTML5 browser GUI as a single page application, implemented with the open source [Qooxdoo](http://qooxdoo.org/) framework.

Our solution avoids the creation of individually designed dialogs. It gives the feeling of a local application without reloading pages from the server.

In the talk, structures and details will be discussed and explained with the help of a live demo, based on a real industrial application.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1067/</url><track>General</track><persons><person id="121">Roland Sonnenschein</person></persons></event></room><room name="Ballroom C+D"><event id="1080"><start>11:50</start><duration>00:50</duration><room>Ballroom C+D</room><title>Scaling up PostgreSQL</title><abstract>Postgres has for a long time been lauded to handle concurrency well, being able to process more requests if additional resources (CPUs) are added. Unfortunately, after that had been determined many years ago, for a while not much further work had been put into the topic. But since then the number of cores and the general architecture of parallel systems have changed leading to a number of scalability problems. In the last few years a number of people worked hard on fixing these.

I'll talk about some of the major recent scalability improvements (9.2, 9.5, 9.6) that have improved postgres' scalability massively and what the biggest remaining scalability concerns are. Some of the remaining issues can mainly be addressed by changing Postgres, others can be worked around on the application side.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1080/</url><track>Hacker</track><persons><person id="140">Andres Freund</person></persons></event></room><room name="Palais I-III"><event id="1027"><start>11:50</start><duration>00:50</duration><room>Palais I-III</room><title>Locked Up: Advances in Postgres Data Encryption</title><abstract>Security advances in PostgreSQL have given users a range of new methods for data encryption. Varied end user authentications and greater precision in defining data for encryption are examples. This session will explore the kind of encryption now available in PostgreSQL and provide tutorials on how to deploy and utilize these new powers. The session cover:
* Password Storage Encryption
* Encryption For Specific Columns
* Data at rest Encryption
* Encrypting Passwords Across A Network
* Encrypting Data Across A Network
* SSL Host Authentication
* Client-Side Encryption</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1027/</url><track>DBA</track><persons><person id="201">Vibhor Kumar</person></persons></event></room><room name="Other"><event id="1125"><start>12:40</start><duration>01:00</duration><room>Other</room><title>Lunch</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1125/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="1078"><start>13:40</start><duration>00:50</duration><room>Ballroom A+B</room><title>Beyond PostGIS basics : more spatial!</title><abstract>Almost all of us already know PostGIS, the PostgreSQL extension to handle spatial data and take advantage of geographical data.

After a quick reminder of PostGIS basics, this presentation will showcase some advanced usage of PostGIS and other GIS-related products for PostgreSQL.

We will start this illustrated advanced GIS session with a few PostGIS analysis queries, presenting new features of the latest PostGIS 2.2 version.

Then, if any of you have raster data, you will see that you can use them to do raster/vector analysis in the database.

Going to another dimension, let's now use 3D data, mix and analyse it, with high performance thanks to 3D indexes. What about generating buildings directly inside PostgreSQL ?

Know these billions of points you have from LIDAR ? Get them into the database with PgPointCloud, and query it to get real height of all your buildings !

You want more SQL ? We will show how you can combine GIS and graph analysis on a water distribution network using recursive CTEs and KNN search.

One more thing : the recent OGR Foreign Data Wrapper lets you access all kind of GIS data transparently. Yes, you can even write OOXML files from within PostgreSQL - don't do that.

Last but not least, do not miss the PostGIS clock. Just because we can.

</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1078/</url><track>General</track><persons><person id="56">Vincent Picavet</person></persons></event></room><room name="Ballroom C+D"><event id="1088"><start>13:40</start><duration>00:50</duration><room>Ballroom C+D</room><title>Automate High Availability using repmgr 3</title><abstract>In this talk we will set up a High Availability cluster using repmgr version 3. Issues and best practices will be discussed, including:

- Automatic cluster configuration using Event Notification Commands

- Integration with other tools (pg_basebackup, PgBouncer, Barman)

- Switchover and maintenance

- Read scalability, node priority, cascading replication

- Automatic failover, witness nodes

- Roadmap and wishlist

repmgr is an open-source software to manage replication and failover between multiple PostgreSQL servers. The latest stable version is 3.0.1, released in March 2015.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1088/</url><track>DBA</track><persons><person id="34">Gianni Ciolli</person></persons></event></room><room name="Palais I-III"><event id="1068"><start>13:40</start><duration>00:50</duration><room>Palais I-III</room><title>Index internals</title><abstract>PostgreSQL includes several index types: GiST, SP-GiST, GIN, and of course, the regular B-tree. DBAs are familiar with using each of these for specific use cases, GIN for full-text search, GiST for geometrical data, and so on, but how do they work internally? What makes them suitable for the cases they're typically used for?

In this presentation, I will walk through the internal structure of each of these index types, explaining what strengths and weaknesses each one of them have.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1068/</url><track>Hacker</track><persons><person id="11">Heikki Linnakangas</person></persons></event></room><room name="Other"><event id="1133"><start>14:30</start><duration>00:30</duration><room>Other</room><title>Coffee</title><abstract /><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1133/</url><track>Breaks</track><persons /></event></room><room name="Ballroom A+B"><event id="951"><start>15:00</start><duration>00:20</duration><room>Ballroom A+B</room><title>The Elephants In The Room: Limitations of the PostgreSQL Core Technology</title><abstract>The core architecture of PostgreSQL is significantly different from that of competing products like Oracle, SQL Server, or MySQL, which also differ from each other. Some of PostgreSQL's distinctive features, such as our highly extensible systems for adding new data types and new foreign data wrappers, have been tremendously successful in propelling PostgreSQL forward. Others, such as our storage format and limited replication capabilities, have significantly impeded the adoption of PostgreSQL.

In this talk, I'll discuss some of the core architectural problems that I believe limit our success, based on my experiences working with EnterpriseDB customers, and will suggest some ways in which I believe the PostgreSQL architecture can evolve to meet those challenges.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/951/</url><track>Keynotes</track><persons><person id="264">Robert Haas</person></persons></event><event id="1084"><start>15:25</start><duration>00:20</duration><room>Ballroom A+B</room><title>PostgreSQL Core Roadmap</title><abstract>Who's working on which features, and why. A review of the latest development projects and insight into the features they will lead to over the next few releases of open source Postgres. Covers major developments in robustness, replication, query performance, scalability and distributed systems.</abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/1084/</url><track>Keynotes</track><persons><person id="17">Simon Riggs</person></persons></event><event id="967"><start>15:50</start><duration>00:15</duration><room>Ballroom A+B</room><title>15 years of PostgreSQL consulting: Memories</title><abstract>In the past 15 years of PostgreSQL consulting and support, a lot of funny and stunning stuff has happened all over the world. Hotels closing down during the days, 5 MB databases which needed a performance review, and a lot more. 
This one guides you through years of every day fun in the PostgreSQL world. </abstract><url>https://www.postgresql.eu/events/pgconfeu2015/schedule/session/967/</url><track>Keynotes</track><persons><person id="39">Hans-Jürgen Schönig</person></persons></event></room></day></schedule>