Какой правильный термин для описания «постоянной транзакции»?
-
16-10-2019 - |
Вопрос
Я вроде администратора oodBMS с нулевым применением, но в основном я занимаюсь программированием.
Я помню, как читал несколько лет назад о какой -то базе данных SQL, которая имела концепцию чего -то вроде постоянной транзакции. Это могло быть Sybase. В любом случае, то, что было «вещь», было похоже на транзакцию, которую вы начинаете, и это сохраняется между соединениями и с помощью которых вы можете запустить «нормальные» транзакции. Он в основном дал вам «представление» этой базы данных, которая может расходиться с основной базой данных, но работает на одном и том же сервере, и, следовательно, обмен большей частью ресурса вместо того, чтобы иметь свой собственный »сервер. Надеюсь, вы понимаете, о чем я сейчас.
В любом случае, что называется такая вещь, и это все еще доступно в современных базах данных. В частности, есть ли какие -либо из причудливых распределенных баз данных NOSQL, которые могут это сделать?
Причина, по которой я прошу, в том, что я мог бы использовать что -то подобное, чтобы запустить постановку следующей версии моего программного обеспечения в основной базе данных, сохранив мне необходимость иметь систему постановки, которая так же мощна, как и основная, и Проблема/полоса пропускания синхронизации изменений от основного к тесту. Я бы просто запустил «постоянную транзакцию», протестировал новое программное обеспечение в течение нескольких дней, возможно, позволив некоторым пользователям получить предварительный просмотр и выбрасывать изменения, когда я закончу. Затем я делаю реальное развертывание и начинаю новую «постоянную транзакцию» для следующей версии ...
NB: Я не мог поставить значимые теги, потому что это мой первый пост, и у меня не было права изобретать теги, и не было ничего, как «настойчивый», или «постоянный» или даже «долгое время» ...
Решение
Я знаю, что вы имеете в виду, мы делаем это на хранении, используя NetApp Flexclones. Анкет Flexclone «выглядит», как копия файловой системы, но базовые блоки на дисках - это копирование при записи, Таким образом, единственное пространство, которое он на самом деле занимает, - это изменения, которые вы вносите.
Однако клон нет Поток изменений, как журнал redo. Способ работы NetApp заключается в том, что каждый блок, который вы видите на уровне файловой системы, действительно является просто указателем на блок на «реальном» хранилище. Создание FlexClone - это просто вопрос копирования списка указателей, так что это очень легкая операция. Когда вы меняете блок на Flexclone, указатель перемещается на свежий блок, а оригинал копируется, затем он продолжается как обычно. Это имеет два интересных последствия:
- После того, как вы изменили блок один раз, вы можете сменить его столько раз, сколько захотите - он больше не будет занимать хранилище
- Как только начальная корова будет сделана, скорость доступа к FlexClone идентична скорости реального объема.
Мы обычно ставят первичный Режим Hotbackup (Для Oracle, но, поскольку он находится на хранении, это будет работать с любой базой данных, которая имеет эквивалентный режим), сгибайте хранилище, установите клон NFS на (намного меньший) тестовый сервер, а затем создайте новый файл управления, восстановить базу данных от архивированных бреван resetlogs
. Анкет По умолчанию мы разрешаем «резерв» в размере 10% (то есть вы можете изменить до 10% клона), но это полностью настраивается - вы можете сделать его на 100% и сделать «разделение», что также создает независимую копию. Эта технология (с некоторыми умными сценариями оболочки) приводила к созданию тестовых среда с 3+ дней до нескольких минут на моем сайте, я большой поклонник.
Другие советы
Я думаю, что вы ищете отключенный набор данных. Он усложняет управление транзакциями, поскольку вы не можете поддерживать блокировки базы данных.
Драйверы JDBC позволяют отключить набор данных из базы данных.