Firestore: получение DEADLINE_EXCEEDED при операциях чтения

# #google-cloud-firestore #firebase-admin

Вопрос:

Сегодня наше приложение было запущено, что означает, что оно начало получать больше трафика, чем обычно. Но прирост не так уж велик. В два раза больше, чем было раньше, самое большее.

Но уже через несколько часов наши журналы Sentry заполнены или содержат ошибки с кодом DEADLINE_EXCEEDED . Когда я смотрю на трассировку, все они ссылаются на операции чтения, большинство из них в отдельных документах (без запросов, только чтение документов), например: const res = await fs.collection('coll').doc('doc').get() ;

Когда я ищу в Google это сообщение об ошибке, я получаю много результатов о проблемах с записью, особенно в пакетах, но в нашу базу данных почти ничего не записывается, это почти исключительно чтение.

Чтобы дать представление о количестве операций чтения, которые должна обрабатывать наша база данных, за последние 30 дней у нас было 1,2 млн операций чтения, с максимумом 60 тыс. в день, число, которое мы еще не превысили сегодня (41 тыс.).

В чем может быть проблема в нашем приложении?

Ответ №1:

Как обычно, я нахожу ответ сразу после публикации вопроса в StackOverflow. То, что мы увидели здесь, было симптомом того, что у нашей виртуальной машины закончилась память! После масштабирования сервера проблема исчезла.