- Diterbitkan pada
Bagaimana Notion menangani 200 miliar entitas data?
- Penulis

- Nama
- AbnAsia.org
- @steven_n_t
Segala sesuatu di Notion adalah sebuah blok—teks, gambar, daftar, baris database, bahkan halaman.

Arsitektur Notion dirancang untuk mendukung model data uniknya, yang berputar di sekitar "blok" - unit informasi dasar yang dapat mewakili berbagai jenis konten, seperti teks, gambar, dan entri database. Arsitektur ini memungkinkan pengalaman pengguna yang fleksibel dan dinamis, sehingga pengguna dapat membuat dan memanipulasi data dengan cara yang sangat dapat disesuaikan.
Fitur Utama Arsitektur Notion
- Model Data Berbasis Blok
Semua adalah Blok: Di Notion, semua konten dianggap sebagai blok. Blok adalah LEGO Notion. Ini termasuk teks, gambar, baris database, dan bahkan halaman lengkap. Setiap blok memiliki metadata yang terkait dan dapat diubah atau dipindahkan secara bebas dalam aplikasi.
Fleksibilitas: Model blok ini memungkinkan pengguna untuk mengatur informasi tanpa batasan yang ketat, sehingga lebih mudah untuk menyesuaikan dengan berbagai kasus penggunaan dan alur kerja.
- Desain Database
Database Relasional: Notion menggunakan PostgreSQL sebagai sistem database dasar. Awalnya, Notion beroperasi pada satu instance PostgreSQL, tetapi sekarang telah berkembang menjadi arsitektur yang lebih kompleks dengan sharding untuk mengelola beban data yang meningkat secara efektif.
Strategi Sharding: Sejak pertengahan 2023, arsitektur database Notion terdiri dari 96 server database yang dipartisi menjadi shard logis berdasarkan ID ruang kerja. Ini memastikan bahwa semua blok yang termasuk dalam ruang kerja tertentu disimpan bersama, sehingga memfasilitasi transaksi yang efisien dan konsisten.
- Skalabilitas dan Kinerja
Arsitektur Kluster: Penggunaan server kluster memungkinkan Notion untuk menskalakan database secara horizontal. Setiap shard direpresentasikan sebagai skema PostgreSQL, yang membantu dalam mengelola volume data yang meningkat sambil mempertahankan kinerja.
Interaksi API: Aplikasi klien berinteraksi dengan database melalui server API yang beroperasi pada server web Node.js. Pengaturan ini meningkatkan kinerja dengan mengelola koneksi secara efisien melalui connection pooling.
- Pengelolaan Data dan Pertumbuhan
Infrastruktur Danau Data: Notion telah menerapkan pipeline ELT (Ekstrak, Muat, Transformasi) untuk analisis data dan pelaporan, menggunakan alat seperti Fivetran untuk mengingest data dari PostgreSQL ke Snowflake untuk analisis lebih lanjut.
Pertumbuhan Data Cepat: Volume data blok di Notion telah berkembang secara signifikan - dari lebih dari 20 miliar blok pada awal 2021 menjadi lebih dari 200 miliar blok pada pertengahan 2024. Pertumbuhan ini memerlukan optimisasi terus-menerus dari strategi pengelolaan data mereka.
Mendesain Database di Notion
Membuat database di Notion sangat mudah dan melibatkan beberapa langkah:
Buat Blok Database: Pengguna dapat memulai database dengan mengetik /database di halaman Notion mana pun untuk mengakses berbagai jenis database (inline atau full-page).
Tambahkan Kolom dan Entri: Pengguna dapat mendefinisikan properti untuk setiap entri di database, termasuk jenis seperti teks, angka, tanggal, dll.
Sesuaikan Tampilan: Notion mendukung beberapa tampilan (tabel, papan, galeri) untuk memvisualisasikan data sesuai dengan preferensi pengguna.
Hubungkan Database: Pengguna dapat membuat hubungan antara database yang berbeda menggunakan properti yang terkait, sehingga meningkatkan keterhubungan data.
Arsitektur Notion menggabungkan model berbasis blok yang fleksibel dengan prinsip-prinsip manajemen database relasional yang kuat untuk menciptakan alat yang kuat untuk mengatur informasi. Infrastruktur yang dapat diskalakan dan desain yang ramah pengguna memungkinkan pengguna untuk mengelola dataset yang kompleks secara efektif sambil menyediakan alat yang diperlukan untuk penyesuaian dan kolaborasi. Campuran unik ini membuat Notion cocok untuk skenario produktivitas pribadi dan kolaborasi tim.
Awalnya, Notion menyimpan semua blok di database Postgres.
Pada saat itu, database Postgres menangani semua lalu lintas pengguna online hingga analisis dan pembelajaran mesin offline.
Pada 2021, mereka memulai perjalanan dengan ETL sederhana yang menggunakan Fivetran untuk mengingest data dari Postgres ke Snowflake, menggunakan 480 konektor untuk menulis 480 shard ke tabel Snowflake mentah setiap jam.
Tapi pendekatan ini memiliki beberapa masalah ketika data Postgres tumbuh:
❌ Mengelola 480 konektor Fivetran adalah mimpi buruk.
❌ Pengguna Notion memperbarui blok lebih sering daripada menambahkan yang baru. Pola pembaruan yang berat ini memperlambat dan meningkatkan biaya pengingestan data Snowflake.
❌ Konsumsi data menjadi lebih kompleks dan berat (beban kerja AI)
Pada 2022, mereka mengaktifkan arsitektur danau data internal yang mengingest data dari Postgres ke Kafka menggunakan Debezium, kemudian menggunakan Apache Hudi untuk menulis dari Kafka ke S3.
Harap dicatat bahwa versi bahasa Indonesia didukung oleh AI dan karena itu mungkin terjadi kesalahan kecil.
Penulis
Ai Base Network (ABN), ABN ASIA didirikan oleh orang-orang dengan akar yang kuat di dunia akademis, dengan pengalaman kerja di Amerika Serikat, Belanda, Hungaria, Jepang, Korea Selatan, Singapura, dan Vietnam. ABN Asia adalah tempat di mana akademik dan teknologi bertemu dengan peluang. Dengan solusi terdepan kami dan layanan pengembangan perangkat lunak yang kompeten, kami membantu bisnis untuk meningkatkan level dan bersaing di panggung global. Komitmen kami: Lebih Cepat. Lebih Baik. Lebih handal. Dalam kebanyakan kasus: Lebih murah juga.
Jangan ragu untuk menghubungi kami jika Anda membutuhkan layanan IT, konsultasi digital, solusi perangkat lunak siap pakai, atau jika Anda ingin mengirimkan permintaan proposal (RFP). Anda dapat menghubungi kami di [email protected]. Kami siap membantu Anda dengan semua kebutuhan teknologi Anda.

© ABN ASIA