Запрос высокоуровневых рекомендаций для Sharding RDMS Firebase с приложением Ridesharing - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть приложение Ridesharing, созданное на базе данных реального времени. Как и многие приложения, он отслеживает местоположения пользователей и использует их вместе с местоположениями других пользователей. Исследования масштабирования показывают, что более 200 тыс. Соединений с RDMS мне нужно запланировать для реализации концепции под названием «Sharding».

1) Полагаю, первое, о чем я подумал - это регионы, но вы, вероятно, думали так же, как и я: с регионами границы создают разъединение для пользователей, находящихся рядом с ними.

2) Второе, о чем я подумал, это перенести наши операции с данными в Firestore. Я читал, что Firestore НЕ рекомендуется Google для приложений определения местоположения, хотя Geofire (который мы используем и добились хороших результатов, FYI) был расширен до Firestore предположительно с GeoFirestore. Даже у Firestore есть ограничение (хотя в 1 000 000, что позволило бы регионы в большинстве мест, и, возможно, я мог бы удвоить количество пользователей границ).

В данный момент я ломаю голову над такими проблемами, как люди в больших городах ... Я искал ТАК безрезультатно для этой проблемы (это было здорово для многих других, поэтому придерживайтесь его ТАК последователи), но моя интуиция говорит мне, что колесо уже было изобретено для этого, поэтому я обращаюсь к вам за некоторыми идеями для более элегантного решения, чем регионы.

Редактировать: Короче, как я могу держать всех с радиусом вокруг себя, охватывающим всех в их радиусе?

Любой совет приветствуется. Спасибо.

1 Ответ

0 голосов
/ 11 апреля 2020

Для того, чтобы осколок вам нужно было иметь возможность определить одно неизменное значение, которое решает, к какому осколку относятся некоторые данные. Если у вас этого нет, то вы не можете осколок.

...