Dharin Shah
Optimizing Discovery: PostgreSQL's Role in Transforming GetYourGuide's Search
#1about 4 minutes
Understanding the original search architecture at GetYourGuide
The previous system used OpenSearch for marketplace data and PostgreSQL for availability, coordinated by a central API layer.
#2about 2 minutes
Identifying the limitations of the OpenSearch implementation
The OpenSearch setup lacked relational joins, had a complex query DSL, and suffered from performance issues and high maintenance overhead.
#3about 2 minutes
Why PostgreSQL was chosen for the migration
PostgreSQL was selected for its mature relational capabilities, JSONB support with GIN indexes, lower operational complexity, and team familiarity with SQL.
#4about 3 minutes
Analyzing PostgreSQL performance concerns for search queries
Initial concerns focused on the performance of GIN indexes, which rely on bitmap heap scans instead of faster index-only scans.
#5about 3 minutes
The challenge of real-time aggregations in PostgreSQL
OpenSearch excels at aggregations due to compressed data structures like roaring bitmaps, a feature not natively available in PostgreSQL for OLTP workloads.
#6about 2 minutes
Designing a hybrid schema and query pattern
The solution involved a denormalized schema using array columns with GIN and BRIN indexes, queried via a "single query, multiple data" (SQMD) pattern using CTEs.
#7about 2 minutes
Implementing dynamic queries and caching strategies
High-cardinality aggregation queries were cached, while the jOOQ library was used to dynamically generate complex SQL from the internal search DSL.
#8about 2 minutes
Operational benefits and limitations of using AWS Aurora
While AWS Aurora provided easy scaling with read replicas, it limited the use of specialized PostgreSQL extensions like roaring bitmaps for performance tuning.
#9about 3 minutes
Handling large objects and replication conflicts
Storing large JSON blobs triggered PostgreSQL's TOAST mechanism, which required tuning and led to replication conflicts on read replicas during vacuum operations.
#10about 3 minutes
Migration results and future roadmap
The migration resulted in a 40% end-to-end latency improvement, and future plans include consolidating text search into PostgreSQL and removing the caching layer.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
02:11 MIN
Migrating from MongoDB to Postgres for data reliability
Scaling: from 0 to 20 million users
03:19 MIN
Evaluating PostgreSQL vs DynamoDB for the new database
Swapping Low Latency Data Storage Under High Load
05:49 MIN
Q&A on pagination and database compatibility
Rapid GraphQL API Development with PostGraphile
04:17 MIN
Analyzing Postgres performance for fraud detection
Leveraging Real time data in FSIs
03:31 MIN
Q&A on indexing, aggregations, and OpenSearch vs Elasticsearch
Search and aggregations made easy with OpenSearch and NodeJS
02:07 MIN
Load testing the database solutions under production load
Swapping Low Latency Data Storage Under High Load
01:22 MIN
Switching from a JSON file to a Postgres database
Meet Your New BFF: Backend to Frontend without the Duct Tape
03:40 MIN
Results of the migration and Q&A
Swapping Low Latency Data Storage Under High Load
Featured Partners
Related Videos
Database Magic behind 40 Million operations/s
Jürgen Pilz
Rapid GraphQL API Development with PostGraphile
Ruwan Xaviour Fernando
Scaling: from 0 to 20 million users
Josip Stuhli
Postgres in the Age of AI (and Devin)
Nikita Shamgunov
How building an industry DBMS differs from building a research one
Markus Dreseler
Making Data Warehouses fast. A developer's story.
Adnan Rahic
Swapping Low Latency Data Storage Under High Load
George Asafev
GraphQL: Does it replace SQL, REST or Something Else?
Gregor Bauer
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

AUTO1 Group SE
Berlin, Germany
Intermediate
Senior
ELK
Terraform
Elasticsearch


Ferdinand Bilstein GmbH + Co. KG
Ennepetal, Germany
Intermediate
Senior
PostgreSQL

CONTIAMO GMBH
Berlin, Germany
Senior
Python
Docker
TypeScript
PostgreSQL




SMG Swiss Marketplace Group
Canton de Valbonne, France
Senior
