Google Cloud - Datastore terlalu lambat dibandingkan dengan mesin lokal

Kami menggunakan Google App Engine dengan Datastore dan Objectify. Di mesin lokal kami, diperlukan waktu 1 detik untuk melakukan kueri, sedangkan di cloud memerlukan waktu sekitar 20 detik. Lokasi server berada di Eropa-Barat dan saya di Spanyol, jadi menurut saya ini bukan masalahnya.

Kueri yang kami lakukan hanyalah mengambil data hanya dengan 1 filter:

final CityEntity cityEntity = new CityEntity();
cityEntity.setId(1);
ofy().load().type(Person.class).filter("city =", cityEntity).list();

person Ulises CT    schedule 05.02.2020    source sumber


Jawaban (1)


Di penyimpanan data, kueri diskalakan dengan ukuran kumpulan hasil. Berapa banyak orang di kota? Jika berukuran besar, kueri tidak hanya akan lambat, Anda juga akan segera mencapai batas RAM.

Tergantung pada apa yang Anda coba lakukan, Anda mungkin perlu mengambil pendekatan yang berbeda. Misalnya, Anda dapat melakukan kueri khusus kunci, mengonversi hasilnya menjadi tugas, dan memasukkan tugas ke dalam antrean untuk setiap orang. Itu mungkin akan berhasil hingga ratusan ribu, mungkin jutaan sebelum Anda mencapai tenggat waktu 10 juta tugas/cron. Untuk jumlah yang lebih besar, Anda mungkin menginginkan beberapa bentuk peta/pengurangan.

person stickfigure    schedule 05.02.2020
comment
itu memfilter berdasarkan satu bidang ke dalam entitas dengan hingga 2000 catatan. Apakah normal jika membutuhkan waktu 20 detik? Menurutku itu agak berlebihan - person Ulises CT; 06.02.2020
comment
Tampaknya agak lambat. Saya biasanya mengharapkan sekitar 1000/s dari API appengeine gaya lama, meskipun REST API baru sedikit lebih lambat. Itu bisa bergantung pada banyak hal berbeda. Ingatlah bahwa penyimpanan data dirancang untuk bekerja dalam skala besar, sehingga Anda dapat melakukan ratusan ribu operasi per detik di seluruh sistem, namun setiap operasi individual tidak terlalu cepat. - person stickfigure; 06.02.2020