2011-09-06 19 views
9

Wraz ze zmianami cen produktów Appengine zwracamy uwagę na nasze pliki danych. Zgodnie z tabelą porównawczą wyceniamy 2,18 miliona pozycji dziennie. Wydaje się to dużo wyższe niż oczekiwano. Otrzymujemy około 0,6 zapytań na sekundę, co oznacza, że ​​każde zlecenie wykonuje około 60 zakładów !!W jaki sposób Google Appengine mierzy datastore put operations

Używając przykładowego kodu do profilowania db http://code.google.com/appengine/articles/hooks.html zmierzyliśmy to na jeden dzień, a najbardziej liczyliśmy ~ 14,000, co wydaje się bardziej uzasadnione. Czy ktoś ma doświadczenie z czymś podobnym na swojej stronie?

Odpowiedz

13

Widoczne rozbieżności wynikają z faktu, że każdy zapis indeksu jest liczony osobno. Podczas składania magazynu danych naliczana jest opłata za liczbę wierszy, które należy zmodyfikować, więc w przypadku zmodyfikowania pojedynczego zindeksowanego pola naliczyłoby się obciążenie:

  • Jeden pisze się za sama jednostka
  • Dwa pisze dla indeksu rosnąco zmodyfikowanego własności
  • Dwa pisze dla indeksu zstępującej dla zmodyfikowanego własności

w sumie 5 zapisów. Jak widać, ustawienie właściwości na indexed=False może mieć duży wpływ na wykorzystanie limitu tutaj.

+0

Bardzo dziękuję za wskazanie, że obecnie –

+1

Indeksy właściwości indeksowanych nie są wyświetlane w konsoli administracyjnej. Kliknięcie na Dane -> Indeksy Datastore pokazuje tylko indeksy jawnie zdefiniowane w 'index.yaml'. Czy istnieje sposób na uzyskanie pełnej listy wszystkich indeksów używanych przez aplikację? –

+1

@Aleksander Wyświetlane są tam tylko złożone indeksy (te, które sam definiujesz). Te dwa wbudowane indeksy są właśnie takie, wbudowane i opisane w dokumentach. –

Powiązane problemy