[СИ] Длина сектора диска |
Здравствуйте, гость ( Вход | Регистрация )
[СИ] Длина сектора диска |
oleg_2 |
10.5.2010, 2:50
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 25.7.2009 Пользователь №: 943 Спасибо сказали: 1 раз(а) Репутация: 0 |
[СИ] Длина сектора диска
Язык СИ ОС UNIX База данных и транзакция. Два вопроса. Имеется файл строк, каждая строка это отдельная запись БД. Нужно сделать транзакцию - изменить одну из этих строк. При этом длина строки не меняется. Должно выдерживать мягкий сбой (выключение питания). Винт плохой и при сбое портит весь сектор (или иную минимальную порцию данных). Значит я должен в журнале сохранить всё то, что может быть испорчено, т. е. сектор (или секторы) содержащий эту строку. Вопрос 1. О длине сектора. Как узнать длину сектора или иной порции данных, которая может быть испорчена? Вопрос 2. Что если я буду для верности сохранять заведомо большую порцию, а именнно 8 Кбайт, начало порции кратно ей самой от начала файла. Сработает ли такой подход? |
|
|
Iron Bug |
11.5.2010, 6:50
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
да испорчена может быть хоть таблица разметки диска. сейчас у винтов есть ещё своё кэширование и множество прочих фич.
а насчёт такой дикой безопасности, да ещё и переносимости - существуют БД типа Оракла: они ставят свои дрова на низком уровне и там химичат нипадеццки, проверяя всё и вся на валидность и умея восстанавливаться при серьёзных сбоях. только стоит эта беда порядка 50 килобаксов за инсталляцию и эта цена отчасти оправдывает усилия, затраченные на её разработку. сделать подобие с нуля - это... как бы это сказать-то... в общем, можно начать, потомки допишут |
|
|
Текстовая версия | Сейчас: 25.11.2024, 4:54 |