Database Team Sessions
Overview
This issue is intended to organize team sessions, once a month, where we can share database knowledge with other folks within database and across GitLab too.
Goal
Organize video calls, with 40 min to 50 min duration, to share database topics with other team members. We'll have these sessions recorded to share on the database page and with other teams across GitLab.
Each session will focus on a different part of the database of what we maintain, and each session will demonstrate how we operate and manage the database at GitLab.
If the topic is too wide, the person responsible for the topic can choose to split it into more than one session.
Format
Free format. Each speaker can predefine the format of the presentation. We can use any assets, like:
- Slides
- Live demos
- Presentation Only
Topics
The topics (or themes) are organized to demonstrate how each part interconnects with each other, to show the lifecycle of a user connection until it finds its way to the database, with everything in between:
Engineering and Development
Database Reviews | Presented By put your handle here
-
- How to review for database
-
- How we can use pg.ai to measure the impact on the database
-
- How the changes can impact self-managed customers
Database Observability | Presented By put your handle here
-
- What are the tools we use to monitor database at GitLab?
-
- How do we collect metrics from the database?
-
- What are the metrics available to monitor the DB health?
Architecture
Patroni, PGBouncer | Presented By put your handle here
-
- What are Patroni and PGBouncer?
-
- How does the two work at GitLab?
-
- The DB connection life cycle
-
- How do the DB connections work: PgBouncer vs. direct connection
Working of db-testing pipeline project | Presented By put your handle here
-
- How does the project works?
-
- The lifecycle of the
db-testing pipeline
- The lifecycle of the
-
- How we test the migrations against a production clone
-
- How do we sample BBM
Replication & Logical | Presented By put your handle here
-
- How do we handle replication at GitLab?
-
- The role of WAL in replication
Database Load Balancing | Presented By put your handle here
-
- How does load balancing work at GitLab?
-
- What type of load balancing do we use?
-
- How do we check for readiness?
-
- Replicas, Sidekiq and Primary Stycking: How do we check if a node is up to date?
-
- How do we handle failovers?
Operations
Batched Background Migrations | Presented By put your handle here
-
- How does BBM works?
-
- The lifecycle of the BBM
-
- BBM scopes: How can a scope time out a BBM?
-
- How do we ensure idempotency?
-
- Batch optimizer
-
- BBM Health Checks
-
- BBM finalization and required stops
Customer Upgrades | Presented By put your handle here
-
- How do self-managed customers upgrade?
-
- How post-migrations work for zero downtime upgrades
-
- Most common database problems customers face when updating