|
|
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Есть необходимость преобразования большого числа файлов, для чего пишется программа. Желательно, чтобы при сбое типа отказа питания состояние файлов было узнаваемым. Насколько допустимо в цикле делать так: 1. Создание файла A (пустого). 2. Действия A (Запись в файлы, сброс буферов). 3. Создание файла B (пустого). 4. Действия B1 (Запись в файлы, сброс буферов). 5. Удаление файла A. 6. Действия B2 (Запись в файлы, сброс буферов). 7. Удаление файла B. Можно ли утверждать, что если файлов A и B нет, то результаты всех выполненных действий записаны на диск. И вообще, по наличию/отсутствию файлов A и B определить последнее успешное действие. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 12:03 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Смысл? НТФС - протоколируемая файловая система. А от бедов всё вышеперечисленное не защитит. Да и сбоев питания при нормальном УПСе нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 12:25 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Насчет смысла - я еще не решил, стоит ли городить этот огород, но затраты на него в данном случае невелики по сравнению с основной работой (результаты недоделанного действия A уничтожаются, B1 и B2 - запись информации о результатах A в два одинаковых файла). Ситуацию, когда выключался централизованный упс видел. Насколько я понимаю, NTFS защищена только от повреждения собственной структуры, т.е. операции создания/удаления/распределения места журналируются, остальные - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 14:03 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
перед преобразованием файла, программа сама должна делать его бэкап и после удачного преобразования удалять его. Повторять можно до бесконечности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 14:08 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Если диск сбойный, то все эти танцы с бубнами не стоят ломаного гроша. Проверить диск. Если нормальный - никаких проблем сработе не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 14:17 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
*Можно ли утверждать, что если файлов A и B нет, то результаты всех выполненных действий записаны на диск. Да, можно. При этом вероятность истинности утверждения будет почти равна (но не равна в точности) вероятности того, что выполнение действий было начато. *по наличию/отсутствию файлов A и B определить последнее успешное действие. Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 15:34 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Можно использовать интерфейс TxF (CreateFileTransacted....) Все будет в транзакциях. Однозначно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 15:46 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Akina*Можно ли утверждать, что если файлов A и B нет, то результаты всех выполненных действий записаны на диск. Да, можно. При этом вероятность истинности утверждения будет почти равна (но не равна в точности) вероятности того, что выполнение действий было начато. *по наличию/отсутствию файлов A и B определить последнее успешное действие. Нет. Утверждать конечно можно, но точно определить нельзя, поскольку отсутствие файла это до пункта 1 или во время. и вторая точка 7. В обеих случаях файла А нет. Вот по наличию файла А можно сказать что был сбой, но не наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 16:26 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
CreateFileTransacted к сожалению не подойдет. Ибо XP. И более точный вопрос. Все же верно ли (X - файл X существует, в начале работы файлов естенственно нет) !A && !B => Аварийных ситуаций не происходило A && !B => точка 1 пройдена, точка 3 - нет, результат действия A непредсказуем A && B => точка 3 пройдена, точка 5 - нет, результат действия A корректен, результат действия B1 непредсказуем !A && B => точка 5 пройдена, точка 7 - нет, результат действий A и B1 корректен, результат действия B2 непредсказуем ИМХО это может быть неверным только если возможно переупорядочивание действий системой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 17:19 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
*Есть необходимость преобразования большого числа файлов Преобразуйте копии файлов через временный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 17:25 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
*ИМХО это может быть неверным только если возможно переупорядочивание действий системой. А кстати, интересная тема. Сата2 диски поддерживают очередь команд. На них может не заработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 17:26 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Довольно старая статья http://www.ixbt.com/storage/ntfs2.html и в ней перечислены допущения относительно свойств дисков Жесткий диск, в штатном режиме, должен записать именно то и именно туда, что и куда ему сказано было записать операционной системой. Данный принцип нарушается в случае, если система имеет ненадежный шлейф, процессор, память или контроллер - и это самая распространенная причина сбоев NTFS. Вам поможет: неразогнанный процессор, дорогая (качественная) память, хорошая материнская плата и протокол UDMA, обеспечивающий контроль и восстановление ошибок на участке контроллер-диск. Жесткий диск, в случае аварии, отключения питания или получения от контроллера сигнала "сброс" (в случае внезапной перезагрузки материнской платы) обязан корректно завершить запись данных текущего физического сектора, если таковая производилась на момент аварии. Промежуточное состояние сектора не допускается. Вам помогут современные винчестеры, которые могут осуществить данную операцию даже в случае полного пропадания питания - у них хватит буферизированной в конденсаторах энергии, и их логика рассчитана на корректное поведение в случае отказа питания при записи. Диск обязан мгновенно осуществить запись данных, отправленных с флагом "не кэшировать". Дело в том, что многие современные диски или контроллеры обеспечивают задержанную запись. Метафайлы NTFS обновляются в режиме "писать сразу", и контроллер/диск обязан выполнять это требование. Жесткий диск обязан обеспечить чтение именно тех данных, которые были записаны. В случае невозможности прочесть данные выдается сигнал "ошибка". Диск не имеет права возвращать ошибочные данные (возможно, лишь частично некорректные) без сигнала об ошибке. Все современные жесткие диски имеют контрольные суммы секторов и жестко следуют этой логике поведения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 17:38 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
*протокол UDMA ИДЕ-шные диски. Но сейчас ведь САТА. Даже САТА2 с оптимизацией выполнения команд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 17:51 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
2 Khod Но тогда как ОС может гарантировать сохранность структуры ФС? И как СУБД обеспечивают немедленную запись в журнальные файлы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 17:56 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Но вообще для меня загадка, почему нужно рожать костыли с какими-то маркерными файлами, когда существуют журналы. Системные или приложения... открываешь потом журнал и видишь что-нить типа автор2011-06-29 10:25:01 Operation A started 2011-06-29 10:26:21 Operation A completed with error code 0 2011-06-29 10:26:23 Operation B1 started 2011-06-29 10:28:21 Operation B1 completed with error code 0 2011-06-29 10:28:44 Operation B2 started 2011-06-29 11:15:07 Operation B2 completed with error code 0 И всё тебе ясненько и понятненько... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 18:03 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
2 Akina Полагаю, что это сложнее. Мне не нужно смотреть журналы, нужно чтобы при рестарте все было приведено в порядок автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 18:42 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
То есть, по-твоему, прочитать журнал программно и принять решение на основе записей в нём - некошерно? А вот по наличию файла в файловой системе - самое оно? очень неочевидно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 20:13 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
прочитать журнал программно и принять решение на основе записей в нём - некошерно? А вот по наличию файла в файловой системе - самое оно? свой велосипед отстаивают до последнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2011, 21:36 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Проблема выеденого яйца не стоит, достаточно сменить алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2011, 08:55 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
По поводу журнала тот же вопрос о надежности. 2 Anatoly Podgoretsky Какой алгоритм предлагается? Записывать все в БД? Это вариант (тем более, что в итоге все равно все должно попасть в БД) и он не был рассмотрен из-за большого желания (не моего) использовать для загрузки SQL*Loader. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2011, 11:57 |
|
||
|
Вопрос о NTFS
|
|||
|---|---|---|---|
|
#18+
Да хотя бы файл(ы) флаг Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2011, 12:11 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=37329375&tid=1498064]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
138ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 431ms |

| 0 / 0 |
