Datastore memberikan ketersediaan, skalabilitas, dan ketahanan tinggi dengan mendistribusikan data ke banyak mesin serta menggunakan replikasi sinkron tanpa master di area geografis yang luas. Namun, konsekuensi dari desain ini adalah throughput tulis untuk setiap grup entity dibatasi hingga sekitar satu commit per detik. Ada juga batasan pada kueri atau transaksi yang mencakup beberapa grup entitas. Halaman ini menjelaskan batasan tersebut secara lebih mendetail dan membahas praktik terbaik untuk menyusun data Anda guna 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 entitas yang tidak lagi cocok dengan kriteria kueri, dan juga dapat menghilangkan entitas yang cocok dengan kriteria kueri. Kueri yang sangat konsisten bersifat konsisten secara transaksional, artinya hasilnya didasarkan pada satu ringkasan data yang konsisten.
Jaminan konsistensi
Kueri menampilkan hasilnya dengan tingkat jaminan konsistensi yang berbeda, bergantung pada sifat kueri:
- Kueri ancetor (kueri yang dijalankan terhadap grup entity) sangat konsisten secara default, tetapi pada akhirnya dapat dibuat konsisten dengan menetapkan kebijakan baca Datastore (dibahas di bawah).
- Kueri global (yang tidak dieksekusi terhadap grup entity) pada akhirnya selalu konsisten.
Dalam banyak aplikasi, Anda dapat menggunakan konsistensi tertunda (yaitu, kueri global yang mencakup beberapa grup entitas, yang terkadang dapat menampilkan data yang sedikit usang) saat memperoleh tampilan luas dari data yang tidak terkait, lalu menggunakan konsistensi yang kuat (kueri ancestor, atau pencarian entitas tunggal) saat melihat atau mengedit satu kumpulan data yang sangat terkait. Dalam aplikasi seperti itu, biasanya merupakan pendekatan yang baik untuk menempatkan data yang sangat terkait dalam grup entity. Jumlah entity group yang lebih tinggi meningkatkan throughput, sedangkan jumlah entity group yang lebih rendah meningkatkan volume entity yang dapat dibaca dalam kueri ancestor tunggal. Aplikasi harus mempertimbangkan hal ini untuk menentukan keseimbangan yang tepat antara throughput dan konsistensi.
Kebijakan baca Datastore
Untuk meningkatkan performa, Anda dapat menetapkan kebijakan baca kueri agar hasilnya tetap konsisten. (Data Datastore API juga memungkinkan Anda menetapkan kebijakan konsistensi kuat secara eksplisit, tetapi setelan ini tidak memiliki efek praktis, karena kueri global pada akhirnya selalu konsisten, apa pun kebijakannya.)
Anda dapat mengaktifkan pembacaan yang konsisten pada akhirnya melalui opsi baca dari 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 transaksi dan konsistensi
Commit Datastore bersifat transactional, artinya commit terjadi dalam konteks transaksi dan rangkaian mutasi transaksi semuanya diterapkan atau tidak ada yang diterapkan, atau transactional, yang berarti kumpulan mutasi mungkin tidak berlaku sebagai semua atau tidak sama sekali.
Satu transaksi dapat mencakup sejumlah mutasi pembuatan, pembaruan, atau penghapusan. Untuk menjaga konsistensi data, transaksi memastikan bahwa semua mutasi yang terdapat di dalamnya diterapkan ke Datastore sebagai unit atau, jika ada mutasi yang gagal, tidak ada satu pun mutasi yang diterapkan. Selain itu, semua pembacaan yang sangat konsisten (kueri ancestor atau operasi lookup
) yang dilakukan dalam transaksi yang sama bergantung pada satu snapshot data yang konsisten. Kueri yang sangat konsisten harus menentukan filter ancestor. Kueri yang berpartisipasi dalam transaksi selalu memiliki konsistensi kuat. Transaksi dapat melibatkan maksimal 25 grup entitas. Pembacaan yang konsisten pada akhirnya tidak memiliki batasan tersebut, dan sudah memadai dalam banyak kasus. Penggunaan pembacaan yang konsisten secara bertahap memungkinkan Anda mendistribusikan data di antara lebih banyak grup entity, sehingga Anda dapat memperoleh throughput operasi tulis yang lebih besar dengan menjalankan commit secara paralel di berbagai grup entity. Namun, Anda perlu memahami karakteristik pembacaan yang pada akhirnya konsisten untuk menentukan apakah pembacaan tersebut cocok untuk aplikasi Anda:
- Hasil dari pembacaan ini mungkin tidak mencerminkan transaksi terbaru. Hal ini dapat terjadi karena operasi baca ini tidak memastikan bahwa replika yang menjalankannya adalah yang terbaru. Sebagai gantinya, model ini menggunakan data apa pun yang tersedia di replika tersebut pada saat eksekusi kueri.
- Transaksi komitmen yang mencakup beberapa grup entitas mungkin tampak telah diterapkan ke beberapa entitas dan tidak yang lainnya. Namun, perhatikan bahwa transaksi tampaknya tidak pernah diterapkan sebagian dalam satu entitas.
- Hasil kueri dapat menyertakan entitas yang seharusnya tidak disertakan sesuai dengan kriteria filter, dan dapat mengecualikan entitas yang seharusnya disertakan. Hal ini dapat terjadi karena versi snapshot yang digunakan untuk membaca indeks mungkin berbeda dari versi snapshot yang digunakan untuk membaca entity.
Membentuk struktur data yang konsisten
Untuk memahami cara menyusun data Anda untuk konsistensi yang kuat, bandingkan dua pendekatan berbeda untuk aplikasi daftar tugas 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, kode ini akan mengkueri jenis entity Task
untuk tugas yang belum dilakukan dengan prioritas lebih besar dari atau sama dengan 4, yang 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 pada akhirnya konsisten (bukan kueri ancestor), hasil kueri mungkin tidak berisi entity baru. Meskipun demikian, hampir semua penulisan akan tersedia untuk kueri yang pada akhirnya konsisten segera setelah commit. Untuk banyak aplikasi, solusi yang memberikan hasil kueri yang pada akhirnya konsisten dalam konteks perubahan pengguna saat ini biasanya sudah cukup untuk membuat latensi seperti itu sepenuhnya dapat diterima.
Untuk mencapai konsistensi yang kuat, pendekatan yang lebih baik adalah membuat entity dengan jalur ancestor. Jalur ancestor mengidentifikasi root entity umum tempat entity yang dibuat dikelompokkan. Contoh ini menggunakan jalur ancestor dari jenis TaskList
yang 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.
Anda kemudian akan dapat melakukan kueri ancestor yang sangat konsisten dalam grup entity 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 kuat dengan menulis ke satu grup entity per daftar tugas, tetapi juga membatasi perubahan pada daftar tugas tidak lebih dari 1 penulisan per detik (batas yang didukung untuk grup entity). Jika aplikasi Anda kemungkinan 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 sesuatu yang sama sekali berbeda. Tujuannya adalah untuk menemukan solusi penyimpanan ke cache yang menyediakan data untuk pengguna saat ini selama periode waktu saat pengguna memposting ke aplikasi Anda. Ingat, jika Anda melakukan lookup
, kueri ancestor (dengan asumsi kebijakan baca tidak ditetapkan agar akhirnya konsisten), atau operasi apa pun dalam transaksi, Anda akan selalu melihat data tertulis terbaru.
Untuk melihat contoh tambahan tentang cara menggunakan transaksi, lihat 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 tulis sekitar satu transaksi per detik untuk satu grup entity. 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 mengetahui informasi selengkapnya tentang cara mengupdate entity dan indeks, lihat artikel Isolasi Transaksi.