Мы начали получать много DatastoreTimeoutException в последнее время для этого основного запроса:DatastoreTimeoutException в приложении двигателя для основного запроса
select id from Later where at < '2013-07-04' limit 500 (Some Pseudo SQL)
В коде это выглядит:
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("Later").setKeysOnly();
Filter f = new FilterPredicate("at",FilterOperator.LESS_THAN, new Date());
query.setFilter(f);
query.addSort("at", SortDirection.DESCENDING);
PreparedQuery pq = datastore.prepare(query);
return pq.asList(FetchOptions.Builder.withLimit(500));
В таблице есть приблиз. 1,5 млн. Юридических лиц. Это обычное поведение хранилища данных?
ОБНОВЛЕНИЕ: Если мы удалим фильтр, он работает лучше. Конечно, нам нужен фильтр, поэтому это не решение в долгосрочной перспективе.
Неделя или 2 назад были проблемы с таймаутами данных. Вы все еще получаете эту проблему в последнее время? –
Да, мы получаем это прямо сейчас. – Okku
Это происходит в обычном веб-запросе? т. е. это 30-секундный предел ответа, который срабатывает? Если это клиентский запрос, возможно, имеют меньшие размеры выборки? (не решение, а другой вариант). Посмотрите, если вы получите тот же самый тайм-аут, если вы запустите запрос в задаче (у которой есть 10-минутный предел). –