11. Implementasi Cloud: Panduan Fundamental Membedah Arsitektur PostgreSQL untuk Odoo Cloud Enterprise

271 views
Arsitektur Basis Data

Arsitektur Basis Data

Ilustrasi Arsitektur Basis Data Tingkat Enterprise

Mengapa Odoo Sangat Bergantung pada PostgreSQL?

PostgreSQL bukanlah sekadar tempat penyimpanan data; ia adalah detak jantung dari kerangka kerja Odoo Enterprise. Di balik layar, Odoo menggunakan skema Relasional Object Mapping (ORM) yang memetakan segala entitas perusahaan Anda—mulai dari ribuan kwitansi, pergerakan inventaris, hingga pelacakan jam masuk karyawan—secara langsung menjadi transaksi Database. Karena seluruh beban relasi komputasi dilakukan secara iteratif oleh Python di dalam server Odoo, maka arsitektur PostgreSQL tidak boleh mengalami kemacetan sedikit pun atau ia akan meruntuhkan keseluruhan lantai pabrik.
Oleh karena itu, penyetelan awal sangatlah penting. Kebanyakan spesialis meyakini bahwa menyisih RAM fisik sebanyak 25% hingga 40% secara khusus bagi parameter shared_buffers adalah keharusan mutlak. Sistem operasi Linux biasanya juga memiliki tembolok berkas (Page Cache)-nya tersendiri. PostgreSQL beroperasi berdampingan dengan Linux Page Cache, artinya jika shared_buffers dialokasikan melebihi 50%, akan timbul pembusukan sumber daya (Resource Starvation) karena Odoo dan OS akan berebut kapling memori kosong yang sama.

Misteri Multiversi Concurrency Control (MVCC)

Pada banyak sistem database konvensional purba, ada sebuah kondisi horor yang disebut "Read Lock". Artinya, jika kasir sedang menuliskan laporan keuangan tutup buku, maka manajer toko sama sekali tidak bisa membaca data keuangan tersebut hingga kasir selesai menuliskannya. Di dunia nyata ritel raksasa, menunggu selama ini tidak dapat ditoleransi. Beruntunglah, Odoo berjalan di atas arsitektur MVCC mutakhir milik PostgreSQL.
MVCC menjamin bahwa "Transaksi yang sedang membaca data tidak akan pernah mengunci mesin dari transaksi yang sedang menulis data, dan begitu juga sebaliknya." Ia membiarkan sistem mempertahankan berbagai versi dari satu tabel pada waktu yang terpisah, ibarat lembar riwayat dokumen Google Docs. Konsekuensinya, MVCC tentu menghasilkan Dead Tuples (Sampah baris usang) yang perlu dikemas dan dibuang secata periodik menggunakan proses siluman bernama Autovacuum.
sql
-- Contoh Penyetelan Fundamental di postgresql.conf
max_connections = 1200
shared_buffers = 4GB 
effective_cache_size = 12GB
work_mem = 32MB
maintenance_work_mem = 1GB

Kesimpulan Fundamental

Pada akhirnya, pondasi pertama bagi setiap direktur Teknologi Informasi adalah berinvestasi mendidik tim insinyurnya tentang bagaimana arsitektur Linux merawat memori, dan mengkalibrasinya berbanding lurus terhadap konfigurasi dasar Postgres postgresql.conf. Jika pondasi ini sudah dipaku kencang, Odoo akan tetap berdiri meskipun ditimpa tsunami seribu pesanan daring bersamaan.