Saya perhatikan dalam keputusan desain Setting and expiration time
telah ditinggalkan. Saya membayangkan bahwa ini karena Anda memiliki ide tentang cara meniru fitur ini.
Kasus penggunaan yang ada dalam pikiran saya adalah membangun proxy terbalik yang di-cache di depan aplikasi web. Saya tahu bahwa halaman harus di-cache selama X menit.
Bisakah Anda menjelaskan sedikit tentang bagaimana Anda akan mendekati ini?
(Tidak yakin ini adalah tempat yang tepat untuk mengajukan pertanyaan.)
Sejauh yang saya mengerti desain groupcache, Anda tidak dapat membatalkan atau memperbarui item cache.Fitur ini telah ditinggalkan karena sangat sulit dalam sistem terdistribusi dan akan memerlukan algoritma konsensus yang mahal (misalnya paxos).
Namun Anda dapat membuat kunci cache unik setiap X menit dengan menyandikan informasi waktu di kunci cache itu sendiri. Misalnya "foo-12:30" mungkin secara unik menggambarkan item "foo" pada waktu 12:30. Aplikasi Anda kemudian dapat mengakses item ini hingga katakanlah 12:40. Pada saat ini, item baru, "foo-12:40" mungkin dibuat dan item lama ("foo-12:30") pada akhirnya akan kedaluwarsa setelah klien berhenti mengaksesnya.
Jika aplikasi terdistribusi Anda dapat memperbarui dan mengambil nomor revisi dengan cara yang konsisten (Anda dapat melakukannya misalnya dengan doozerd, zookeeper atau solusi database pilihan Anda), Anda juga dapat menyandikan nomor revisi ini sebagai bagian dari kunci cache. Atau, Anda mungkin juga dapat menggunakan tajuk HTTP "Terakhir Dimodifikasi" atau "ETag" sebagai semacam nomor revisi di proksi web Anda.
Ya, apa yang tux21b katakan. (sengaja ditinggalkan, setidaknya untuk saat ini).
Terima kasih @tux21b atas saran mengenai revisi!
Komentar yang paling membantu
Sejauh yang saya mengerti desain groupcache, Anda tidak dapat membatalkan atau memperbarui item cache.Fitur ini telah ditinggalkan karena sangat sulit dalam sistem terdistribusi dan akan memerlukan algoritma konsensus yang mahal (misalnya paxos).
Namun Anda dapat membuat kunci cache unik setiap X menit dengan menyandikan informasi waktu di kunci cache itu sendiri. Misalnya "foo-12:30" mungkin secara unik menggambarkan item "foo" pada waktu 12:30. Aplikasi Anda kemudian dapat mengakses item ini hingga katakanlah 12:40. Pada saat ini, item baru, "foo-12:40" mungkin dibuat dan item lama ("foo-12:30") pada akhirnya akan kedaluwarsa setelah klien berhenti mengaksesnya.
Jika aplikasi terdistribusi Anda dapat memperbarui dan mengambil nomor revisi dengan cara yang konsisten (Anda dapat melakukannya misalnya dengan doozerd, zookeeper atau solusi database pilihan Anda), Anda juga dapat menyandikan nomor revisi ini sebagai bagian dari kunci cache. Atau, Anda mungkin juga dapat menggunakan tajuk HTTP "Terakhir Dimodifikasi" atau "ETag" sebagai semacam nomor revisi di proksi web Anda.