Постоянство данных в Microsoft Orleans - PullRequest
0 голосов
/ 27 марта 2020

Я новичок в Microsoft Orleans и, читая документацию, обнаружил следующее:

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

Но в остальной документации описаны только способы использования Поставщики хранилищ для сохранения зерна. Но с этими провайдерами мне все еще интересно, как выполнять сложные запросы, как в реляционных базах данных (с JOIN, GROUP BY, ORDER BY и т. Д. c ..).

Поэтому мое беспокойство заключается в следующем:

Каковы могут быть преимущества и недостатки использования прямого доступа к реляционной базе данных для сохранения зерна?

1 Ответ

3 голосов
/ 27 марта 2020

У Орлеана нет мнения о том, как хранить ваши данные: делайте то, что подходит для вашего приложения. В ответ на ваш вопрос, вот некоторые преимущества и недостатки использования ручного маршрута и непосредственного взаимодействия с базой данных вместо использования стандартной модели персистентности.

Преимущества:

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

Недостатки:

  • Менее автоматизировано - вы отвечаете за то, чтобы ваше зерно считывало нужные данные (постоянство зерна выполняет чтение во время активации)
  • Вы отвечаете за управление пулами соединений, вызовами хранилища и т. Д. c
  • Нет автоматизации c управление параллелизмом - разработчик должен предотвратить одновременный доступ, приводящий к неправильной перезаписи данных. Поставщики устойчивости зерна обычно используют проверки ETag для обеспечения согласованности, поэтому вы можете реализовать аналогичную схему, когда делаете это вручную.

Эти преимущества могут быть убедительными, в зависимости от ваших потребностей.

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

...