18 poin oleh xguru 2021-04-20 | 1 komentar | Bagikan ke WhatsApp

Hal-hal yang dipelajari layanan push notification OneSignal saat mengoperasikan 75TB data di 40 server DB

  • Gambaran data: tabel subscribers dan notifications adalah yang paling besar

  • Bloat: fenomena ketika penggunaan kapasitas bertambah besar, kinerja melambat, dan membutuhkan daya komputasi lebih banyak

→ Table bloat: VACUUM

→ Index bloat: optimisasi Heap Only Tuple(HOT)

→ aktifkan autovacuum

→ otomatisasi table partitioning dengan ekstensi pg_partman

pg_repack dan pgcompacttable

  • Upgrade Database

pg_upgrdae memerlukan database offline sehingga bukan pilihan

→ siapkan server PostgreSQL versi baru secara terpisah dan gunakan logical replication dengan ekstensi pglogical

  • XID Wraparound

→ fitur MVCC(Multi Version Concurrency Control) di PostgreSQL menggunakan transaction ID 32-bit, sehingga bila transaksi sangat banyak bisa cepat melewati batas

→ penting untuk memantau sisa XID

autovacuum_freeze_max_age

  • Replica Promotion

→ untuk promosi Replica yang cepat, letakkan di belakang haproxy

  • Partitioning

→ PostgreSQL versi terbaru sudah memiliki fitur table partitioning bawaan

→ saat partitioning diperlukan, bila memungkinkan disarankan membaginya menjadi banyak partition

OneSignal berencana mengubah partitioning dari 16 ke 256, lalu ke 4096

  • Sharding

→ tidak ada dukungan bawaan

→ awalnya shard dilakukan dengan Tenant ID yang dibedakan berdasarkan rentang v4 UUID

→ saat ini sedang membuat data proxy yang memahami partition dan shard

1 komentar

 
xguru 2021-04-20