Closed mikeizbicki closed 2 years ago
Chuck asked good questions in class about monolithic architectures vs microservices and mono repos vs polyrepos. The two videos below address these questions. If you would like to watch these videos, you may substitute them for any of the videos above. (So the total number of videos you must watch is still 9, you now just have more choices.)
Mastering Chaos - a guide to microservices at netflix
Why Google Stores Billions of Lines of Code in a Single Repository
https://www.youtube.com/watch?v=W71BTkUbdqE
(If you watch this, keep in mind it's an old 2015 video and try to imagine the increase in scale over the last 7 years.)
Also, I'm just now realizing I never mentioned the kubernetes documentary in class. (Recall that k8s is like docker-compose on steroids.) The documentary covers the history of docker and k8s and some of the technical differences between the two. So you may also substitute the k8s documentary for one of the videos above if you'd like.
Note that the k8s documentary has 2 parts, and you must watch both parts to count as a single video
Is there a partial credit for this assignment or we need to complete 9 videos?
Thanks very much!
@Tonnpo Yes, there's partial credit. You'll get 1pt/video.
Pandora
20TB and Beyond
Leboncoin
Breaking Postgres at Scale
Citus
Data Modeling
ConvertFlow
The caching consistency problem was resolved by using the Postgres replication mechanism to invalidate the memcache in its own local region.
Garbage collection was scrapped in order to more efficiently use their memory
When instagram scaled up, they removed a lot of dead code through code optimization with a focus on lowering cpu operations in total. They also moved memory into a shared space to limit redundancy.
Originally reddit was only designed for a small amount of users, leading to them having to restructue their architecture for improved performance and reducing total latency
Reddit stores their comment trees in a denormalized listing with parent/child relationships, showing subsets at a time. They defer to offline job processing to do this.
Reddit splits up (queries) processing by creating multiple messages that deal with many parts of the job individually
Pandora
Always monitor syslog according to pandora, they mapped a lot of their hardware issues back thanks to syslog.
Pandora swapped from SLONY replication to STREAMING replication due to the 'fragility' of SLONY
Pandora decided to compromise consistency for availability. using an architecture intended for sharded databases, each shard keeps two or more databases in sync with the CLUSTR application.
PostgreSQL
Postgres uses a lot of their own custom data types, (mapping a value to things such as country name, language, etc) saving them billions of bytes over a large 20TB+ data set
Byte counting is extremely important on major data sets
Postgres utilizes 'Istores', similar to Hstor but for integers, useful for time series modeling.
Large databases
Pg_dumps are handled nightly from all their database servers, they encrypt it ans store it on an AWS storage gateway
Their servers have 3tb of ram, redundant power supplies, RAID10 disks
They use a mix of SQL and NOSQL
Breaking PostgresSQL at scale
Load balancing: It is important to know that replication lag exists, so in designing your app be careful to avoid syncronous read/write situations.
Keep shared_buffers to 16-32gb, it does not improve performance
Keep maintenence_work_mem around 256MB
Citus: Postgres at any scale
Distributed tables are limited by their unique constraints needing to include the distribution columns, missing triggers and table inheritance, and many foreign keys/join limitations.
Build pipelines using parallel operations
Citus is an opensource extension to postgres and is part of microsoft, it was started in turkey.
Data modeling, the secret sauce....:
Use JSON for staging tables, and hstore dynamic columns in reporting tables
Citus is a great distributed SQL execution engine
Citus is very scalable
Lessons learned scaling our SaaS on Postgres....:
Early on, they decided to scale using firebase, but they quickly ran out of credits and ran into more issues, eventually they moved to postgres extention Citus.
A lesson learned was that with scale you must expect parts of you tech stack to change
Clear out old data from hot storage in order to optimize margins
Instagram:
Reddit:
Pandora
20TB and Beyond
Large Databases, Lots of Servers, on Premises, in the Cloud
Breaking Postgres at Scale:
Citus:
Data Modeling, the secret sauce of building & managing a large scale data warehouse
Lesson learned scaling our SaaS on Postgres to 8+ billion
Scaling Instagram Infrastructure
1) To scale out means to build an infrastructure that allows us to use more hardware/servers when we need them, to scale up means to make each of these servers count, and to scale a dev to means to enable a fast-growing dev team to move fast without breaking things 2) In order to be ready for disasters and power outages, companies like Facebook conducts regular drills to make sure their services can serve users seamlessly even with the loss of a region, power outages, and human errors 3) Moving data centers closer to where users are will reduce the latency between users’ interactions on instagram
The Evolution of Reddit.com's Architecture
1) The load balancers take in requests from the users and splits them up into various pools of application servers in order to isolate different request paths 2) By partitioning vote queues based on the subreddit of the link being voted on, fewer processors were vying for the same locks concurrently which reduced the amount of time it took to process votes on reddit. 3) Tree structures can be tricky to manage and require extra maintenance/clean up because they are sensitive to ordering
Postgres at Pandora
1) Implementing an error monitoring system for postresql can help identify problems in faster and earlier, such as long duration transactions that exceed a threshold or blocked processes. 2) Pandora uses replication for a high availability solution for events like disaster recovery 3) When making major updates to the database such as upgrading to a new version of postrgresql or deploying a database schema change, users must be switched over to a read-only replica; in order to avoid this problem, pandora utilized CLUSTR
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
1) Requests that come from the internet are directed to the next available back-end by HAProxy. 2) Hiring for these intensive database jobs is very difficult because they can’t hire junior developers and the environment is demanding with little room for error 3) Its very painful to change your data model at a large scale (multiple terabytes)
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
1) Sometimes data can be subject to natural disasters, like if the Seine river floods, then many Parisian data centers would be compromised. 2) When scaling your startup, your RDMS is usually the most complicated part of your stack to manage. 3) It is important to continuously test pg_dumps, but also to maintain physical backups for large databases.
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
1) Replication lag can mess with the acidity of the database such that some reads won't pick up information from writes written in an earlier transaction. 2) Indexes take up disk space and slow query planning, so they should only be created to speed up queries we know are frequently executed, they are not just good to have. 3) Increasing maintenance_work_mem arbitrarily can slow down or break autovacuuming, so we must be careful when tuning this parameter.
Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
1) To build pipelines, use parallel operations. 2) Citus is an open source extension for Postgres that transforms it into a distributed database. 3) Citus was originally an open source project that was started in Turkey. Since it was acquired by Microsoft, it us now offered as a service on Azure.
Data modeling, the secret sauce of building & managing a large scale data warehouse | Citus Con 2022
1) Citus has a great distributed SQL execution engine. 2) Citus has built-in custom data types like HyperLogLog. 3) You should use JSON for staging tables.
Lessons learned scaling our SaaS on Postgres to 8+ billion events | Citus Con 2022
1) Create the right product before worrying about scale 2) Tech stack decisions can change, and you will learn what they should be over time 3) When facing slow database problems, there are probably solutions within your database that you just need to look and find, like Citus for Postgres.
Instragram:
Reddit:
Pandora:
PostgreSQL at 20TB and Beyond:
Large Databases, Lots of Servers, on Premises, in the Cloud:
Breaking Postgres at Scale:
Citus: Postgres at any Scale:
Data modeling, the secret sauce of building & managing a large scale data warehouse:
Lessons learned scaling our SaaS on Postgres to 8+ billion events:
Scaling Instagram Infra
The revolutions of Reddit.com Architecture:
Postgres at Pandora:
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of Postgres)
Large Databases, Lots of Servers, on Premises, in the cloud - Get them all (AdTech use of Postgres:
Breaking Postgres at Scale:
Citus: Postgres at any Scale:
Data Modeling:
Lessons learned scaling our SaaS on Postgres tp 8+billion events...
Scaling Instagram Infrastructure
The Evolution of Reddit.com's Architecture
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All!
Breaking Postgres at Scale
Citus: Postgres at any Scale
Lessons learned scaling our SaaS on Postgres to 8+ billion events
Mastering Chaos - A Netflix Guide to Microservices
Why Google Stores Billions of Lines of Code in a Single Repository
Instagram:
Reddit:
Pandora:
Postgres at 20TB and beyond:
Large Databases, Lots of Serves … :
Breaking Postgres at scale:
Citus: Postgres at any Scale:
Data modeling, the secret sauce of building & managing a large scale data warehouse:
Lessons learned scaling our SaaS on Postgres to 8+ billion events:
Scaling Instagram Infrastructure:
Mastering Chaos - A Netflix Guide to Microservices:
Why Google Stores Billions of Lines of Code in a Single Repository:
1. Scaling Instagram Infrastructure a. Instagram uses PostgreSQL for user, media, and friendship data. PostgreSQL allowed them to scale out into as many datacenters as the company wanted because databases can be easily replicated between datacenters. b. To optimize CPU usage, Instagram would identify functions that are used extensively and are stable (i.e., not frequently updated) and try to convert them to C (or some version of it) because C is faster. c. Instagram ships code whenever there is a difference between the main branch. There are 40-60 rollouts per data, which makes unit tests extremely important. 2. The Evolution of Reddit.com’s Architecture a. R2 is the original Reddit code monolith b. The vote queue pileup that the speaker talked about was due to lock contention. As concurrent updates on the vote count occurred, locks followed, and this slowed down the processing speed. The initial solution was to partition the vote queues. c. An autoscaler watches utilization metrics and increases/decreases desired capacity accordingly. This helps Reddit save money because they can request less resources from AWS during off-peak/peak times. 3. PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres) a. A materializer aggregates data from many servers and transfers it to many servers. It functions like map reduce with the added complication that it is a many server to many server transformation. b. AdTech is known for creating a lot of custom datatypes because when they are working with such large databases byte counting is something that pays off in the long-run with less storage costs. c. Autovaccum occurs by default when there are 50 rows plus 20% of the tables consisting of “dead” tuples. When you are working with a huge dataset, it makes sense to change these parameters because 20% of a 20TB table is still a lot of dead tuples 4. Data modeling, the secret sauce of building & managing a large scale data warehouse (The speaker is the Microsoft employee responsible for purchasing Citus) a. To do device centric aggregation, the team would need to query over 200GB of data b. The team uses indexes (both full and partial indexes) extensively to speed up their queries. Some commonly queried tables have 50+ indexes c. One database cluster utilizes is 1920 cores, 15TB of DRAM, and 960TB of premium SSD 5. Mastering Chaos - a guide to microservices at Netflix a. The CAP Theorem states that in the presence of a network partition, you must choose between consistency and availability. b. One challenge of a microservices system is the problem of “crossing the chasm” (i.e., when services need to depend on each other). This could mean network latency, congestion, or failure. c. Netflix uses the Fault Injection Testing (FIT) framework. It’s almost like a vaccine against possible network failures. Netflix will insert possible faults in their microservices and see how the rest of the network reacts. 6. Why Google Stores Billions of Lines of Code in a Single Repository a. Although everyone at the company works from head branch of the Google codebase, Google has an incredible number of testing layers to make sure that the code being merged to the head branch is well-written and free of bugs b. At the time of talk, the Google repository modified just as much code per week as the entire Linux kernel (i.e., millions of lines) c. The speaker cites her struggles working with distributed repos at a gaming company before Google. Each game was being built in its own repository, so it was very hard to merged changes across all the games 7. K8s documentary a. Docker was revolutionary in that it allowed for a portable software development process, and it made it easy to write code that could scale up. b. One reason that Kubernetes became the industry leader despite other competitors was because they decided to opensource the software, so they had a huge workforce of people contributing to the project. c. The people interviewed in the documentary express how they are disappointed that Kubernetes has been pitted against Docker. Kubernetes would not have happened if Docker did not become so popular. Kubernetes is essentially a system for operating docker containers at a large scale. 8. Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company) a. The phrase “premature optimization is the root of all evil” is very true for an early-stage SaaS company. The focus of the technology team should not be on figuring out which systems to use to best scale up the technology, but simply on creating the right product and gaining traction. b. PostgreSQL is a useful database system for early-stage companies. It’s easy to set up, it’s easy to deploy in today’s cloud infrastructure, and its open source so there is a huge community of people supporting the project. Because it powers companies that are working at massive scale, you can know that it will work well in the long-term c. Query performance on large databases can be improved through sharding which is a method for distributing a single dataset across multiple databases, which can then be stored on multiple machines. Citus is an extension for PostgreSQL that allows users to do database sharding. 9. Breaking PostgreSQL at scale a. For monitoring postgres databases, at a minimum you should be processing logs using pgbadger. Pg_stat_statements and pganalyze are valuable tools for operations managers. You should be aiming for basic health reports, query response times, and memory usage. b. Don’t create indexes on every variable. Indexes take up a lot of disk space, they increase insert time, and tend to add to planning times. Add indexes based on query patterns gathered from monitoring reports c. Never disable autovaccum in postgres. The speaker mentions that he gets dozens of calls from clients who ran into problems because they disabled autovaccum. You must accept that vacuuming takes a while and should be completed in full.
Scaling Instagram Infrastructure
https://www.youtube.com/watch?v=hnpzNAPiC0E
like
c to be searched in the postgres database because of the counter that was deleted from the cache and runs in 100ms but using a denormalized indexed database it reduces to 10s us. This still has a higher load issue but using the memcache lease operation on multiple django requests, they scaled out for better capacity, reliability and readiness for regional failure.Scale up means use as few CPU instructions as possible. Instagram created continuous profiling to collect data to gain codebase visibility to generate a call graph that helps improve productivity. With C profile, they reduce code in memory and use Async to proceed more request at once
Instagram handled automatic cache, defined relations without worrying about implementation, facilitated self service by production engineer and scaling by infrastructure engineers using TAO. TAO is a database + right to cache, which still uses mySQL and allows simplified models.
The Evolution of Reddit.com's Architecture
https://www.youtube.com/watch?v=nUcO7n4hek4
CDN is used at Reddit to make a lot of decision logic to figure out which path to direct users query to. It allow to have one reddit.com that is directed to multiple stack
r2 schema the code is monolithic Load balancers route requests to a distinct pool of identical servers, therefore if a comment is going slow for a particular page it doesn’t affect other users. Things are data models that are based in Postgres and memcache in front of them Cassandra is able to stay up with one node going down
Scaling out Reddit made it slower due to lock contention. So to fix the issue, Reddit used partitioning to decrease the lock, but it was still slow in 2012 which was due to outlier – domain listing – so they use split up processing. Lesson learned: have a timer in your code.
Postgres at Pandora
https://www.youtube.com/watch?v=Ii_Z-dWPzqQ&list=PLN8NEqxwuywQgN4srHe7ccgOELhZsO4yM&index=38
The reason why pandora switch to postgres was because: It was free, they wanted to be open source , have community support, Scale out and commodity hardware.
Originally all the replication of Pandora was slony based . It is an intrusive replication system that add his own trigger and disable your own so if you run a pg_dump on a slony replica and you restore that pg dump , your triggers are disabled so you refragmentation integration may be broken.
If you have a postgres version that has replication you no longer need to copy the WAL files over because they will be kept on the master system until no longer needed by the client
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
https://www.youtube.com/watch?v=BgcJnurVFag
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
https://www.youtube.com/watch?v=4GB7EDxGr_c
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
https://www.youtube.com/watch?v=eZhSUXxfEu0
Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
https://www.youtube.com/watch?v=kd-F0M2_F3I
Data modeling, the secret sauce of building & managing a large scale data warehouse (The speaker is the Microsoft employee responsible for purchasing Citus)
https://www.youtube.com/watch?v=M7EWyUrw3XQ&list=PLlrxD0HtieHjSzUZYCMvqffEU5jykfPTd&index=6
Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company)
https://www.youtube.com/watch?v=PzGNpaGeHE4&list=PLlrxD0HtieHjSzUZYCMvqffEU5jykfPTd&index=13
Scaling Instagram Infrastructure
The Evolution of Reddit.com's Architecture
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale
Breaking PostgreSQL as Scale
Citus: Postgres at any Scale
Data modeling, the secret sauce of building & managing a large scale data warehouse
Lessons learned scaling our SaaS on Postgres to 8+ billion events
Mastering Chaos - a guide to microservices at Netflix
Why Google Stores Billions of Lines of Code in a Single Repository
Scaling Instagram Infrastructure
The Evolution of Reddit.com's Architecture
Postgres at Pandora
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
Data modeling, the secret sauce of building & managing a large scale data warehouse (The speaker is the Microsoft employee responsible for purchasing Citus)
Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company)
Scaling Instagram Infrastructure
⁃ As a work around for the consistency and scaling issue that occurred when memcache was cross region, Instagram used a lease-get and fill/wait/usestale/hit call and response with the database. In this system, the memcache tells the calling application that it has permission to go to the database to fill the cache and subsequent calls do not schedule duplicate DB lookups for the same cache miss.
⁃ With code analysis tools, Instagram gets a lot of visibility into the code base: what paths through the code are being taken and what are the bottlenecks. This was used to alter their url generation usage and additionally rewrite some key python functions in Cython (rewritten in C to be used within the python codebase).
⁃ In addition to scaling out (number of servers) and scaling up (capacity of server), Instagram also created a framework (Tao) to abstract certain DB/caching functions to simplify models for devs and shorten ramp up time and feature development time.
The Evolution of Reddit.com's Architecture
Postgres at Pandora
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
⁃ Citus allows you to make your Postgres database distributed across many servers. In many cases, despite the additional network routing to the working nodes, many commands are quicker (like many inserts, instead leveraging the copy operation) because of parallelization.
⁃ Queries using “Unique” must within the distributed column because the server only knows if it is unique within the working machine. Similarly, there are complications for aggregation queries and the coordinator node sometimes needs to combine results returned by worker nodes. In sharing multiple tables on the same distributed column then you also still have the ability to create foreign keys and use joins as normal very efficiently (still possible otherwise but slower as a low is sent across the network).
⁃ The coordinator node can delegate queries when it sees that the where clause is on a distributed column.
Data modeling, the secret sauce of building & managing a large scale data warehouse (The speaker is the Microsoft employee responsible for purchasing Citus)
⁃ As part of Citus, there are some additional aggregate functions (todigest_percentile) that the coordinator node recognizes and uses in all of its merge coordination under the hood (in a distributed map reduce way).
⁃ In order to work around the count-distinct issues that occur in a distributed database, they use the hyperloglog algorithm for the query to create the denominator.
⁃ To reduce table size and reduce I/O time, much of the input data is in json format during staging but only parts of the original json object are selected and saved in hstore (key, value) columns.
Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company)
⁃ In the earliest stages of the startups history, scale was not as important as the product, but down the road too much data was being pulled into memory for a single node database and causing major latency issues cross-customer when a particular customer was creating a large report.
⁃ In order to make it through the scale up to 1 million uses the company temporarily used Firebase (on cloud credits) to patch the problem, but ultimately sharding on website_id was the permanent fix.
⁃ Reindexing their tables concurrently (with latest Postgres indices) and clearing out data from hot storage (older than 1 year) they were able to reduce cost when reaching the multibillion event level. They also hit the max value limit for the primary key and had to migrate from a smallint to a bigint by adding a new indexed column, backfilling it and then making it the new primary key.
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
Scaling Instagram Infrastructure
The Evolution of Reddit.com's Architecture
Postgres at Pandora
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of Postgres)
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
pg_dump
was a very slow replication to use for a database as big as Pandora’s (out-of-space issue is the 1% fail)1) Scaling Instagram Infrastructure
2) The Evolution of Reddit.com's Architecture
3) Postgres at Pandora
4) PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
5) Why Google Stores Billions of Lines of Code in a Single Repository
6) Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
7) Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
8) Data modeling, the secret sauce of building & managing a large scale data warehouse (The speaker is the Microsoft employee responsible for purchasing Citus)
9) Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company)
Scaling Instagram Infrastructure
The Evolution of Reddit.com's Architecture
PostgreSQL at Pandora
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company) Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
Data modeling, the secret sauce of building & managing a large scale data warehouse
Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company)
Due date: Monday, 2 May
Background: There are 9 videos linked below. Each video describes how a major company uses postgres, and covers some of their lessons learned. These videos were produced for various industry conferences and represent the state-of-the-art in managing large complex datasets. It's okay if you don't understand 100% of the content of each of the videos, but you should be able to get the gist of them all.
Instructions: Watch each video and write 3 facts that you learned from the video. Submit the assignment by replying to this post with your facts for all of the videos in a single reply. The assignment is worth 1 point per video.
Videos:
Scaling Instagram Infrastructure
https://www.youtube.com/watch?v=hnpzNAPiC0E
The Evolution of Reddit.com's Architecture
https://www.youtube.com/watch?v=nUcO7n4hek4
Postgres at Pandora
https://www.youtube.com/watch?v=Ii_Z-dWPzqQ&list=PLN8NEqxwuywQgN4srHe7ccgOELhZsO4yM&index=38
PostgreSQL at 20TB and Beyond: Analytics at a Massive Scale (AdTech use of postgres)
https://www.youtube.com/watch?v=BgcJnurVFag
Large Databases, Lots of Servers, on Premises, in the Cloud - Get Them All! (AdTech use of postgres)
https://www.youtube.com/watch?v=4GB7EDxGr_c
Breaking Postgres at Scale (how to configure postgres for scaling from 1GB up to many TB)
https://www.youtube.com/watch?v=eZhSUXxfEu0
Citus: Postgres at any Scale (Citus is a company specializing in scaling up postgres that Microsoft bought)
https://www.youtube.com/watch?v=kd-F0M2_F3I
Data modeling, the secret sauce of building & managing a large scale data warehouse (The speaker is the Microsoft employee responsible for purchasing Citus)
https://www.youtube.com/watch?v=M7EWyUrw3XQ&list=PLlrxD0HtieHjSzUZYCMvqffEU5jykfPTd&index=6
Lessons learned scaling our SaaS on Postgres to 8+ billion events (ConvertFlow, another adtech company)
https://www.youtube.com/watch?v=PzGNpaGeHE4&list=PLlrxD0HtieHjSzUZYCMvqffEU5jykfPTd&index=13