Pinterest baru-baru ini telah mengemas kini dan mempertingkatkan pangkalan data waktu siri Goku. Pembaharuan ini menumpukan pada pengoptimuman penyimpanan dan penggunaan sumber tanpa mengorbankan kualiti perkhidmatan.
Goku adalah enjin pangkalan data yang dibangunkan secara dalaman oleh Pinterest untuk mengatasi beberapa had yang terdapat dalam OpenTSDB. Anda boleh baca lebih lanjut tentang apa yang mendorong Pinterest dalam artikel ini.
Dalam post blog terkini, pasukan Goku telah memperkenalkan dua ciri baru—ruang nama metrik dan kaedah untuk mengenal pasti metrik yang berat untuk penulisan—yang telah membantu pasukan Observability mengurangkan data yang disimpan di Goku. Inovasi ini telah menangani masalah penyimpanan dengan hebat. Ruang nama metrik membantu mengatur konfigurasi metrik, dan sistem pengenalan metrik utama membantu menghalang data tidak perlu, sehingga menyusutkan siri waktu yang disimpan sebanyak 37%.
Konfigurasi ruang nama (Fig 1) disimpan dalam fail konfigurasi berkongsi dinamik yang dipantau oleh semua host dalam ekosistem Goku (Fig 2). Setiap kali fail ini berubah, proses Goku yang berjalan di host diberitahu dan akan menyemak kandungan baru untuk memahami perubahan yang berlaku.
Beberapa perubahan seni bina telah dibuat untuk mengurangkan kos infrastruktur. Peningkatan pengindeksan untuk nama metrik telah menjimatkan penggunaan memori daripada 12 GB kepada 3 GB bagi setiap host. Ditambah lagi, pengenalan pengkodingan kamus dalam Goku Compactor berjaya menyelesaikan masalah kehabisan memori, membenarkan penggunaan perkakasan yang lebih murah.
Pinterest juga fokus pada pengoptimuman pengagihan memori. Dengan mengatasi masalah pecahan dalaman dan memori yang terlebih agih, pasukan telah mencapai penjimatan memori yang ketara. Contohnya, perubahan pada struktur folly::IOBuf telah mengurangkan penggunaan memori sebanyak 8–11 GB bagi setiap host.
Algoritma pemampatan waktu siri sangat penting untuk menyimpan dan memproses jumlah besar data berlabel waktu. Algoritma ini mengurangkan saiz data dengan mengenal pasti corak dan pengulangan, yang membolehkan pemprosesan query yang lebih cepat dan kos penyimpanan yang lebih rendah. Teknik seperti pengkodingan delta, pengkodingan delta-of-delta, dan pemampatan XOR digunakan untuk mencapai kecekapan penyimpanan yang signifikan. Sebagai contoh, TimescaleDB, sebuah pangkalan data waktu siri sumber terbuka, menggunakan algoritma ini untuk mencapai kecekapan penyimpanan lebih dari 90%, sekali gus menjadikan penghematan kos yang besar dan prestasi query yang lebih baik.
Meta, dalam pangkalan data Gorilla mereka, juga memanfaatkan teknik pemampatan seperti delta-of-delta timestamps dan nilai floating point XOR untuk mengurangkan jejak penyimpanan sebanyak 10x, yang meningkatkan kecekapan query. Maklumat lebih lanjut boleh didapati dalam kertas penyelidikan mereka.
Usaha Pinterest ini merupakan sebahagian daripada trend yang lebih luas dalam industri teknologi ke arah pengoptimuman sistem pengurusan data waktu siri. Inisiatif serupa termasuk FiloDB daripada Apple, Atlas daripada Netflix, M3 daripada Uber, Meta Gorilla, dan Argus daripada Salesforce. Projek-projek ini, seperti Goku, memberi tumpuan kepada pengurusan data waktu siri yang cekap dan ada yang tersedia sebagai penyelesaian sumber terbuka di platform seperti GitHub. Ini menunjukkan usaha kolektif ke arah infrastruktur data yang lebih scalable dan kos efektif.
Peningkatan ini telah membawa Pinterest kepada pencapaian pengurangan penyimpanan waktu siri sebanyak 40% dan penurunan kos sebanyak 70%. Penambahbaikan ini membolehkan Pinterest menampung peningkatan 30% dalam pertumbuhan penyimpanan organik tanpa memerlukan kapasiti tambahan. Perbincangan berkaitan dengan perbelanjaan dan kecekapan observability boleh didapati di thread Reddit ini, di mana para profesional industri berkongsi pandangan dan penanda aras. Contohnya, serverlessmom di Reddit menyatakan:
Secara ringkas: di banyak syarikat, observability adalah kos kedua tertinggi selepas infrastruktur/hosting sebenar. Orang ramai membayar banyak untuk mengetahui apa yang software mereka lakukan.