Size: a a a

firebase_ru — русскоговорящее сообщество

2021 July 09

M

Mafioznik in firebase_ru — русскоговорящее сообщество
От куда интересно взялась разница скорости в 4 раза от примера и моего случая? 🤔
источник

M

Mafioznik in firebase_ru — русскоговорящее сообщество
Cloud Firestore location: eur3 (europe-west)

.region("europe-west3")

Вот регионы фаерстора и клауд функции
источник

M

Mafioznik in firebase_ru — русскоговорящее сообщество
При этом просто последовательно у меня быстрее чем в примере с стаковерфлоу: там 104 сек, у меня 78
источник

M

Mafioznik in firebase_ru — русскоговорящее сообщество
Возможно все дело в весе данных при последовательном, но почему же тогда разница в 4 раза не в мою пользу при параллельном
источник

M

Mafioznik in firebase_ru — русскоговорящее сообщество
У меня возникла идея: как мне сделать транзакционную запись на те же 20к документов? Это означает, что:
1) Я начинаю записывать, делаю условную пометку о начале
2) Записываю
3) Делаю пометку об успешной записи.
4) Если пометки об успешной записи нет - все записанное должно откатиться, чтобы я мог вернуться к нему позже и попробовать еще раз
источник

M

Mafioznik in firebase_ru — русскоговорящее сообщество
Ситуации могут быть 2:
1) Ошибка во время записи, тут можно её перехватить и самому что-то сделать, отменив запись или сделав отрицательную пометку
2) Таймаут, функция завершилась. Тут уже никак самому не записать какую-то пометку разве что только вернуться позже и проверить статус записи. Наверное стоит поставить время начала. Например если запись началась 1 час назад, а метки об успехе нет - значит функция ушла в таймаут и весь массив записей не успешен (так как записалась только половина например)
источник

АА

Аллахверди Абдуллаев... in firebase_ru — русскоговорящее сообщество
Добрый день!
Читал недавно ответ от одного из сотрудников Firebase, относительно вопроса об организации таблицы лидеров в firebase realtime database и получении позиции игрока в таблице (1ый, 15ый и т.д.)
Но не совсем пойму, что имелось в виду под одним из описанных вариантов, как это сделать👇🏻

- Update the score positions on a regular intervals from a server process by simply iterating down the score list and assigning it (probably by writing to a static/separate read-only collection).
источник

АА

Аллахверди Абдуллаев... in firebase_ru — русскоговорящее сообщество
Типа периодечески сортировать пользователей по очкам и выставлять им в одно из полей обновленную позицию?
источник

AG

Arthur G in firebase_ru — русскоговорящее сообщество
Имелось в виду, позиции и очки отделены друг от друга, сервер периодически пробегается по очкам и изменяет позиции.
источник

АА

Аллахверди Абдуллаев... in firebase_ru — русскоговорящее сообщество
Понял, спасибо👍
источник
2021 July 10

M

Mafioznik in firebase_ru — русскоговорящее сообщество
Разбил и увидел интересные результаты, интересно с чем это может быть связано?

Паралельно индивидуально по 5000 - 115722


Паралельно индивидуально по 1000 - 98108


Паралельно индивидуально по 500 - 79653
источник

M

Mafioznik in firebase_ru — русскоговорящее сообщество
Дополнительный тест записи 10 000 документов

Паралельно индивидуально по 5000 - 48592

Паралельно индивидуально по 1000 - 38221

Паралельно индивидуально по 500 - 37226

Паралельно индивидуально по 100 - 40263

Паралельно индивидуально по 10 - 125599
источник