Реплекация была дефолтная, т.е. асинхронная, но с одной стороны она была практически мгновенной, а с другой PgBouncer и PgPool с настройками, которые я указывал в PgBouncer pool_mode = session и в PGPool master_slave_mode = on master_slave_sub_mode = 'stream' позволяли избегать проблем.
Само приложение неконсистентное чтение данных не позволяет и не отслеживает. Т.е. при рассинхронизации нод, с точки зрения приложения возможно, что пользователь сохраняет что-то в ЛК, например сменил имя, нажимает F5 и видит старые данные. Это ещё самый безобидный пример, в большинестве случаев это будет ошибка 500, или в dev режиме - красный экран ошибки Symfony и что-нибудь про SQL.
Но PgBouncer держал сессию и все запросы как правило пролетали внутри этой сессии, и PGPool, тоже, как я понял, в рамках сессии все запросы старается направлять на одну какую-то конкретную ноду.
На тот момент (2020) прошло 3,5 года, и версия, да, была 9.6. Мысли про обновление СУБД были, но без доработок кода в папке vendor приложение не работало, поэтому данный вопрос тогда отложили.
Вообще когда доработки архитектуры заканчиваются и нужно всё оформить, возникает много вопросов не касающихся напрямую новых возможностей ПО и тогда не дата релиза определяет решение перехода на новые версии. У нас такие решение принимала целая коллегия. При рассмотрении смотрят, например, если приложение аттестовано, как повлияет на аттестацию новая версия ПО, является ли оно рекомендованным и протестированным на этой версии ОС, есть ли какие-то рекомендации ФСТЭК, есть ли одобрение на эти действия вышестоящих инстанций и т.п.
Про важность опенсорс проектов, это спорный вопрос, мне кажется, они и не нужны. Это даже лучше. Кто возьмёт программиста, если он на собеседовании признался, что у него шило в одном месте, он участвует в 5 стартапах, ведёт опенсорс проект, выступает на конференциях и ещё по выходным в группе волонтёров занимается проблемами раздельного сбора мусора. Это как на первом свидании признаться, что у тебя другая.
Да, xAPI активно развивается и те у кого будут опыт и наработки по этой методологии и технологии будет иметь преимущество. Мы тоже используем xAPI для сбора данных о результатах обучения. Про это планируется следующая статья.
Для организаторов e-learning до сих пор существует проблема получения информации об образовательной деятельности учащихся за пределами LMS (на порталах вебинаров, сайтах библиотек, симуляторах). Вынесение статистической базы достигнутых результатов обучения за пределы LMS решает эту проблему, что как раз реализовано в xAPI через LRS.
Такое решение становится особенно актуально для крупных организаций федерального уровня с разветвленной филиальной сетью, где в каждом филиале есть своя система электронного обучения. Для них создание единой базы статистики обучения + портал мониторинга, как интерфейс к этой базе — наиболее эффективное решение. СЭО отправляют данные в единую БД, а все филиалы и центральный офис смотрят статистику в своем разделе на портале.
По этой технологии мы работаем с поставщиками курсов. У каждого поставщика свой определенный WorkFlow, подробностями которого они в деталях не делятся. У кого-то это Indesign + свои разработки на Java, которые автоматизируют создание тестов и привязывают xAPI функции. На выходе из набора различных ресурсов (видео, текст, тесты) компилируется ePUB.
Кто-то готовит курсы в других редакторах поддерживающих экспорт в ePUB, и вручную заполняет xml-файлы к ним. В отдельном случае коллегами дорабатывалась OpenSource программа Sigil для работы с ePUB, и с её помощью автоматизировались некоторые операции.
Пакеты ePUB, содержащие описания тестов, находятся в обращении только между репозиториями и администраторами LMS, на устройства учащихся они не загружаются. В нашем случае это формат, в котором мы принимаем курсы от издателей.
Реплекация была дефолтная, т.е. асинхронная, но с одной стороны она была практически мгновенной, а с другой PgBouncer и PgPool с настройками, которые я указывал в PgBouncer pool_mode = session и в PGPool master_slave_mode = on master_slave_sub_mode = 'stream' позволяли избегать проблем.
Само приложение неконсистентное чтение данных не позволяет и не отслеживает. Т.е. при рассинхронизации нод, с точки зрения приложения возможно, что пользователь сохраняет что-то в ЛК, например сменил имя, нажимает F5 и видит старые данные. Это ещё самый безобидный пример, в большинестве случаев это будет ошибка 500, или в dev режиме - красный экран ошибки Symfony и что-нибудь про SQL.
Но PgBouncer держал сессию и все запросы как правило пролетали внутри этой сессии, и PGPool, тоже, как я понял, в рамках сессии все запросы старается направлять на одну какую-то конкретную ноду.
На тот момент (2020) прошло 3,5 года, и версия, да, была 9.6. Мысли про обновление СУБД были, но без доработок кода в папке vendor приложение не работало, поэтому данный вопрос тогда отложили.
Вообще когда доработки архитектуры заканчиваются и нужно всё оформить, возникает много вопросов не касающихся напрямую новых возможностей ПО и тогда не дата релиза определяет решение перехода на новые версии. У нас такие решение принимала целая коллегия. При рассмотрении смотрят, например, если приложение аттестовано, как повлияет на аттестацию новая версия ПО, является ли оно рекомендованным и протестированным на этой версии ОС, есть ли какие-то рекомендации ФСТЭК, есть ли одобрение на эти действия вышестоящих инстанций и т.п.
На момент проектирования системы в 2016 году Postgresql 9.6 только вышел (29 сентября 2016) и не был старым.
Про важность опенсорс проектов, это спорный вопрос, мне кажется, они и не нужны. Это даже лучше. Кто возьмёт программиста, если он на собеседовании признался, что у него шило в одном месте, он участвует в 5 стартапах, ведёт опенсорс проект, выступает на конференциях и ещё по выходным в группе волонтёров занимается проблемами раздельного сбора мусора. Это как на первом свидании признаться, что у тебя другая.
Для организаторов e-learning до сих пор существует проблема получения информации об образовательной деятельности учащихся за пределами LMS (на порталах вебинаров, сайтах библиотек, симуляторах). Вынесение статистической базы достигнутых результатов обучения за пределы LMS решает эту проблему, что как раз реализовано в xAPI через LRS.
Такое решение становится особенно актуально для крупных организаций федерального уровня с разветвленной филиальной сетью, где в каждом филиале есть своя система электронного обучения. Для них создание единой базы статистики обучения + портал мониторинга, как интерфейс к этой базе — наиболее эффективное решение. СЭО отправляют данные в единую БД, а все филиалы и центральный офис смотрят статистику в своем разделе на портале.
Кто-то готовит курсы в других редакторах поддерживающих экспорт в ePUB, и вручную заполняет xml-файлы к ним. В отдельном случае коллегами дорабатывалась OpenSource программа Sigil для работы с ePUB, и с её помощью автоматизировались некоторые операции.