Pemecahan masalah

Halaman ini menunjukkan cara menyelesaikan masalah Firestore dalam mode Datastore.

Latensi

Tabel di bawah ini menjelaskan kemungkinan penyebab latensi meningkat:

Penyebab latensi Jenis operasi yang terpengaruh Resolusi
Traffic berkelanjutan yang melebihi aturan 500-50-5. baca, tulis

Untuk peningkatan traffic yang cepat, mode Datastore mencoba melakukan penskalaan secara otomatis untuk memenuhi peningkatan permintaan. Saat mode Datastore diskalakan, latensi mulai berkurang.

Hot-spot (kecepatan baca, tulis, dan hapus yang tinggi untuk rentang entity yang sempit) membatasi kemampuan mode Datastore untuk melakukan penskalaan. Tinjau mendesain untuk penskalaan dan identifikasi hot-spot dalam aplikasi Anda.

Pertentangan, baik karena terlalu sering memperbarui satu entitas atau dari transaksi. baca, tulis

Kurangi kecepatan tulis ke masing-masing entity.

Tinjau isolasi dan konsistensi transaksi dan cara Anda menggunakan transaksi.

Kueri penggabungan-join lambat. read Misalnya, kueri dengan beberapa filter kesetaraan (==) tetapi tidak didukung oleh indeks komposit dapat menghasilkan kueri penggabungan yang lambat. Guna meningkatkan performa, tambahkan indeks komposit untuk kueri ini, lihat Mengoptimalkan indeks.
Pembacaan besar yang menampilkan banyak entity. read Gunakan query cursor untuk memisahkan pembacaan besar.
Terlalu banyak penghapusan baru-baru ini. read
Hal ini sangat memengaruhi operasi yang mencantumkan jenis dalam database.
Jika latensi disebabkan oleh terlalu banyak penghapusan terbaru, masalah akan otomatis teratasi setelah beberapa waktu. Jika masalah tidak teratasi, hubungi dukungan.
Fanout indeks, terutama untuk properti array. tulis Tinjau indeks yang meledak dan penggunaan properti array Anda.

Kode Error

Bagian ini mencantumkan masalah yang mungkin Anda alami dan memberikan saran untuk memperbaikinya.

DEADLINE_EXCEEDED

DEADLINE_EXCEEDED

A deadline was exceeded on the server.

Untuk mengatasi masalah ini, lihat panduan memecahkan masalah latensi.

ABORTED

Situasi berikut dapat meningkatkan ABORTED error:

  • Entity menerima terlalu banyak update 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 mencoba melakukan penskalaan secara otomatis untuk memenuhi peningkatan permintaan. Saat mode Datastore diskalakan, latensi mulai berkurang.
  • Hot-spot membatasi kemampuan mode Datastore untuk meningkatkan skala, meninjau desain untuk penskalaan guna mengidentifikasi hotspot.
  • Tinjau pertentangan data dalam transaksi dan penggunaan transaksi oleh Anda.
  • Kurangi kecepatan tulis ke masing-masing entity.

RESOURCE_EXHAUSTED

Situasi berikut dapat menyebabkan error RESOURCE_EXHAUSTED:

Anda melebihi 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:

INVALID_ARGUMENT

Situasi berikut dapat menyebabkan error INVALID_ARGUMENT:

  • Mencoba meng-commit entity dengan nilai properti terindeks yang lebih besar dari 1.500 byte. Batas ini berlaku untuk encoding UTF-8 dari nilai properti.
  • Mencoba meng-commit entity dengan nilai properti tidak terindeks yang lebih besar dari 1.048.487 byte (1 MiB - 89 byte). Batas ini berlaku untuk jumlah nilai properti dalam suatu entity. Misalnya, empat properti 256 KiB masing-masing melebihi batas.

1.500 byte (diindeks) dan 1.048.487 byte (tidak diindeks) adalah batas untuk nilai properti. Anda tidak dapat melebihi batas ini dan batas tersebut 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 tersebut menjadi beberapa properti. Jika memungkinkan, buat properti yang tidak diindeks 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.