Что подразумевается под неразрушающей эволюцией схемы в Anchor Modeling?
Допустим, у вас есть модель привязки и замените один атрибут Name тремя атрибутами: FirstName, MiddleName и LastName. Что происходит с оригинальным атрибутом имени? Я могу представить себе другие изменения схемы, которые кажутся разрушительными, так что подразумевается под заявлением Anchor Modeling о развитии схем неразрушающим образом?
1 ответ
Разрушительные операции влияют на время безотказной работы
Это, вероятно, относится к его взаимодействию с временем работы. Если вы измените базовую таблицу достаточного размера, вы приостановите запросы к ней, пока она не будет завершена. При моделировании привязки такого сценария не существует, поскольку новые столбцы являются новыми объектами, которые не взаимодействуют с базовыми таблицами (с точки зрения блокировки операций ввода-вывода для базовой таблицы, кроме удалений, что является спорным, поскольку новые столбцы реализованы как пустые таблицы).
Итак, допустим, у вас есть базовая таблица Person с атрибутом FullName. И затем вы получили неразрушающее развитие, включив в себя FirstName, MiddleName и LastName. Таблица FullName, вероятно, будет продолжать использоваться до тех пор, пока все пути кода не примут First, Middle и Last. В этот момент он становится своего рода рудиментарным органом, чтобы продолжить эволюционную аналогию.
Аудит (удаление) этой таблицы также неразрушающий. Как отдельный объект, уничтожение его времени жизни не прерывает работу ни одной из базовых таблиц или таблиц атрибутов.
Так что это, вероятно, то, что авторы якорной модели имели в виду под разрушительным.
Разрушительно для безотказной работы.