1

Тема: Як краще зберігати тимчасові дані, котрі часто змінюються?

Вітаю.
Маю ідею застосунку, котрий дозволив би людям, що катаються на різних велосипедах, самокатах та іншому, збиратись разом, аби кататись в групах.

Наприклад, користувач може створити групу, котра зображуватиметься на мапі у вигляді іконки, тобто, цей об'єкт "група" матиме дані координат. Коли всі люди зібрались та вирушили в подорож, має бути можливість відстежування координат цієї групи, на той випадок, якщо хтось захоче доєднатись по дорозі. Координати будуть достатньо точними, тобто, оновлюватись вони будуть частенько.

Таких "груп" на мапі може бути багацько, та інші користувачі, котрі захочуть просто перевірити, хто взагалі зараз катається, повинні бачити зміни коорднат тих груп, які вже вирушили в подорож.

Я не впевнений щодо того, як зберігати такі групи на сервері, тому що якщо кожні 10 секунд координати такого об'єкту будуть змінюватись, а сам об'єкт буде в базі даних - то це ж ніби забагато звернень до бази даних, чи ні?

То може краще тримати ці дані в оперативній пам'яті? Але якщо в один момент дуже багато людей будуть кататись в групах, то це ж треба буде багато оперативної пам'яті, та й інші користувачі повинні мати змогу переглядати активні групи, та фільтрувати їх за багатьма параметрами, і тоді мені доведеться реалізовувати всі ці фільтрування самотужки, а не засобами бази даних.

Що порадите?

Подякували: plusxx1

2

Re: Як краще зберігати тимчасові дані, котрі часто змінюються?

FakiNyan написав:

забагато звернень до бази даних

Тут питання в тому, що саме вкладається в поняття "забагато", бо скажімо в галузі фінтех виконуються сотні звернень щосекунди. Якщо завантаження cpu інстанса стане стабільно під 100%, при тому що запити вже будуть максимально оптимізовані враховуючи всі потрібні індекси для join і where - тоді наприклад aws rds дозволяє масштабування. Звісно, це коштує гроші, але ж до того часу з ростом кількості користувачів вже повинна бути якась монетизація.

3

Re: Як краще зберігати тимчасові дані, котрі часто змінюються?

frz написав:
FakiNyan написав:

забагато звернень до бази даних

Тут питання в тому, що саме вкладається в поняття "забагато", бо скажімо в галузі фінтех виконуються сотні звернень щосекунди. Якщо завантаження cpu інстанса стане стабільно під 100%, при тому що запити вже будуть максимально оптимізовані враховуючи всі потрібні індекси для join і where - тоді наприклад aws rds дозволяє масштабування. Звісно, це коштує гроші, але ж до того часу з ростом кількості користувачів вже повинна бути якась монетизація.

забув сказати, я то в mongodb збираюсь зберігати

4 Востаннє редагувалося frz (29.08.2020 20:38:56)

Re: Як краще зберігати тимчасові дані, котрі часто змінюються?

Поки що з опису вище не бачу суттєвої різниці (монгодб чи ні). Якщо з самого початку не продумати які повинні бути індекси, то з ростом кількості даних це стане проблемою, неважливо який саме тип бази. Потім думають про дорожчий сервер чи навіть кластер для швидкодії, а насправді питання лише в створенні індексів. Звісно, якщо вже все оптимізовано, а навантаження далі зростає через кількість користувачів, то нема такого чарівного індексу який все полагодить, тоді вже лише масштабування.

offtop

поки що все ще в розробці хінт
/*+ work_super_fast */

Подякували: FakiNyan1