2016-02-02 3 views
3

У меня есть сценарий, где нам нужно хранить х * 100 ГБ данных. Данные в целом являются хорошим кандидатом на постоянное состояние для актера (хорошо разделенного, используемого только конкретными участниками) в самом кластере сети обслуживания.Сохранение большого количества состояний в кластере служебной ткани

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

Как количество постоянных состояний влияет на задержку перемещения разделов между узлами в кластере?

ответ

5

Хорошо, давайте посмотрим, как состояние хранится в сервисе (это относится и к игрокам).

Компонент, который хранит ваши данные в вашей службе, называется государственным провайдером. Государственные поставщики могут быть только в памяти или в памяти + локальном диске. Поставщик состояния по умолчанию, который вы получаете с помощью услуги актера, находится в памяти + локальный диск, но он сохраняет только горячие данные в памяти, поэтому ваши требования к хранению не связаны с памятью. Контраст с поставщиком состояния надежных коллекций, который в настоящее время хранит все данные как в памяти, так и на локальном диске, хотя в будущей версии также будет возможность сохранять только горячие данные в памяти и выгружать остальное на локальный диск.

Учитывая, что вы используете актеров, вы можете использовать поставщик состояния актора по умолчанию, что означает, что ваша емкость данных ограничена локальным дисковым хранилищем на ваших компьютерах или виртуальных машинах, что должно быть разумным для хранения 100 ГБ. Обычно мы не перемещаем целые разделы, но иногда Service Fabric действительно нуждается в восстановлении реплики вашего сервиса, и чем больше данных у вас будет, тем дольше потребуется построить реплику. Однако это не влияет на латентность вашего сервиса, потому что у вас есть несколько реплик в службе с сохранением состояния, и у вас обычно есть достаточно реплик, и вам не нужно ждать, пока другой будет перестроен. Восстановление реплики, как правило, происходит так, что происходит «в стороне».

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