Penyelesaian caching baharu yang dipanggil Pogocache telah dilancarkan, menjanjikan kependaman yang sangat rendah dan kecekapan tinggi untuk aplikasi yang memerlukan akses data pantas. Projek ini datang daripada Josh Tidwall, yang juga terkenal kerana mencipta alat sumber terbuka lain yang terkenal seperti Tile38 dan pakej Go gjson.
![]() |
---|
Halaman repositori GitHub Pogocache, di mana pembangun boleh mencari maklumat dan sumber berkaitan penyelesaian caching baharu ini |
Sokongan Multi-Protokol Menjadikannya Berbeza
Apa yang menjadikan Pogocache amat menarik ialah keupayaannya untuk bekerja dengan pelbagai protokol secara serentak. Pengguna boleh menyambung menggunakan permintaan HTTP, arahan Redis, atau bahkan sambungan klien PostgreSQL ke contoh cache yang sama. Fleksibiliti ini bermakna pembangun tidak perlu mengubah kod klien sedia ada mereka atau mempelajari API baharu - mereka boleh menggunakan apa jua protokol yang mereka sudah selesa dengannya.
Pendekatan multi-protokol juga membuka beberapa kemungkinan kreatif. Sebagai contoh, aplikasi web boleh menggunakan panggilan HTTP manakala perkhidmatan backend menggunakan arahan Redis, semuanya mengakses data cache yang sama.
Protokol yang Disokong:
- HTTP 1.1 dengan titik akhir gaya REST
- Arahan protokol Redis (set, get, delete, incr, decr, dll.)
- Protokol klien PostgreSQL
- Keserasian protokol Memcache
Prestasi Melalui Pengoptimuman Manual
Apabila ditanya mengenai dakwaan prestasi, pembangun menjelaskan bahawa Pogocache mencapai kelajuannya melalui pengoptimuman manual yang teliti dan bukannya bergantung pada mana-mana teknik terobosan tunggal. Tumpuan telah diberikan kepada meminimumkan pertentangan melalui teknik seperti hashmap bershard dan lapisan rangkaian yang dibuat dengan teliti.
Projek ini ditulis dalam ANSI C dan direka khusus untuk platform Linux dan macOS. Pendekatan peringkat rendah ini membolehkan kawalan ketat ke atas peruntukan memori dan sumber sistem, yang menyumbang kepada peningkatan prestasi.
Ciri-ciri Teknikal Utama:
- Ditulis dalam ANSI C untuk Linux/macOS
- Seni bina hashmap bershard untuk mengurangkan pertembungan
- Peruntukan memori rendah melalui perkongsian RAM yang dioptimumkan
- Pilihan perpustakaan boleh benam untuk integrasi langsung
- Sokongan TLS/HTTPS untuk sambungan selamat
- Mekanisme pengesahan boleh dikonfigurasi
Reka Bentuk Perpustakaan Boleh Dibenamkan
Tidak seperti kebanyakan pelayan cache yang berjalan sebagai proses berasingan, Pogocache juga boleh dibenamkan terus ke dalam aplikasi sebagai perpustakaan C. Pendekatan ini menghapuskan overhed rangkaian untuk aplikasi yang boleh mengintegrasikan cache terus ke dalam ruang proses mereka.
Reka bentuk boleh dibenamkan termasuk API C yang mudah dengan fungsi untuk operasi asas seperti operasi get, set, delete, dan increment. Ini menjadikannya boleh diakses oleh aplikasi yang ditulis dalam C atau bahasa yang boleh memanggil perpustakaan C.
Fungsi API C Teras:
pogocache_create()
- Memulakan instance cachepogocache_add()
- Menyimpan data dengan kuncipogocache_get()
- Mendapatkan data mengikut kuncipogocache_delete()
- Membuang data mengikut kuncipogocache_incr()
- Menambah nilai numerikpogocache_free()
- Membersihkan sumber
Rancangan Integrasi Pangkalan Data Masa Depan
Ahli komuniti menunjukkan minat khusus dalam rancangan integrasi pangkalan data projek ini. Pembangun menjelaskan bahawa daripada menjadi pangkalan data SQL penuh, Pogocache bertujuan untuk bekerja bersama pangkalan data sedia ada seperti SQLite, DuckDB, dan PostgreSQL sebagai lapisan caching telus untuk operasi baca.
Tidak berhasrat untuk menjadikan pogocache sebagai pangkalan data sql. Saya lebih suka mengekalkannya sebagai cache. Lebih kepada meneroka cara untuk bekerja dengan pangkalan data sedia ada seperti sqlite, duckdb, postgres. Seperti menyediakan operasi seperti proksi yang secara telus meng-cache bacaan sql.
Pendekatan ini boleh memberikan faedah prestasi yang ketara untuk aplikasi dengan beban kerja berat-baca sambil mengekalkan kerumitan sistem pangkalan data penuh secara berasingan.
Keselamatan dan Pengesahan
Versi semasa termasuk pengesahan asas melalui parameter kata laluan baris arahan, walaupun maklum balas komuniti menunjukkan minat dalam kaedah tambahan seperti pembolehubah persekitaran atau pengesahan berasaskan fail. Projek ini juga menyokong TLS/HTTPS untuk sambungan selamat.
Pogocache mewakili tambahan menarik kepada landskap caching, terutamanya untuk pembangun yang mahukan fleksibiliti sokongan protokol berbilang tanpa mengorbankan prestasi. Sifat boleh dibenamkan dan ciri integrasi pangkalan data yang dirancang boleh menjadikannya menarik untuk aplikasi yang memerlukan kedua-dua prestasi tinggi dan fleksibiliti penggunaan.
Rujukan: pogocache