Какова лучшая архитектура / структура данных для обнаружения изменений в состоянии данных - PullRequest
0 голосов
/ 30 октября 2019

Я работаю над структурой данных с движущимися устройствами. Я уже добавил геохэш (открытый код местоположения). И я могу использовать где> = geohash_low и где <= geohash_high для поиска в области. </p>

Если я посмотрю это, я получу результаты в пределах (примерно) этой области. Следующий шаг - оглянуться назад для каждого устройства, когда они вошли или покинули область. Если я оглядываюсь назад, я могу определить это легко, но следующий шаг - определить это в тот момент, когда новое сообщение помещается в базу данных.

Моей первой идеей было бы создание копии каждого входящего сообщения на устройстве / в последний раз. А затем следите за изменениями с помощью облачной функции onChange. А затем определите, происходило ли изменение изнутри наружу или в другой области.

Но эта архитектура добавит дополнительную операцию записи (к последнему сообщению) при каждом входящем сообщении. И это добавит дополнительную операцию чтения (onChange).

Другой подход заключается в дополнительном чтении каждого входящего сообщения, чтобы прочитать последнее состояние внутри или снаружи области. И сравните это с текущей позицией. Это будет «стоить» только дополнительного чтения при каждом входящем сообщении. Если необходимо изменить состояние, выполните дополнительную запись.

В основном проблема в том, что мне нужно управлять состоянием, а функции не сохраняют состояния. Любые другие мысли ...

Большое спасибо за ваши мысли.

...