AppEngine: странный счетчик операций записи при удалении - PullRequest
1 голос
/ 12 февраля 2012

Я пытаюсь удалить 300 000 объектов в GAE (Java), используя это:

 PersistenceManager pm = PMF.get().getPersistenceManager();

 Date date70DaysAgo = Calendar.getInstance().getTime();
 date70DaysAgo.setDate(date70DaysAgo.getDate()-70);

 Query query = pm.newQuery(PositionApplication.class);
 query.setFilter("date <= yyy");
 query.declareParameters("java.util.Date yyy");
 query.setRange(0,750);
 Collection<PositionApplication> elements = (Collection<PositionApplication>)query.execute(date70DaysAgo);

 pm.deletePersistentAll(elements);

Я ограничен 50 000 операций записи в день (бесплатная квота). Я наивно думал, что через 6-7 дней это должно быть сделано, но похоже, что на один звонок используется 1/5 дневной квоты.

-> Операции записи в хранилище данных 21% 0,01 из 0,05 млн операций

10 000 операций записи, почему не 750?

Это связано с индексами?

1 Ответ

1 голос
/ 12 февраля 2012

При удалении сущности хранилище данных также должно удалять индексы для каждого свойства и все записи в составных индексах.

Расчет для удаления каждого объекта:

2 записи + 2 записи для каждого индексированного значения свойства + 1 запись для каждого составного индекса

См. Документ Ресурсы биллинга и бюджетирования для расчета всех операций хранилища данных.

...