Datastore memberikan ketersediaan, skalabilitas, dan ketahanan tinggi dengan mendistribusikan data ke banyak mesin dan menggunakan replikasi sinkron tanpa master di area geografis yang luas. Namun, konsekuensi dari desain ini adalah throughput operasi tulis untuk satu entity group dibatasi pada sekitar satu commit per detik. Ada juga batasan pada kueri atau transaksi yang mencakup beberapa entity group. Halaman ini menjelaskan batasan tersebut secara lebih mendetail dan membahas praktik terbaik dalam menyusun struktur data untuk mendukung konsistensi yang kuat sambil tetap memenuhi persyaratan throughput operasi tulis aplikasi Anda.
Tingkat konsistensi
Kueri Datastore dapat memberikan hasilnya pada salah satu dari dua tingkat konsistensi:
- Kueri Sangat konsisten menjamin hasil terbaru, tetapi mungkin memerlukan waktu lebih lama untuk diselesaikan atau mungkin tidak didukung dalam kasus tertentu.
- Kueri Konsistensi tertunda umumnya berjalan lebih cepat, tetapi terkadang dapat menampilkan hasil yang sudah tidak relevan.
Dalam kueri yang memiliki konsistensi tertunda, indeks yang digunakan untuk mengumpulkan hasil juga diakses dengan konsistensi tertunda. Akibatnya, kueri tersebut terkadang dapat menampilkan entity yang tidak lagi cocok dengan kriteria kueri, dan juga dapat menghapus entity yang cocok dengan kriteria kueri. Kueri yang sangat konsisten konsisten secara transaksional, yang berarti hasilnya didasarkan pada satu snapshot data yang konsisten.
Jaminan konsistensi
Kueri menampilkan hasilnya dengan tingkat jaminan konsistensi yang berbeda, bergantung pada sifat kueri:
- Kueri ancestor (yang dieksekusi terhadap entity group) memiliki konsistensi kuat secara default, tetapi pada akhirnya dapat memiliki konsistensi tertunda dengan menetapkan kebijakan baca Datastore (dibahas di bawah).
- Kueri global (kueri yang tidak dijalankan terhadap grup entity) pada akhirnya selalu konsisten.
Dalam banyak aplikasi, Anda dapat menggunakan konsistensi akhir (yaitu, kueri global yang mencakup beberapa grup entity, yang terkadang dapat menampilkan data yang sedikit usang) saat mendapatkan tampilan luas data yang tidak terkait, lalu menggunakan konsistensi yang kuat (kueri ancestor, atau pencarian satu entity) saat melihat atau mengedit satu kumpulan data yang sangat terkait. Dalam penerapan semacam itu, sebaiknya Anda menempatkan data yang sangat terkait dalam entity group. Jumlah grup entity yang lebih tinggi akan meningkatkan throughput, sedangkan jumlah grup entity yang lebih rendah akan meningkatkan volume entity yang dapat dibaca dalam satu kueri ancestor. Aplikasi harus memperhitungkan hal ini untuk menentukan keseimbangan throughput dan konsistensi yang tepat.
Kebijakan baca Datastore
Untuk meningkatkan performa, Anda dapat menetapkan kebijakan baca kueri sehingga hasilnya akhirnya konsisten. (Datastore API juga memungkinkan Anda menetapkan kebijakan konsistensi kuat secara eksplisit, tetapi setelan ini tidak memiliki dampak praktis karena kueri global selalu memiliki konsistensi tertunda, terlepas dari kebijakannya.)
Anda dapat mengaktifkan pembacaan yang akhirnya konsisten melalui opsi baca objek kueri:
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Pertimbangan konsistensi dan transaksi
Commit Datastore bersifat transaksional, yang berarti commit terjadi dalam konteks transaksi dan kumpulan mutasi transaksi semuanya diterapkan atau tidak ada yang diterapkan, atau non-transaksional, yang berarti kumpulan mutasi mungkin tidak diterapkan semuanya atau tidak sama sekali.
Satu transaksi dapat mencakup sejumlah mutasi pembuatan, pembaruan, atau penghapusan. Untuk menjaga konsistensi data, transaksi tersebut memastikan bahwa semua mutasi yang ada di dalamnya diterapkan ke Datastore sebagai unit atau, jika salah satu mutasi gagal, tidak ada satu pun mutasi yang diterapkan. Selain itu, semua operasi baca yang sangat konsisten (kueri ancestor atau operasi lookup
) yang dilakukan dalam transaksi yang sama mengandalkan satu snapshot data yang konsisten. Kueri yang sangat konsisten harus menentukan filter ancestor. Kueri yang berpartisipasi dalam transaksi selalu memiliki konsistensi yang kuat. Transaksi dapat melibatkan maksimal 25 entity group. Operasi baca yang konsisten pada akhirnya tidak memiliki batasan tersebut, dan cukup memadai dalam banyak kasus. Dengan menggunakan operasi baca yang konsisten, Anda dapat mendistribusikan data ke lebih banyak entity group, sehingga Anda dapat memperoleh throughput operasi tulis yang lebih besar dengan mengeksekusi commit secara paralel pada entity group yang berbeda. Namun, Anda perlu memahami karakteristik operasi baca yang konsisten agar dapat menentukan apakah operasi baca tersebut cocok untuk aplikasi Anda:
- Hasil dari operasi baca ini mungkin tidak mencerminkan transaksi terbaru. Hal ini dapat terjadi karena operasi baca ini tidak memastikan bahwa replika tempatnya berjalan sudah yang terbaru. Sebagai gantinya, model ini menggunakan data apa pun yang tersedia di replika tersebut pada saat mengeksekusi kueri.
- Transaksi yang di-commit dan mencakup beberapa grup entity mungkin terlihat telah diterapkan ke beberapa entity dan tidak untuk entity yang lainnya. Namun, perlu diperhatikan bahwa transaksi tidak akan pernah diterapkan sebagian dalam satu entity.
- Hasil kueri dapat menyertakan entity yang seharusnya tidak disertakan sesuai dengan kriteria filter, dan dapat mengecualikan entity yang seharusnya disertakan. Hal ini dapat terjadi karena versi snapshot yang digunakan untuk membaca indeks mungkin berbeda dengan versi snapshot yang digunakan untuk membaca entity.
Membuat struktur data untuk konsistensi
Untuk memahami cara menyusun data Anda demi konsistensi yang kuat, bandingkan dua pendekatan yang berbeda untuk aplikasi daftar tugas yang sederhana. Pendekatan pertama membuat setiap entity dalam grup entity barunya sendiri (yaitu, setiap entity adalah root entity):
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Kemudian, kueri pada jenis entity Task
untuk tugas yang belum selesai dengan prioritas lebih besar dari atau sama dengan 4, diurutkan dalam urutan menurun berdasarkan prioritas:
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Namun, karena kita menggunakan kueri yang akhirnya konsisten (bukan kueri ancestor), hasil kueri mungkin tidak berisi entity baru. Meskipun demikian, hampir semua operasi tulis akan tersedia untuk kueri yang konsisten tertunda segera setelah commit. Untuk banyak aplikasi, solusi yang memberikan hasil kueri yang memiliki konsistensi tertunda dalam konteks perubahan pengguna saat ini biasanya akan cukup untuk membuat latensi tersebut dapat diterima sepenuhnya.
Untuk mencapai konsistensi yang kuat, pendekatan yang lebih baik adalah membuat entity dengan jalur ancestor. Jalur ancestor mengidentifikasi entity root umum tempat entity yang dibuat dikelompokkan. Contoh ini menggunakan jalur ancestor jenis TaskList
bernama default
:
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Selanjutnya, Anda dapat menjalankan kueri ancestor yang sangat konsisten dalam entity group yang diidentifikasi oleh root entity umum:
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Datastore, lihat Library klien Cloud Datastore. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Cloud Datastore.
Untuk melakukan autentikasi ke Cloud Datastore, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Pendekatan ini mencapai konsistensi yang kuat dengan melakukan operasi tulis ke satu entity group per daftar tugas, tetapi juga membatasi perubahan pada daftar tugas agar tidak lebih dari 1 operasi tulis per detik (batas yang didukung untuk entity group). Jika aplikasi Anda cenderung mengalami penggunaan operasi tulis yang lebih berat, Anda mungkin perlu mempertimbangkan untuk menggunakan cara lain. Misalnya, jika aplikasi Anda adalah buku tamu yang memungkinkan pengguna memposting pesan ke papan pesan publik, Anda dapat menempatkan postingan terbaru di memcache dengan masa berlaku dan menampilkan campuran postingan terbaru dari memcache dan Datastore, atau Anda dapat meng-cache-nya dalam cookie, menempatkan beberapa status di URL, atau hal lain sepenuhnya. Tujuannya adalah untuk menemukan solusi penyimpanan data ke dalam cache yang menyediakan data untuk pengguna saat ini selama jangka waktu saat pengguna memposting ke aplikasi Anda. Ingat, jika melakukan lookup
, kueri ancestor (dengan asumsi kebijakan baca tidak disetel ke konsistensi tertunda), atau operasi apa pun dalam transaksi, Anda akan selalu melihat data yang baru saja ditulis.
Untuk contoh tambahan tentang cara menggunakan transaksi, buka di sini.
Batasan grup entitas pada transaksi
Pengaturan data ke dalam entity group dapat membatasi transaksi yang dapat dilakukan:
- Semua data yang diakses oleh transaksi harus berada dalam maksimal 25 entity group.
- Jika Anda ingin menggunakan kueri dalam transaksi, data Anda harus diatur ke dalam entity group sedemikian rupa sehingga Anda dapat menentukan filter ancestor yang akan cocok dengan data yang tepat.
- Ada batas throughput operasi tulis sekitar satu transaksi per detik untuk satu entity group. Batasan ini diberikan karena Datastore melakukan replikasi sinkron tanpa master untuk setiap entity group di area geografis yang luas guna memberikan keandalan dan fault tolerance yang tinggi.
Untuk informasi selengkapnya tentang cara memperbarui entity dan indeks, lihat artikel Pemisahan Transaksi.