Что Google классифицирует как операцию записи в хранилище данных в Google App Engine?

С тех пор, как GAE перешла на модель ценообразования в начале прошлой недели, я боролся с превышением моей квоты на операции чтения и записи хранилища данных. Я не уверен, считает ли Google все обновления для одного писателя как одну запись или каждое обновление столбца считается отдельной записью.

Если последнее верно, могу ли я обойти это, используя одну функцию обновления для обновления 6 столбцов в параметрах, или я также буду платить за 6 обновлений?

Вот мой существующий код, используемый для обновления счет игрока (рейтинг) и другие данные одновременно. На данный момент я всегда указываю имя, адрес электронной почты, рейтинг, выигранные, сыгранные и достижения значениями, полученными от клиента. Одним из решений может быть отправка их со стороны клиента только тогда, когда они изменили значение.

Long key = Long.valueOf(updateIdStr);
System.out.println("Key to update: " + key);
PlayerPersistentData ppd =null;
try {
    ppd = pm.getObjectById(
    PlayerPersistentData.class, key);
// for all of these, make sure we actually got a value via
// the query variables
    if (name != null && name.length() > 0) {
        ppd.setName(name);
}

if (ratingStr != null && ratingStr.length() > 0) {
    ppd.setRating(rating);
}

if (playedStr != null && playedStr.length() > 0) {
     ppd.setPlayed(played);
}

if (wonStr != null && wonStr.length() > 0) {
     ppd.setWon(won);
}

if (encryptedAchievements != null
    && encryptedAchievements.length() > 0) {
    ppd.setAchievements(achievements);
}

if (email != null & email.length() > 0) {
    ppd.setEmail(email);
}

resp.getWriter().print(key);
} catch (JDOObjectNotFoundException e) {
    resp.getWriter().print(-1);
}
        }
9
задан Barry Irvine 13 November 2011 в 17:36
поделиться