![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
oleg_2 |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 25.7.2009 Пользователь №: 943 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
[СИ] Длина сектора диска
Язык СИ ОС UNIX База данных и транзакция. Два вопроса. Имеется файл строк, каждая строка это отдельная запись БД. Нужно сделать транзакцию - изменить одну из этих строк. При этом длина строки не меняется. Должно выдерживать мягкий сбой (выключение питания). Винт плохой и при сбое портит весь сектор (или иную минимальную порцию данных). Значит я должен в журнале сохранить всё то, что может быть испорчено, т. е. сектор (или секторы) содержащий эту строку. Вопрос 1. О длине сектора. Как узнать длину сектора или иной порции данных, которая может быть испорчена? Вопрос 2. Что если я буду для верности сохранять заведомо большую порцию, а именнно 8 Кбайт, начало порции кратно ей самой от начала файла. Сработает ли такой подход? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Не знаю как найти эту книгу. тыцЕсли можно приведите название книги, хотя бы приблизительно . А вопрос 2 в начале темы не решит ли эту проблему? Не знаю. Я не вникал в устройство реальных БД/ФС. Значит я должен в журнале сохранить всё то, что может быть испорчено, факт: испорчено может быть любое кол-во данных в любых местах. Если действительно нужна надёжность, то нужно избыточное хранение данных.
т. е. сектор (или секторы) содержащий эту строку. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 4:19 |