|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Sergey Prach 2:5020/400 05 Jan 2003 01:29:32 To : Vladimir Pavlikov Subject : Re: Синхронизация доступа к БД -------------------------------------------------------------------------------- Hi! "Vladimir Pavlikov" <pvv@soil.msu.ru> сообщил/сообщила в новостях следующее: news:av6thf$7ph$1@host.talk.ru... > Hello, Sergey Prach! > SP> Так разумеется или желательно?! Второе утверждение как бы ну > SP> никак не поглощает первое? > > Откатись по треду : операция всегда в одной транзакции, много опера- > ций _желательно_ не пихать все в одну транзакцию. Т.е. речь о разном - > никаких поглощений. Володя, а ты знаешь откуда появился сам термин - транзакция? Этому термину столько, сколько банковскому делу. Изначально он означал перевод денежных средств из одного места в другое, еще когда весь баланс на стареньких костяных счетах просчитывался. А к чему это я? Ах, да - к тому, что любая оперция, которая требует перноса некоего значения и соблюдения целостности состояния системы, должна быть выполнена в рамках одной транзакции и требует двух операций - снятия значения и уменьшения в одном месте, и приращения в другом. А так как, существуют еще некие дополнительные условия на выполнение транзакции, типа соблюдение положительности значений, то "одна операция - одна транзакция" довольно трудно реализуемо и мало применимо. Это просто компьютерщики опустили понятие транзакции до одиночного SQL-оператора. > > SP> Хорошо, давай без "ну". Володенька, приведи пожалуйста пример > SP> реализации моментального SNAPSHOT-а для БД в 10-20Гб, или хотя бы > SP> что бы он был более эффективен чем SERIALIZABLE, когда модификации > SP> подвергаются около 20% данных. > > Тебе уже несколько раз объясняли (не только я), что на версионнике > "снимок" не зависит от : > 1. размера базы > 2. Объема модификаций > 3. всегда мгновенный > Т.е. твой вопрос - бессмысленен. Привожу пример, T1 и T1 - 1 -я и 2-я транзакции, r(x) - чтение записи x, w(x)-изменения состояния записи x: 1. T1: start; w(x=d1); 2. T2: start; w(y=d2); commit; 3. T3: r(y=?);w(y=d3);commit; Указанная последовательность (а в ней действительно нет ничего криминального) не нарушает ни одно из классических определений феноменов. Hо, как уже было правильно подмечено, что у версионников версии данных должны соответствовать значениям, на момент начала траназкции. Так вот вопрос, что прочитает T1 из записи y - значение на момент старта T1 или закомиченное значение T2? А теперь объясни в чем суть уровня snapshot, дословный перевод которого - моментальный снимок. -- С уважением, Сергей Прач ================= Please, send you private mail to: s_pratch@mail.ru --- ifmail v.2.15dev5 * Origin: LtawaSoft (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/16786bdacbd67.html, оценка из 5, голосов 10
|