База данных: Что такое Управление совместным выполнением Мультиверсии (MVCC) и кто поддерживает его? [закрытый]

В моем случае я пытался попасть в службу WebAPI на локальном хостинге из приложения MVC, которое использовало много углового кода. Моя служба WebAPI отлично работала с Fiddler через http: // localhost / myservice . Как только я потратил немного времени, чтобы настроить приложение MVC на использование IIS вместо IIS Express (часть Visual Studio), он работал нормально, не добавляя никакой конфигурации, связанной с CORS, в любую область.

45
задан Basil Bourque 13 August 2016 в 17:54
поделиться

11 ответов

Oracle имела в распоряжении превосходную много систему управления версиями с тех пор очень долго (по крайней мере, так как оракул 8.0)

, следующее должно помочь.

  1. Пользователь A запускает транзакцию и обновляет 1 000 строк с некоторым значением При чтениях Пользователя времени B T1
  2. те же 1 000 строк во время T2.
  3. Пользователь строка обновлений 543 со значением Y (исходное значение X)
  4. Пользователь B добирается до строки 543 и находит, что транзакция в действии со Времени T1.
  5. база данных возвращает неизмененную запись из Журналов. Возвращенное значение является значением, которое фиксировалось в то время меньше чем или равное T2.
  6. , Если запись не могла бы быть получена из журналов отката, это означает, что база данных не является установкой соответственно. Должно быть больше места, выделенного к журналам.
  7. Этот путь непротиворечивость чтения достигается. Возвращенными результатами является всегда то же относительно времени начала транзакции. Таким образом в транзакции непротиворечивость чтения достигается.

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

36
ответ дан Krantz 26 November 2019 в 21:22
поделиться

MySQL также использует MVCC по умолчанию при использовании таблиц InnoDB: http://dev.mysql.com/doc/refman/5.0/en/innodb-multi-versioning.html

1
ответ дан Seun Osewa 26 November 2019 в 21:22
поделиться

MVCC может также быть реализован вручную путем добавления столбца номера версии к таблицам, и всегда выполнение вставляет вместо обновлений.

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

Это - отличное решение для систем, которые требуют аудита 100% для всех изменений.

1
ответ дан Eric Z Beard 26 November 2019 в 21:22
поделиться

Вот ссылка на страницу документа PostgreSQL на MVCC. Кавычка выбора (шахта акцента):

основное преимущество для использования модели MVCC управления совместным выполнением вместо блокировки состоит в том, что в блокировках MVCC, полученных за запросы (чтения), данные не конфликтуют с блокировками, полученными за запись данных, и таким образом чтение никогда запись блоков и запись никогда блоки, не читая .

Поэтому Jeff был так соединен его мертвыми блокировками. Чтение никогда не должно быть в состоянии вызвать их.

1
ответ дан Neall 26 November 2019 в 21:22
поделиться

Firebird делает это, они называют его MGA (Относящаяся к разным поколениям Архитектура).

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

Oracle перезаписывает сами данные и использует откат табличные области сегментов/отмены для других сессий и откатывать.

2
ответ дан Osama Al-Maadeed 26 November 2019 в 21:22
поделиться

Управление совместным выполнением Мультиверсии PostgreSQL

, А также эта статья , которую ВСТАВЛЯЮТ схемы функций того, как MVCC работает при издании, ОБНОВЛЯЕТ, и Операторы удаления.

9
ответ дан Vlad Mihalcea 26 November 2019 в 21:22
поделиться

SQL Server 2005 и предлагает MVCC как опцию; это не значение по умолчанию, как бы то ни было. MS называет его изоляцией снимка, если не изменяет память.

1
ответ дан DrPizza 26 November 2019 в 21:22
поделиться

Следующие компоненты имеют реализацию MVCC:

SQL Server 2005 (Не по умолчанию, SET READ_COMMITTED_SNAPSHOT ON )

Oracle (начиная с версии 8)

MySQL 5 (только с таблицами InnoDB)

PostgreSQL

Firebird

Informix

Я симпатичный убедитесь, что Sybase и IBM DB2 Mainframe / LUW не имеют реализации MVCC

9
ответ дан 26 November 2019 в 21:22
поделиться

В DB2 версии 9.7 есть лицензионная версия postgress plus. Это означает, что данная функция (в правильном режиме) поддерживает эту функцию.

0
ответ дан 26 November 2019 в 21:22
поделиться

В этой статье, написанной соучредителем и генеральным директором McObject в журнале RTC Magazine:

http: //www.rtcmagazine.com/articles/view/101612

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

1
ответ дан 26 November 2019 в 21:22
поделиться

В 11/09 McObject объявила о добавлении дополнительного диспетчера транзакций MVCC к своей встроенной базе данных eXtremeDB:

http://www.mcobject.com/november9/2009

eXtremeDB, первоначально разработанная как система баз данных в памяти (IMDS), теперь доступна в версиях с гибридным (в памяти / на диске) хранилищем, высокой доступностью, поддержкой 64-разрядных систем и т. д.

1
ответ дан 26 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: