:: Visual Foxpro, Foxpro for DOS
Re: небольшой тест на атомарность транзакции
Петров Андрей

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
А если с индексом?
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Не знаю проверял на Win2Ksp4 VFP9SP1 - так как комп у меня слабоват -то END TRANSATIN затягивался на 500 000 записей на долго поэтому не поняв в чем причина снимал ТРИ раза задачу - данные оставалиь не тронутыми как до BEGIN TRANSACTION сразу после END TRANSACTION стоит sys(1079,1) которая вали фокс с ног - поэтому никакая буферизация пройти не могла - данные былы ПОЛНОСТЬЮ на диске специально проверял. Я вообщше те тесты которые сам не проверил на форуме не публикую. ПОэтому могу ничего по Вашей проблеме сказать не могу.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
H5N1

Сообщений: 10
Дата регистрации: 28.02.2006
зато я знаю
смысла снимать 3 раза оператор update никакого нет, в этот момент все пишется в буфер транзакции (говорят если памяти не хватает это какой-то tmp файлик), точно также нет никакого смысла рушить по sys(1079,1) после end transaction. фокс это один процесс, т.е. vfp сначало этот процесс закончит (оператор end transaction ака запись в dbf файл) и только потом выполнит краш по sys(1079,1), в чем смысла маловато.
именно поэтому у меня сначала идет апдейт и только потом меседжбокс (к стате апдейт идет гораздо дольше чем сброс буфера в dbf), т.е. нажав ок я четко знаю что end transaction начал писать в dbf файл, вот тут у вас есть пара секунд чтоб убить фокс, и не по sys(1079,1) который будет ждать пока все запишется в dbf, а ручками, ручками нада.



Исправлено 2 раз(а). Последнее : H5N1, 01.03.06 23:08
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
Aleksey Tsingauz [MSFT]
Автор

Сообщений: 407
Дата регистрации: 15.06.2004
piva
...Так что спасибо ребятам из MSFT и Алексею Цингауз в частности
От лица MSFT - спасибо за благодарность, а лично я пришел в команду гораздо позднее, транзакции уже поддерживались.

По существу вопроса:
Транзакции VFP не защищают от сбоя "железа". Если произойдет сбой во время выполнения END TRANSACTION, то может получиться, что изменения будут записаны частично. Пока транзакция не завершена, все изменения и блокировки кэшируются приложением. Если транзакция откатывается, то кэш просто выбрасывается. Если транзакция закрывается, то изменения скопом сбрасываются на диск, что гораздо быстрее чем если бы пришлось писать по мере выполнения отдельных команд. Сильно большими (по объему именений) транзакциями сильно злоупотреблять не стоит, да и защиту от сбоев "железа", если уж оно такое ветхое, никто не отменял. Регулярный backup, источник бесперебойного питания (если проблемы с питанием), сетевой шнурок "потолще", ... Я думаю всегда можно найти баланс между ценой и качеством, ведь даже Sql Server, сам по себе, не поможет если винт с базой слетел.

Алексей.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
h.i.a.

Сообщений: 4002
Откуда: Мурманск/Спб/Мск
Дата регистрации: 18.11.2005
2 H5N1 Если задаться целью что-либо сломать, цель рано или поздно будет достигнута.
Только вопрос: зачем?
Зачем в реальной программе юзеру с рабочей станции делать транзакцию с апдейтом на 500 000 записей? Зачем пытаться дергать сетевой шнур, давайте уж сразу выдергивать шлейф из жесткого диска и смотреть испортится таблица или нет Или процессор из материнской платы...
Если на практике нужно (в чем я сильно сомневаюсь) делать такие большие транзакции и остро стоит вопрос о надежности сетевого соединения, никто не запрещает:
1. Поставить Terminal Server
2. Установить по 2 сетевых карты на компьютер и сделать транк.
3. Сделать трехслойную архитектуру.
4. Делать резервные копии данных.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
KID

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
piva
Не знаю проверял на Win2Ksp4 VFP9SP1 - так как комп у меня слабоват -то END TRANSATIN затягивался на 500 000 записей на долго поэтому не поняв в чем причина снимал ТРИ раза задачу - данные оставалиь не тронутыми как до BEGIN TRANSACTION сразу после END TRANSACTION стоит sys(1079,1) которая вали фокс с ног - поэтому никакая буферизация пройти не могла - данные былы ПОЛНОСТЬЮ на диске специально проверял. Я вообщше те тесты которые сам не проверил на форуме не публикую. ПОэтому могу ничего по Вашей проблеме сказать не могу.

Да я делал так же, только на 5-ке и 7-ке фокса...
Как и пишет H5N1 рвал сетевой шнур через 3-5 секунд после мессаджбокса. хотя на моей машине (Целерон 1,2) можно было ждать и 15 секунд, медленно все это шло...
как результат 50/50 то есть некая часть проапдейтилась, остальная нет. Остался ТМП файл, а котором, коль глянуть содержимое остатики того, что непроапдейтилось..
На СКЛ-ру H5N1 сообщил, что у него вообще таблица порушилась, у меня НЕ ПОРУШИЛАСЬ.. только то, что описал.
Из чего сделал вывод - коль такое лошадиное количество мдификаций Транзакция не поможет увы, с другой стороны делать влет такое количество модификаций за раз, лично я бы не рискнул даже на СКЛ сервер, нет не так - я бы делал, если бы нужно было, но в душе бы все же беспокоился, понятно, что сервер должен это принять нормально, но тем не менее беспокойство бы оставалось.. мало ли что....
А в реальных учетных задачах, для коих и используется ВФП такие модивикации, кажется мне == плохой тон.
Могу ошибаться разумеется
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
KID

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
h.i.a.
2 H5N1 Если задаться целью что-либо сломать, цель рано или поздно будет достигнута.
Только вопрос: зачем?

судя по боям на СКЛ-ру - этот человек пытается всех убедить, что нужно использовать бесплатные СКЛ сервера, или платные.
Глупая затея - пытаться убеждать в этом.
Кстати проверил на МЕНЬШЕМ количестве модификаций внутри транзакции (100-1000)
поломать не удалось. А реально есть у кого-то за раз больше модификаций? У меня небыло никогда, может у кого-то и есть
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
По моему - Алексей уже все сказал по этому поводу. Добавить просто нечего


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
H5N1

Сообщений: 10
Дата регистрации: 28.02.2006
2Aleksey Tsingauz [MSFT]
у меня есть один вопрос, может вы как MSFT сможете мне его разьяснить. я не знаю существует ли понятия не ACID транзакция, но допустим существует. вопрос с какой целью майкрософт утверждает в технической документации, что в случае неудачи "transaction are restored to their original state" что не соответствует действительности ?
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Да в этом плане журнал транзакций не помешал бы


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
H5N1

Сообщений: 10
Дата регистрации: 28.02.2006
2All
не знаю оставит ли это сообщение модератор, но попробую разьяснить зачем я сюда пришел, а то спрашивают. На неком сайте я влез в относительно культурный спор в котором между прочем упянул, что транзакций в vfp нет. в результате дальнейшего разговора я выяснил, что ни один из 6-8 опанентов не представляет как работает vfp, в течении 3х недель я рисовал, объяснял, показывал краш тесты и в конце концов исчерпав свой словарный запас плавно перевел спор в не совсем культурный
да, а сюда я приходил лишь затем, что те опаненты не смогли провести этот элементарный тест самостоятельно, я понадеялся, что тут будут вменяемые люди. рад что не ошибся.



Исправлено 1 раз(а). Последнее : H5N1, 02.03.06 11:02
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
KID

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
Итак ответ на вопрос - почему в доках написано "transaction are restored to their original state"
Вероятно это отсюда?
To save any modifications you made and end the transaction,
issue END TRANSACTION. If the transaction fails (the server fails,
the workstation fails, or you exit Visual FoxPro without committing the transaction
)
or if you issue ROLLBACK, the file or files in the transaction are
restored to their original state.

то Бог их знает, почему они так пишут, вероятно им не пришло в голову в транзакции валить полмиллиона данных, поняли изначально, что такой подход не умный?


H5N1
2All
не знаю оставит ли это сообщение модератор, но попробую разьяснить зачем я сюда пришел, а то спрашивают. На неком сайте я влез в относительно культурный спор в котором между прочем упянул, что транзакций в vfp нет. в результате дальнейшего разговора я выяснил, что ни один из 6-8 опанентов не представляет как работает vfp, в течении 3х недель я рисовал, объяснял, показывал краш тесты

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



Исправлено 1 раз(а). Последнее : KID, 02.03.06 16:02
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
Вячеслав Клепинин

Сообщений: 1597
Откуда: Санкт-Петербург
Дата регистрации: 26.03.2004
to H5N1

Спор на пустом месте...
"На неком сайте я влез в относительно культурный спор в котором между прочем упянул, что транзакций в vfp нет"

В VFP9 поддерживаются транзакции не только для таблиц баз данных, но и для свободных таблиц и курсоров, созданных командой CREATE CURSOR. Для этого добавлены две новые функции: MAKETRANSACTABLE() и ISTRANSACTABLE(). ISTRANSACTABLE()() принимает номер рабочей области или алиас как параметр и возвращает логическое значение, указывающее, обеспечиваются ли транзакции для указанной таблицы или курсора. MAKETRANSACTABLE() включает поддержку транзакций для всех алиасов таблиц в текущем сеансе данных.
Если транзакции поддерживаются, то можно использовать команды BEGIN TRANSACTION, END TRANSACTION и ROLLBACK для управления процессом.
Другое дело - это то, что не ведётся журнал транзакций, то есть на время скидывания кэшированных данных система не защищена от сбоев и данные не могут вернуться в исходное состояние. Но вряд ли это можно расценивать как недостаток.
Достоинств у фокса гораздо больше!



Исправлено 1 раз(а). Последнее : Вячеслав Клепинин, 02.03.06 17:43
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
H5N1

Сообщений: 10
Дата регистрации: 28.02.2006
KID
то Бог их знает, почему они так пишут, вероятно им не пришло в голову в транзакции валить полмиллиона данных, поняли изначально, что такой подход не умный?
ну, то что простительно вам, уважаемый, может выйти боком претендующему на лидерство производителю софта. предположить, что сотрудники майкрософт были настолько некомпетентны, когда называли эту конструкцию транзакцией думаю было бы слишком смело, скорее всего это связанно с маркетингом.
на счет пол милиона - наверно вы не поняли, такой объем взят лишь для примера, никакой разницы в 2х записях или 2х милионах нет, просто у транзакции модифицирующей две записи несколько меньше шансов привести бд в неконсистентное состояние. чем больше конкурентных пользователей тем больше шансов, что в базе останется мусор.
я понимаю, что вам это тяжело сейчас понять, вы сейчас злитесь, нервничаете, но может позже, может с опытом .. понимание прийдет.
KID
На СКЛ-ру H5N1 сообщил, что у него вообще таблица порушилась, у меня НЕ ПОРУШИЛАСЬ.. только то, что описал.
у меня ? у меня update не рушился, insert рушит, кто-то предположил что insert пишет в конец файлика а потом модифицирует загловок, т.е. если вырубить до того как модифицируется заголовок то данные заголовка не совпадут с размером файла и фокс потребует чинить dbf.

2Вячеслав Клепинин
Вас не понял, высказывания "В VFP9 поддерживаются транзакции" и "не защищена от сбоев и данные не могут вернуться в исходное состояние" полностью противоречат друг другу.
Да, еще не понял какую связь вы обнаружили между логом транзакции и обеспечением ACID ? в субд Interbase отсутствует лог, но ACID транзакций он все же обеспечивает. да и в оракле сегмент отката логом транзакций не называют.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
h.i.a.

Сообщений: 4002
Откуда: Мурманск/Спб/Мск
Дата регистрации: 18.11.2005
H5N1
я понимаю, что вам это тяжело сейчас понять, вы сейчас злитесь, нервничаете, но может позже, может с опытом .. понимание прийдет.
Да куда уж нам, до Вас. Тут только одни новички собрались. Мы умные книжки не читаем и ничего кроме фокса не знаем
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
Joys

Сообщений: 3509
Откуда: Старая Русса
Дата регистрации: 25.06.2000
Господа, если обсуждение не вернется в спокойно-нормальное русло, тему закрою.
а первому, кто нарушит правила после этого моего поста- бан на неделю.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
Combat

Сообщений: 816
Откуда: Клайпеда
Дата регистрации: 26.10.2000
Ты так и не понял главной мысли - баланс между ценой и качеством.
Куча известных мне решений используют однопроцессорную машину с одним ХДД
(никаких зеркал и RAID-ов) и, к примеру MSDE... в качестве сервера БД.
Так что в пору переключаться на теорию относительности - вероятность слёта
какого железа больше или меньше.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
Combat

Сообщений: 816
Откуда: Клайпеда
Дата регистрации: 26.10.2000
Пост конечно адресовался H5N1...
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
grayalex

Сообщений: 249
Откуда: Рыбница
Дата регистрации: 11.01.2006
Цитата:
ну, то что простительно вам, уважаемый, может выйти боком претендующему на лидерство производителю софта. предположить, что сотрудники майкрософт были настолько некомпетентны, когда называли эту конструкцию транзакцией думаю было бы слишком смело, скорее всего это связанно с маркетингом.

Ну так в чем проблема? Пиши крутую СУБД, которая бы поддерживала ТЕОРЕТИЧЕСКОЕ определение понятия транзакции.

Цитата:
на счет пол милиона - наверно вы не поняли, такой объем взят лишь для примера, никакой разницы в 2х записях или 2х милионах нет
Если нет разницы, то получается, что и 1 кБ, и 10 МБ данных можно выплюнуть на диск одной порцией? Что-то сильно сомнительно, секторную организацию хранения данных на винтах еще никто не отменял. И путать понятия порчи данными транзакцией или физическим сбоем не стоит.
Аргументов можно привести мульен.


------------------
"И понял я, что непонятен мир..."
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
KID

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
H5N1
производителю софта. предположить, что сотрудники майкрософт были настолько некомпетентны, когда называли эту конструкцию транзакцией думаю было бы слишком смело, скорее всего это связанно с маркетингом.

полностью согласен.. маркетинг движет прогрессом, но никак не ФС или КС технологии, увы

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

Похоже нервничаете только Вы, и начинаете тут, то же, что и на СКЛ-ру - уверяю вас не стОит этого делать
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 31 vnkor  (Гостей: 30)

© 2000-2024 Fox Club 
Яндекс.Метрика