Предел масштабируемости Google Firestore - PullRequest
0 голосов
/ 03 октября 2019

Согласно документации Google Firebase, Firestore будет поддерживать до 1 000 000 одновременных подключений и 10 000 операций записи в секунду на базу данных. Мы провели тест на масштабируемость, чтобы убедиться, что Firestore является жизнеспособным для нашего решения, и обнаружил ошибки, такие как «Соединение с firebase.googleapis.com:443:Connection timed out» во время операций записи для 40K образцов », firestore.googleapis.com:443: не удалось ответить »во время операций GET во время записи образцов 40K. Хотелось бы понять ограничения Firestore и его масштабируемость

Запуск сценария JMeter для записи данных в Firebase (Firestore Blaze Plan, приобретенный для тестирования) на нескольких виртуальных машинах и компьютерах, которые подключены к проводной сети для проверки масштабируемости. Сценарий JMeter записывает данные в Firebase, используя REST API PATCH, и каждый сценарий на ПК / ВМ записывает данные по 5 КБ в течение 5 минут. Всего существует 8 ПК / ВМ, которые записывают 40K данных в Firebase. За это мы также получаем 500 записей за 5 минут 2 раза в день. Во время этого теста мы обнаруживаем сбои Firebase

. Ошибки: «Соединение с firebase.googleapis.com:443: истекло время ожидания соединения» во время операций записи для 40К-образцов », firestore.googleapis.com:443:failedответить "и сброс соединения.

1 Ответ

0 голосов
/ 05 октября 2019

Рассматриваете ли вы другие ограничения для ваших конкретных операций?

Согласно https://firebase.google.com/docs/firestore/quotas

Например, для операции записи:

  • Максимум записейв секунду на базу данных = 10 000 (до 10 МБ в секунду)
  • Максимальная скорость записи в документ = 1 в секунду
  • Максимальная скорость записи в коллекцию, в которой документы содержат последовательные значения виндексированное поле = 500 в секунду
  • Максимальное количество записей, которое может быть передано в операцию фиксации или выполнено в транзакции = 500

Во время операций GET у вас есть ограничения: Максимальное количествоВызовы of exist (), get () и getAfter () для каждого запроса:

10 для запросов с одним документом и запросов. 20 для многодокументных операций чтения, транзакций и пакетных записей. Предыдущий лимит 10 также применяется к каждой операции.

Например, представьте, что вы создаете пакетный запрос на запись с 3 операциями записи и что ваши правила безопасности используют 2 вызова доступа к документу для проверки каждой записи. В этом случае каждая запись использует 2 из 10 вызовов доступа, а пакетный запрос записи использует 6 из 20 вызовов доступа.

Превышение любого из этих ограничений приводит к ошибке отказа в разрешении.

Некоторые документывызовы доступа могут кэшироваться, и кэшированные вызовы не учитываются при ограничении.

Я думаю, что какой-то параметр может вызывать прерывание этих подключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...