Halaman ini menunjukkan cara menyelesaikan masalah terkait Firestore dalam mode Datastore.
Latensi
Tabel di bawah menjelaskan kemungkinan penyebab peningkatan latensi:
Penyebab latensi | Jenis operasi yang terpengaruh | Resolusi |
---|---|---|
Traffic berkelanjutan yang melebihi aturan 500-50-5. | baca, tulis |
Untuk peningkatan traffic yang cepat, mode Datastore akan mencoba menskalakan secara otomatis untuk memenuhi peningkatan permintaan. Saat mode Datastore diskalakan, latensi mulai menurun. Hotspot (kecepatan baca, tulis, dan hapus yang tinggi untuk rentang entity yang sempit) membatasi kemampuan mode Datastore untuk diskalakan. Tinjau cara mendesain untuk skalabilitas dan identifikasi hotspot di aplikasi Anda. |
Persaingan, baik dari pembaruan entitas tunggal terlalu sering atau dari transaksi. | baca, tulis |
Kurangi kecepatan tulis untuk setiap entitas. Tinjau konsistensi dan isolasi transaksi serta cara Anda menggunakan transaksi. |
Kueri penggabungan-gabungan lambat. | read |
Misalnya, kueri dengan beberapa filter kesetaraan (== )
tetapi tidak didukung oleh indeks komposit dapat menyebabkan kueri penggabungan-gabungan lambat.
Untuk meningkatkan performa, tambahkan indeks gabungan untuk kueri ini,
lihat
Mengoptimalkan indeks.
|
Pembacaan besar yang menampilkan banyak entity. | read | Gunakan kursor kueri untuk membagi pembacaan besar. |
Terlalu banyak penghapusan terbaru. | read Hal ini sangat memengaruhi operasi yang mencantumkan jenis dalam database. |
Jika latensi disebabkan oleh terlalu banyak penghapusan baru-baru ini, masalah akan otomatis teratasi setelah beberapa saat. Jika masalah tidak teratasi, hubungi dukungan. |
Fanout indeks, terutama untuk properti array. | write | Tinjau indeks yang meledak dan penggunaan properti array Anda. |
Kode Error
Bagian ini mencantumkan masalah yang mungkin Anda alami dan memberikan saran tentang cara memperbaiki masalah tersebut.
DEADLINE_EXCEEDED
DEADLINE_EXCEEDED A deadline was exceeded on the server.
Untuk mengatasi masalah ini, lihat panduan pemecahan masalah latensi.
ABORTED
Situasi berikut dapat meningkatkan error ABORTED
:
- Entitas menerima terlalu banyak pembaruan per detik.
- Pertentangan dari transaksi yang tumpang-tindih.
- Peningkatan traffic yang melebihi aturan 500-50-5 atau mengalami hot spot.
ABORTED Too much contention on these datastore entities. Please try again.
Atau
ABORTED Aborted due to cross-transaction contention. This occurs when multiple transactions attempt to access the same data, requiring Datastore mode to abort at least one in order to enforce serializability.
Untuk menyelesaikan masalah ini:
- Untuk peningkatan traffic yang cepat, mode Datastore akan mencoba menskalakan secara otomatis untuk memenuhi peningkatan permintaan. Saat mode Datastore diskalakan, latensi mulai menurun.
- Hotspot membatasi kemampuan mode Datastore untuk melakukan penskalaan, tinjau desain untuk skala guna mengidentifikasi hotspot.
- Tinjau persaingan data dalam transaksi dan penggunaan transaksi Anda.
- Kurangi kecepatan tulis untuk setiap entitas.
RESOURCE_EXHAUSTED
Situasi berikut dapat menyebabkan error RESOURCE_EXHAUSTED
:
Anda telah melampaui kuota paket gratis dan penagihan tidak diaktifkan untuk project Anda.
RESOURCE_EXHAUSTED Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.
Untuk menyelesaikan masalah ini:
- Tunggu reset harian kuota paket gratis atau aktifkan penagihan untuk project Anda.
INVALID_ARGUMENT
Situasi berikut dapat menyebabkan error INVALID_ARGUMENT
:
- Mencoba melakukan entity dengan nilai properti diindeks yang lebih besar dari 1.500 byte. Batas ini berlaku untuk encoding UTF-8 nilai properti.
- Mencoba melakukan commit pada entity dengan nilai properti tidak diindeks yang lebih besar dari 1.048.487 byte (1 MiB - 89 byte). Batas ini berlaku untuk jumlah nilai properti dalam entity. Misalnya, empat properti dengan ukuran masing-masing 256 KiB melebihi batas.
1.500 byte (terindeks) dan 1.048.487 byte (tidak terindeks) adalah batas untuk nilai properti. Anda tidak dapat melebihi batas ini dan batas ini bukan kuota yang dapat disesuaikan.
INVALID_ARGUMENT: The value of property property-name is longer than 1500 bytes
atau
INVALID_ARGUMENT: The value of property property_name is longer than 1048487 bytes
Untuk menyelesaikan masalah ini:
- Untuk nilai properti yang diindeks, bagi properti menjadi beberapa properti. Jika memungkinkan, buat properti yang tidak terindeks dan pindahkan data yang tidak perlu diindeks ke properti yang tidak terindeks.
- Untuk nilai properti yang tidak diindeks, bagi properti menjadi beberapa properti atau terapkan kompresi untuk nilai properti.