Ringkasan penyimpanan dalam cache di FUSE Cloud Storage

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

Ringkasan penyimpanan file dalam cache

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

Manfaat penyimpanan file dalam cache

  • Performa yang lebih baik: caching file meningkatkan latensi dan throughput dengan menyajikan pembacaan langsung dari media cache. Operasi I/O kecil dan acak dapat lebih cepat secara signifikan jika disalurkan dari cache.

  • Gunakan kapasitas yang ada: cache file dapat menggunakan kapasitas mesin yang disediakan yang sudah ada untuk direktori cache Anda tanpa menimbulkan biaya 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.

  • Biaya lebih sedikit: cache yang ditemukan ditampilkan secara lokal dan tidak dikenai biaya operasi atau jaringan Cloud Storage.

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

Mengaktifkan dan mengonfigurasi cache file

Saat mengaktifkan fitur caching 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 di 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 sehingga data yang di-cache dapat bertambah hingga menempati semua kapasitas yang tersedia di direktori yang Anda tetapkan sebagai nilai ke cache-dir.

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

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

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

Pembacaan Acak & Sebagian

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

Jika operasi baca pertama file dimulai dari mana saja selain offset 0, Cloud Storage FUSE, secara default, 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.

Penghapusan

Penghapusan metadata dan data yang di-cache didasarkan pada algoritme yang paling lama tidak digunakan (LRU) yang dimulai setelah nilai minimum ruang yang dikonfigurasi per max-size-mb tercapai. Jika masa berlaku entri habis berdasarkan TTL-nya, panggilan Mendapatkan 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 dikeluarkan atau dibatalkan validasinya, dan tidak dengan entitas lainnya.

Performa

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

Persistensi

Cache FUSE Cloud Storage tidak dipertahankan saat dilepas 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 kembali.

Keamanan

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

Akses langsung atau beberapa akses ke cache file

Menggunakan proses selain Cloud Storage FUSE untuk mengakses atau mengubah file dalam direktori cache dapat menyebabkan kerusakan data. Cache Cloud Storage FUSE bersifat khusus untuk setiap proses Cloud Storage FUSE yang berjalan tanpa kesadaran di berbagai proses Cloud Storage FUSE yang berjalan di komputer 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 di mesin yang sama, setiap proses Cloud Storage FUSE harus mendapatkan direktori cache spesifiknya sendiri, atau menggunakan salah satu metode berikut untuk memastikan data Anda tidak rusak:

  • Memasang 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.

  • Aktifkan caching pada bucket tertentu: Anda dapat mengaktifkan caching hanya pada bucket tertentu 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 level bucket tertentu saja. Untuk mempelajari lebih lanjut, lihat Memasang direktori dalam bucket.

Ringkasan penyimpanan statistik dalam cache

Cache statistik FUSE Cloud Storage adalah cache untuk metadata objek yang meningkatkan performa operasi khusus untuk atribut file, seperti ukuran, waktu modifikasi, atau izin. Menggunakan cache statistik akan meningkatkan latensi dengan menggunakan data yang disimpan dalam 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 cache 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 untuk keberadaan file atau direktori. Penggunaan cache jenis meningkatkan latensi dengan mengurangi jumlah permintaan yang dibuat ke Cloud Storage untuk memeriksa apakah ada file atau direktori, atau dengan menyimpan informasi ini secara lokal. Secara default, jenis cache diaktifkan dengan nilai type-cache-max-size-mb sebesar 4 MB dan nilai ttl-secs detik 60 secara default. Sebaiknya tingkatkan kedua nilai tersebut. Untuk mempelajari jenis cache lebih lanjut, lihat Dokumentasi semantik di GitHub.

Mengonfigurasi pembatalan cache

Kolom ttl-secs menentukan berapa lama metadata tetap valid dalam cache file. Kolom ini menunjukkan waktu aktif (TTL) data yang disimpan dalam cache, tempat data yang di-cache akan dibatalkan validasinya setelah TTL berakhir. Jika entri metadata menjadi tidak valid, pembacaan berikutnya akan dikueri dari Cloud Storage.

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

Saat Anda menentukan nilai untuk ttl-secs yang lebih besar dari 0, metadata untuk cache file tetap valid hanya selama jumlah waktu yang Anda tentukan. Nilai default 60 ditetapkan untuk semua jenis cache. Untuk menyimpan file dalam cache, sebaiknya tingkatkan nilai ttl-secs berdasarkan perkiraan waktu antara pembacaan berulang sambil menyeimbangkan kebutuhan konsistensi. Berdasarkan pentingnya dan frekuensi perubahan data, sebaiknya tetapkan nilai ttl-secs setinggi yang diizinkan beban kerja Anda.

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, tanda ttl-secs akan memastikan bahwa file terbaru dibaca dengan melakukan panggilan Get metadata ke Cloud Storage yang memeriksa file asal penyimpanan tersebut untuk memastikan konsistensi cache. Jika file dalam cache sudah yang terbaru, file tersebut akan disalurkan langsung dari cache. Performa kurang efektif dibandingkan saat Anda menentukan nilai ttl-secs selain 0 karena panggilan harus selalu dilakukan ke Cloud Storage untuk memeriksa metadata terlebih dahulu. Jika file berada di cache dan tidak berubah, file akan disalurkan dari cache secara konsisten setelah panggilan Dapatkan metadata.

  • Nilai ttl-secs dari -1: saat Anda memasukkan nilai -1, file selalu dibaca dari cache, jika tersedia, tanpa memeriksa konsistensi. Penayangan file tanpa memeriksa konsistensi dapat menyajikan 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, ketika data yang sama dibaca di beberapa epoch tanpa perubahan.

Membaca jalur untuk data yang di-cache

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

Pertimbangan

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

  • Jika masa berlaku entri cache file belum berakhir berdasarkan TTL-nya dan file tersebut berada di cache, seluruh operasi akan disalurkan dari cache klien lokal tanpa ada permintaan yang dikeluarkan ke Cloud Storage.

  • Jika masa berlaku entri cache file telah berakhir berdasarkan TTL-nya, panggilan Dapatkan metadata akan dilakukan ke Cloud Storage terlebih dahulu, dan jika file tidak ada dalam cache, file akan diambil dari Cloud Storage. Kedua operasi bergantung pada latensi jaringan. Jika entri metadata telah dibatalkan, tetapi file berada di cache, dan pembuatan objeknya tidak berubah, file akan ditayangkan dari cache hanya setelah panggilan metadata Get 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 konsistensi dipastikan akan terjaga dalam pembacaan berikut oleh klien yang sama. Namun, jika klien yang berbeda mengakses file yang sama atau metadatanya dan entrinya disimpan dalam cache, versi file atau metadata yang di-cache akan dibaca, bukan versi yang diupdate, hingga file tersebut dibatalkan validasinya oleh setelan TTL klien tertentu.

Langkah selanjutnya