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

Сообщений: 10
Дата регистрации: 28.02.2006
для разрешения спора немог бы кто-нибудь огласить результат небольшого теста:
создаем базу данных data1 в ней табличка table1 с полем name. в табличке 500 тыс. записей со значением в поле name "AAA". далее запускаем такой код:

CLOSE ALL
CLOSE DATABASES
OPEN DATABASE "c:\path to database\data1.dbc" SHARED
BEGIN TRANSACTION
UPDATE data1!table1 SET name = 'BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB'
= Messagebox('END TRANSACTION')
END TRANSACTION

дожидаемся окошка END TRANSACTION и после, повторяю после нажатия OK, секунды через 2-3, во время сбрасывания содержимого буфера транзакции в dbf файл, убить процесс VFP (эмулирование сбоя).
не мог бы кто-нибудь показать, что будет в табличке table1, например результат такого запроса:
select count(*), name from data1!table1 group by name
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
KID

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
Долго писать будет 500 тысяч.. нету времени, но проверю..
Берусь предугадать...
Если локально срубить процесс - то вероятно таблица будет порушена. Но тем не менее начинаю пробовать
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Есть вероятность, что не все данные прилипнут, поскольку окончание транзакции не связано со сборосом буфера ОС. Какие-то обсуждения были здесь forum.foxclub.ru


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
H5N1
Автор

Сообщений: 10
Дата регистрации: 28.02.2006
PaulWist
Есть вероятность, что не все данные прилипнут, поскольку окончание транзакции не связано со сборосом буфера ОС. Какие-то обсуждения были здесь forum.foxclub.ru
т.е. вы считаете что если срубить процесс "связаный со сборосом буфера ОС" то откатить транзакцию и вернуть на место предыдущии значения полей будет попросту некому ?

вот немогли бы вы это проверить тестом, время сброса буферов (500К записей) на современном десктопе занимает секунд 5 и примерно 100мб.

ЗЫ. к стате создать в цикле 500K записей на десктопе занимает минуты 3-5.



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

Сообщений: 14618
Дата регистрации: 01.04.2004
Я проверял на таблице под 2Г размером, выдергиванием сетевого шнурка. К сожалению ОС файл-сервера не знает про Фоксовские транзакции, поэтому гарантию может дать только "Гострах"

Вы обьясните цель исследования и почему сами не можите проделать этот тест.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
s.e.r.g.e.y.

Сообщений: 2838
Откуда: Киев
Дата регистрации: 22.04.2005
PaulWist
Я проверял на таблице под 2Г размером, выдергиванием сетевого шнурка. К сожалению ОС файл-сервера не знает про Фоксовские транзакции, поэтому гарантию может дать только "Гострах"
Вы обьясните цель исследования и почему сами не можите проделать этот тест.

Да не обращайте внимания.
Там на SQL.RU спорят по поводу Фокса.
Вот H5N1 и пытается доказать , что есть только Оракл а на Фоксе пишут только "лохи" и "тормознутые"
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Не надо тут устраивать SQL.RU :moder:


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

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
Тестил по сети, с вырыванием сетевого коннектора..
часть апдейтов прошла, часть не прошла.
Таблица как ни странно не разрушилась.. БД жива, вот только жаль, что не все апдейты прошли
Хотя при таком количестве да для ФС нужно очень осторожно это делать (ИМХО)
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
Ден

Сообщений: 184
Дата регистрации: 23.03.2005
Здравствуйте! А что если после END TRANSACTION поставить FLUSH FORCE и обрубить уже после запуска flush? Доведет OC дело до конца или нет?
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Разрешите доложить ?
Прога №1
Create Database BUG
Create Table BUG Name BUG (TEXT C(20))
For i=1 to 500000
Insert into bug values("111")
Next
Прога №2
Begin Transaction
Update bug set Text="222"
End Transaction
? 'END TRANSACTION'
Sys(1079,1)
? 'END'
Табла получилась 10 метров размером
По началау я думал фокс завис насмерть - ТРИ раза сносил во время команды END TRANSATION нифига - все данные оказалиь не тронутыми. После того как все-таки дождался окончания транзакции сразу стоит слет фокса - все данные уже поменянные. Так что все работает как задумано и прога пока данные не сбросит за END TRANSACTION не выходит.
Так что рыжая морда лишний раз подтвердила что ей можно верить.
Так что спасибо ребятам из MSFT и Алексею Цингауз в частности


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

Сообщений: 184
Дата регистрации: 23.03.2005
Это здорово!
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Вадим, а кто такой Sys(1079,1), то что она делает я уже проверил


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Запусти sys(1079) и почитай
"Cause an intentional crash for test pursoses"


------------------
Часто бывает так, что есть над чем задуматься, а нечем.




Исправлено 1 раз(а). Последнее : piva, 01.03.06 14:12
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Блин, читать-то где, а то что произойдёт - это я уже попробовал. :moder:


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Нигде - нашел случайно прогой
On Error Note
For i=1 to 4000
? i,Sys(i)
Next
On Error


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

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Так же нет описания функции sys(1018) а между прочим урравление блокированием индекса при TableUpdate
sys(2024) описана а sys(2025) нет
sys(2701) - {l:0,t:0, w:0, h:0} <- Это хто ?


------------------
Часто бывает так, что есть над чем задуматься, а нечем.




Исправлено 1 раз(а). Последнее : piva, 01.03.06 14:33
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
"Огласите весь список, пжалста" (С)


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
1 2453796
2 59181
3 59181306
5 C:
9 76683-335-9439532-18953
12 655360
13 READY
16 C:\C\МОИ ДОКУМЕНТЫ\VISUAL FOXPRO PROJECTS\SYS.FXP
17 Pentium
21 0
23 0
24 0
100 ON
101 SCREEN
102 OFF
103 OFF
602 1
1000 0
1001 1071579136
1002 0
1003 0
1004 1125320
1005 231834
1006 230455
1007 0
1008 0
1009 0
1010 0
1011 1385
1012 535
1013 1070453816
1014 0
1015 0
1016 1125320
1017 1311008
1018 Hold Index Lock during TableUpdate: On
1037 0
1101 174325760
1102 210123
1103 144587
1104 0
1105 0
1270
2003 \C\МОИ ДОКУМЕНТЫ\VISUAL FOXPRO PROJECTS
2004 C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\
2005 C:\VFP9\VFP9.DBF
2006 Color/Color
2010 255
2012 0
2013 _MFIRST _MLAST _MSYSMENU _MSM_SYSTM _MSM_FILE _MSM_EDIT _MSM_DATA _MSM_RECRD _MSM_PROG _MSM_WINDO _MSM_VIEW _MSM_TOOLS _MSM_FORMAT _MSYSTEM _MST_OFFICE _MST_HELP _MST_HPSCH _MST_HPHOW _MST_MACRO _MST_SP100 _MST_FILER _MST_CALCU _MST_DIARY _MST_SPECL _MST_ASCII _MST_CAPTR _MST_PUZZL _MST_SP200 _MST_DBASE _MST_SP300 _MST_TECHS _MST_ABOUT _MST_DOCUM _MST_SAMP _MST_VFPWEB _MFILE _MFI_NEW _MFI_OPEN _MFI_CLOSE _MFI_CLALL _MFI_SP100 _MFI_SAVE _MFI_SAVAS _MFI_REVRT _MFI_SP200 _MFI_SETUP _MFI_PRINT _MFI_SYSPRINT _MFI_PRINTONECOPY _MFI_SP300 _MFI_QUIT _MFI_PREVU _MFI_PGSET _MFI_IMPORT _MFI_EXPORT _MFI_SP400 _MFI_SEND _MEDIT _MED_UNDO _MED_REDO _MED_SP100 _MED_CUT _MED_COPY _MED_PASTE _MED_PSTLK _MED_CLEAR _MED_SP200 _MED_INSOB _MED_OBJ _MED_LINK _MED_CVTST _MED_SP300 _MED_SLCTA _MED_SP400 _MED_GOTO _MED_FIND _MED_FINDA _MED_REPL _MED_REPLA _MED_SP500 _MED_BEAUT _MED_PREF _MDATA _MDA_SETUP _MDA_BROW _MDA_SP100 _MDA_APPND _MDA_COPY _MDA_SORT _MDA_TOTAL _MDA_SP200 _MDA_AVG _MDA_COUNT _MDA_SUM _MDA_CALC _MDA_REPRT _MDA_LABEL _MDA_SP300 _MDA_PACK _MDA_RINDX _MRECORD _MRC_APPND _MRC_CHNGE _MRC_SP100 _MRC_GOTO _MRC_LOCAT _MRC_CONT _MRC_SEEK _MRC_SP200 _MRC_REPL _MRC_DELET _MRC_RECAL _MPROG _MPR_DO _MPR_SP100 _MPR_CANCL _MPR_RESUM _MPR_SP200 _MPR_COMPL _MPR_GENER _MPR_SP300 _MPR_BEAUT _MPR_DOCUM _MPR_GRAPH _MPR_SUSPEND _MWINDOW _MWI_ARRAN _MWI_HIDE _MWI_HIDEA _MWI_SHOWA _MWI_CLEAR _MWI_SP100 _MWI_MOVE _MWI_SIZE _MWI_ZOOM _MWI_MIN _MWI_ROTAT _MWI_COLOR _MWI_SP200 _MWI_CMD _MWI_VIEW _MVI_TOOLB _MVIEW _MVI_TOOLB _MTOOLS _MTL_WZRDS _MTL_SP100 _MTL_SP200 _MTL_SP300 _MTL_SP400 _MTL_OPTNS _MTL_BROWSER _MTI_FOXCODE _MTL_DEBUGGER _MTI_TRACE _MWI_TRACE _MTI_WATCH _MWI_DEBUG _MTI_LOCALS _MTI_DBGOUT _MTI_CALLSTACK _MREPORT _MLABEL _MBROWSE _MBR_MODE _MBR_GRID _MBR_LINK _MBR_CPART _MBR_SP100 _MBR_FONT _MBR_SZFLD _MBR_MVFLD _MBR_MVPRT _MBR_SP200 _MBR_GOTO _MBR_SEEK _MBR_DELET _MBR_APPND _MMACRO _MDIARY _MFILER _MSCREEN _MMBLDR _MMB_GOPTS _MMB_MOPTS _MMB_SP100 _MMB_PREVU _MMB_SP200 _MMB_INSRT _MMB_INSBR _MMB_DELET _MMB_SP300 _MMB_QUICK _MMB_GENER _MPROJ _MRQBE _MSM_TEXT _MWIZARDS _MWZ_TABLE _MWZ_QUERY _MWZ_FORM _MWZ_REPRT _MWZ_LABEL _MWZ_MAIL _MWZ_PIVOT _MWZ_IMPORT _MWZ_FOXDOC _MWZ_UPSIZING _MWZ_ALL _MTABLE _MTB_PROPS _MTB_SP100 _MTB_GOTO _MTB_APPND _MTB_DELRC _MTB_SP200 _MTB_DELET _MTB_RECAL _MTB_SZFLD _MTB_MVFLD _MTB_MVPRT _MTB_SP300 _MTB_LINK _MTB_CPART _MTB_SP400 _MFILE _MFI_SAVEASHTML _MSYSTEM _MST_MSDNC _MST_MSDNI _MST_MSDNS _MWIZARDS _MWZ_APPLICATION _MWZ_DATABASE _MWZ_WEBPUBLISHING _MWZ_WEBSERVICES _MTOOLS _MTL_GALLERY _MTL_COVERAGE _MTI_TASKLIST _MTI_OBJECTBROWSER _MTI_DOCVIEW _MTI_BREAKPOINT _MEDIT _MED_LISTMEMBERS _MED_QUICKINFO _MED_BKMKS _MED_BKMKS _MBK_TOGTASK _MBK_TOGBKMK _MBK_BKMKNEXT _MBK_BKMKPREV _MWINDOW _MWI_CASCADE _MWI_DOCKABLE _MWI_PROPERTIES _MMBLDR _MMB_MOVEITM _MTOOLS _MTL_BROWSER _MTL_TASKPANE _MTL_TOOLBOX _MTL_REFERENCES
2015 _1QU0Z8I7L
2017 0
2020 36973772800
2022 32768
2023 C:\TEMP
2024 N
2025 Y
2029 0
2030 1
2040 0
2050 0
2060 0
2332 0
2333 0
2339 0
2340 0
2400 0
2410 3
2450 0
2700 0
2701 {l:0,t:0, w:0, h:0}
2800 3
2801 1
2910 15
3004 0
3007 204
3008 1
3009 0
3051 333
3053 38539936
3054 0
3055 320
3065 144
3099 90


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

Сообщений: 14618
Дата регистрации: 01.04.2004
Вообще, интересная ф-ия для коммерческого софта, бах и - отправить отчёт в MS или нет


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: небольшой тест на атомарность транзакции
KID

Сообщений: 184
Откуда: Ужгород
Дата регистрации: 07.02.2003
странно но у меня не все заапдейтилось, а у ПИВА все прошло.. как же так?
Ratings: 0 negative/0 positive


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

On-line: 16 (Гостей: 16)

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