Ringkasan penyimpanan dalam cache di FUSE Cloud Storage

Cloud Storage FUSE menyediakan empat jenis caching opsional untuk membantu meningkatkan performa pengambilan data:

Ringkasan penyimpanan file dalam cache

Cache file Cloud Storage FUSE adalah cache baca berbasis klien yang memungkinkan pembacaan file berulang untuk disalurkan dari penyimpanan cache yang lebih cepat pilihan Anda. Cache file dinonaktifkan secara default.

Manfaat penyimpanan file dalam cache

  • Peningkatan performa: penyimpanan file ke cache meningkatkan latensi dan throughput dengan menyajikan operasi baca langsung dari media cache. Operasi I/O yang kecil dan acak dapat jauh lebih cepat jika disalurkan dari cache.

  • Gunakan kapasitas yang ada: penyimpanan file dalam cache dapat menggunakan kapasitas mesin yang disediakan yang ada untuk direktori cache Anda tanpa menimbulkan biaya untuk penyimpanan tambahan. Ini mencakup SSD Lokal yang dipaketkan dengan jenis mesin Cloud GPU seperti a2-ultragpu, a3-highgpu, Persistent Disk (yang merupakan boot disk yang digunakan oleh setiap VM), atau /tmpfs dalam memori.

  • Pengurangan biaya: cache ditemukan ditayangkan secara lokal dan tidak dikenai biaya operasi Cloud Storage atau jaringan.

  • Peningkatan total biaya kepemilikan untuk pelatihan AI dan ML: caching file meningkatkan penggunaan Cloud GPU dan Cloud TPU dengan memuat data lebih cepat, yang mengurangi waktu pelatihan, dan memberikan rasio harga-performa yang lebih besar untuk workload pelatihan AI dan ML.

Mengaktifkan dan mengonfigurasi cache file

Saat fitur mengaktifkan cache file, Anda menetapkan kolom dalam file konfigurasi FUSE Cloud Storage. Daftar berikut menjelaskan kolom yang dapat Anda gunakan untuk mengontrol penyimpanan file dalam cache:

  • Anda dapat mengontrol kapasitas maksimum dalam direktori cache yang ditentukan yang dapat ditempati oleh data yang di-cache dengan menyetel max-size-mb.

    Secara default, kolom max-size-mb ditetapkan ke nilai -1, yang memungkinkan data yang di-cache untuk bertambah hingga menempati semua kapasitas yang tersedia di direktori yang Anda tentukan sebagai nilai untuk cache-dir.

  • Anda dapat menentukan direktori untuk menyimpan data cache file menggunakan kolom cache-dir. Perlu diperhatikan bahwa penetapan direktori cache adalah prasyarat untuk mengaktifkan cache file.

  • Anda dapat mengontrol waktu kapan data yang di-cache menjadi tidak valid menggunakan kolom ttl-secs. Secara default, kolom ttl-secs disetel ke 60, yang menentukan 60 detik. Sebaiknya tingkatkan nilainya.

    Untuk detail selengkapnya tentang cara mengontrol pembatalan data yang di-cache, lihat Mengonfigurasi pembatalan validasi data cache. Untuk informasi selengkapnya tentang penghapusan data yang di-cache, lihat Penghapusan.

Pembacaan Acak & Parsial

Jika operasi baca file pertama dimulai dari awal file, atau mengimbangi 0, cache file Cloud Storage FUSE menyerap dan memuat seluruh file ke dalam cache, meskipun Anda hanya membaca dari subset rentang kecil. Hal ini memungkinkan pembacaan sebagian atau acak berikutnya dari objek yang sama disalurkan langsung dari cache.

Jika operasi baca pertama file dimulai dari mana saja selain offset 0, secara default Cloud Storage FUSE tidak memicu pengambilan file lengkap asinkron. Untuk mengubah perilaku ini agar Cloud Storage FUSE menyerap file ke cache pada pembacaan acak awal, tetapkan flag cache-file-for-range-read ke true. Sebaiknya aktifkan flag cache-file-for-range-read jika banyak operasi baca acak atau sebagian yang berbeda dilakukan pada objek yang sama.

Penggusuran

Penghapusan metadata dan data yang di-cache didasarkan pada algoritma yang paling jarang digunakan (LRU) yang dimulai setelah batas ruang yang dikonfigurasi per batas max-size-mb tercapai. Jika masa berlaku entri entri didasarkan pada TTL, panggilan Get metadata akan terlebih dahulu dilakukan ke Cloud Storage dan bergantung pada latensi jaringan. Karena data dan metadata dikelola secara terpisah, Anda mungkin mengalami satu entitas yang dikeluarkan atau dibatalkan validasinya, bukan yang lain.

Performa

Cache Cloud Storage FUSE berfungsi dengan direktori yang ditentukan pengguna yang didukung oleh penyimpanan pilihan Anda, seperti SSD Lokal, Persistent Disk, dalam memori tmpfs, atau Filestore. Performa cache Cloud Storage FUSE cocok dengan penyimpanan dasar yang digunakan oleh cache dengan overhead minimal. Untuk mempelajari performa penyimpanan cache lebih lanjut, lihat Praktik terbaik dan performa penyimpanan cache Cloud Storage FUSE.

Persistensi

Cache FUSE Cloud Storage tidak dipertahankan saat pelepasan dan dimulai ulang saat semua entri metadata dikeluarkan. Namun, data dalam cache file tidak dikeluarkan dan harus dihapus oleh pengguna, atau dapat digunakan kembali dalam operasi pemasangan berikutnya setelah metadata diisi lagi.

Keamanan

Saat Anda mengaktifkan penyimpanan cache, Cloud Storage FUSE akan menggunakan cache-dir yang ditentukan yang Anda tetapkan sebagai direktori dasar untuk cache tersebut guna mempertahankan file dari bucket Cloud Storage Anda dalam format yang tidak dienkripsi. Semua pengguna atau proses yang memiliki akses ke direktori cache ini dapat mengakses file tersebut. Sebaiknya batasi akses ke direktori ini.

Akses langsung atau multi-akses ke cache file

Menggunakan proses selain Cloud Storage FUSE untuk mengakses atau memodifikasi file dalam direktori cache dapat menyebabkan kerusakan data. Cache Cloud Storage FUSE bersifat khusus untuk setiap proses yang berjalan di Cloud Storage FUSE tanpa ada kesadaran di berbagai proses Cloud Storage FUSE yang berjalan pada mesin yang sama atau berbeda. Selanjutnya, direktori cache yang sama tidak boleh digunakan oleh proses FUSE Cloud Storage yang berbeda.

Jika beberapa proses Cloud Storage FUSE perlu dijalankan pada mesin yang sama, setiap proses FUSE Cloud Storage harus mendapatkan direktori cache khususnya sendiri, atau menggunakan salah satu metode berikut untuk memastikan data Anda tidak rusak:

  • Pasang semua bucket dengan cache bersama: gunakan pemasangan dinamis untuk memasang semua bucket yang dapat Anda akses dalam satu proses dengan cache bersama. Untuk mempelajari lebih lanjut, lihat Pemasangan dinamis FUSE Cloud Storage.

  • Mengaktifkan caching di bucket tertentu: Anda dapat mengaktifkan caching hanya pada bucket yang ditentukan menggunakan pemasangan statis. Untuk mempelajari lebih lanjut, lihat Pemasangan statis FUSE Cloud Storage.

  • Hanya meng-cache folder atau direktori tertentu: daripada memasang seluruh bucket, Anda dapat menggunakan opsi –only-dir untuk memasang dan meng-cache folder tingkat bucket tertentu saja. Untuk mempelajari lebih lanjut, lihat Memasang direktori dalam bucket.

Ringkasan cache statistik

Cache statistik FUSE Cloud Storage adalah cache untuk metadata objek yang meningkatkan performa untuk operasi yang khusus untuk atribut file seperti ukuran, waktu modifikasi, atau izin. Penggunaan cache statistik meningkatkan latensi dengan menggunakan data yang di-cache untuk menjalankan operasi, bukan mengirim permintaan objek statistik ke Cloud Storage. Secara default, cache statistik diaktifkan dengan nilai stat-cache-max-size-mb sebesar 32 MB dan nilai ttl-secs ditetapkan ke 60 detik. Sebaiknya tingkatkan kedua nilai tersebut. Untuk mempelajari caching statistik lebih lanjut, lihat Dokumentasi Semantik di GitHub.

Ringkasan jenis penyimpanan dalam cache

Cache jenis Cloud Storage FUSE adalah cache metadata yang mempercepat performa operasi metadata khusus keberadaan file atau direktori. Menggunakan jenis cache dapat mengurangi latensi dengan mengurangi jumlah permintaan yang dibuat ke Cloud Storage untuk memeriksa apakah file atau direktori ada dengan menyimpan informasi ini secara lokal. Secara default, cache jenis diaktifkan dengan nilai type-cache-max-size-mb sebesar 4 MB dan nilai ttl-secs selama 60 detik secara default. Sebaiknya tingkatkan kedua nilai tersebut. Untuk mempelajari cache jenis lebih lanjut, lihat Dokumentasi semantik di GitHub.

Menampilkan daftar ringkasan penyimpanan dalam cache

Cache daftar Cloud Storage FUSE adalah cache untuk respons direktori dan daftar file, atau ls, yang meningkatkan kecepatan operasi daftar. Pembuatan cache daftar sangat berguna untuk workload yang mengulangi listingan direktori lengkap sebagai bagian dari eksekusi, seperti operasi pelatihan AI/ML.

Cache daftar disimpan di memori dalam cache halaman, yang dikontrol oleh kernel berdasarkan ketersediaan memori, bukan cache statistik dan jenis, yang disimpan dalam memori mesin dan dikontrol oleh Cloud Storage FUSE.

Mengaktifkan penyimpanan daftar cache

Cache daftar dinonaktifkan secara default dan otomatis ditetapkan ke nilai 0. Anda dapat mengaktifkan pembuatan cache daftar menggunakan flag CLI --kernel-list-cache-ttl-secs atau kolom kernel-list-cache-ttl-secs dengan salah satu nilai berikut:

  • Nilai positif yang merepresentasikan TTL dalam hitungan detik untuk mempertahankan respons daftar direktori dalam cache halaman kernel.

  • Nilai -1 untuk mengabaikan masa berlaku entri dan menampilkan respons daftar dari cache jika tersedia.

Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan dan mengonfigurasi penyimpanan dalam cache daftar, lihat file konfigurasi FUSE Cloud Storage.

Mengonfigurasi pembatalan validasi cache

Bagian berikut menjelaskan cara mengonfigurasi pembatalan cache untuk semua jenis cache. Pembatalan validasi cache dikontrol oleh time to live (TTL), saat data yang di-cache menjadi tidak valid setelah TTL habis masa berlakunya.

Pembatalan validasi cache file, statistik, dan jenis

Kolom ttl-secs menentukan durasi penggunaan metadata yang di-cache sejak diambil dari Cloud Storage.

Anda dapat mengonfigurasi ttl-secs dalam file konfigurasi FUSE Cloud Storage.

Saat Anda menentukan nilai untuk ttl-secs yang lebih besar dari 0, metadata untuk cache file akan tetap valid selama jangka waktu yang Anda tentukan. Nilai default 60 ditetapkan untuk ttl-secs. Untuk menyimpan file dalam cache, sebaiknya tingkatkan nilai ttl-secs berdasarkan perkiraan waktu antar pembacaan berulang, sekaligus menyeimbangkan kebutuhan konsistensi. Berdasarkan nilai penting dan frekuensi perubahan data, sebaiknya tetapkan nilai ttl-secs setinggi yang dimungkinkan oleh workload Anda. Jika entri metadata menjadi tidak valid, pembacaan berikutnya akan dikueri dari Cloud Storage.

Selain menentukan nilai yang mewakili jumlah detik, flag ttl-secs juga mendukung nilai 0 dan -1.

  • Nilai ttl-secs dari 0: saat Anda memasukkan nilai 0, flag ttl-secs memastikan bahwa file terbaru dibaca dengan melakukan panggilan Get metadata ke Cloud Storage yang memeriksa file asalnya untuk memastikan cache tersebut konsisten. Jika file dalam cache sudah yang terbaru, file akan ditayangkan langsung dari cache. Performa kurang efektif dibandingkan jika Anda menentukan nilai ttl-secs selain 0 karena panggilan harus selalu dilakukan ke Cloud Storage untuk memeriksa metadata terlebih dahulu. Jika file ada dalam cache dan tidak berubah, file akan ditayangkan dari cache secara konsisten setelah panggilan Get metadata.

  • Nilai ttl-secs dari -1: saat Anda memasukkan nilai -1, file selalu dibaca dari cache, jika tersedia, tanpa memeriksa konsistensi. Inferensi file tanpa memeriksa konsistensi dapat mengirimkan data yang tidak konsisten, dan hanya boleh digunakan sementara untuk workload yang berjalan dalam tugas dengan data yang tidak berubah. Misalnya, menggunakan nilai -1 berguna untuk pelatihan machine learning, dengan data yang sama dibaca di beberapa epoch tanpa perubahan.

Mencantumkan pembatalan validasi cache

Saat Anda menentukan nilai untuk kernel-list-cache-ttl-secs yang lebih besar dari 0, respons daftar direktori akan disimpan dalam cache halaman kernel dan tetap valid selama jumlah waktu yang Anda tentukan. Secara default, cache daftar dinonaktifkan dan disetel ke nilai 0. Saat Anda menentukan nilai -1, Cloud Storage FUSE akan menonaktifkan akhir masa berlaku cache daftar dan menampilkan respons daftar dari cache saat tersedia.

Membaca jalur untuk data yang di-cache

Cache FUSE Cloud Storage mempercepat pembacaan berulang setelah diserap ke cache. Pembacaan pertama dan cache tidak ditemukan langsung masuk ke Cloud Storage dan tunduk pada latensi jaringan Cloud Storage normal.

Pertimbangan

  • Menggunakan Cloud Storage FUSE dengan caching file, caching statistik, caching jenis, atau cache daftar diaktifkan dapat meningkatkan performa, tetapi mengurangi konsistensi. Untuk mempelajari lebih lanjut, lihat Dokumentasi Semantik di GitHub.

  • Jika entri cache file belum habis masa berlakunya berdasarkan TTL-nya dan file ada dalam cache, seluruh operasi akan disajikan dari cache klien lokal tanpa perlu mengeluarkan permintaan ke Cloud Storage.

  • Jika masa berlaku entri cache file telah habis berdasarkan TTL-nya, panggilan Get metadata akan dilakukan terlebih dahulu ke Cloud Storage, dan jika file tidak ada dalam cache, file tersebut akan diambil dari Cloud Storage. Kedua operasi ini tunduk pada latensi jaringan. Jika entri metadata tidak valid, tetapi file berada di cache, dan pembuatan objeknya tidak berubah, file akan ditayangkan dari cache hanya setelah panggilan Get metadata dilakukan untuk memeriksa apakah data valid.

  • Jika klien Cloud Storage FUSE mengubah file yang di-cache atau metadatanya, file tersebut akan langsung dibatalkan validasinya dan konsistensinya dipastikan setelah dibaca oleh klien yang sama. Namun, jika klien yang berbeda mengakses file yang sama atau metadatanya, dan entrinya di-cache, versi file atau metadata yang di-cache akan dibaca, bukan versi yang diupdate, sampai file tersebut dibatalkan validasinya oleh setelan TTL klien tersebut.

Langkah selanjutnya