Что происходит, когда вы повторяете изменение данных в синхронизированной области?

Предположим, у меня есть база данных с синхронизированной областью, скажем, 100 000 объектов.

Такие данные повторяются, изменяются и перезаписываются, скажем, по 1000 раз каждый.

Если у меня есть копия базы данных на моем устройстве до внесения каких-либо изменений.

1a. Сколько объектов фактически переносится на устройство после смены 1к? Это влияет на использование полосы пропускания, а также на время первоначального обновления.

1б. Как это повлияет на использование базы данных STORAGE?

2а. Если после изменения 1k данные заканчивают тем же, что и исходное состояние, какой тип хранилища требуется на сервере, и

2b. Сколько места, вероятно, потребуется клиенту?

2с. Есть ли способ сжать область на сервере или на устройстве?

1 ответ

Синхронизация данных области передает операции (обновления), а не целые записи. Это означает, что объем данных, которые будут переданы, пропорционален количеству изменений, вносимых в базу данных.

И наоборот, хранилище, используемое на клиентах, просто пропорционально количеству существующих объектов (а не, скажем, количеству обновлений, полученных каждым объектом).

По вашему вопросу (2a) требование к хранилищу на сервере с Realm Object Server 1.x пропорционально общему количеству обновлений в базе данных. Сжатие журналов - это функция, которую мы ожидаем представить в Realm Object Server 2.0, который скоро появится.

Фактический объем пространства, требуемого как на сервере, так и на клиенте, полностью зависит от того, какие именно изменения вносятся в базу данных. Например, добавление и изменение большого количества больших двоичных объектов окажет гораздо большее влияние на требования к хранилищу, чем небольшие обновления обычных полей данных на объектах.

Что касается уплотнения, Realm некоторое время поддерживал сжатие базы данных на клиенте (о том, как это сделать, см. Документацию SDK для вашей предпочтительной платформы). На сервере существуют аналогичные функции, но мы все еще находимся в процессе поиска того, как наилучшим образом представить это разработчику.

Другие вопросы по тегам