crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в [СИ] Длина сектора диска
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Tonal Дата 20.5.2010, 8:20
  В Firebird-е, МИХО, при создании базы указывается размер страницы, и далее сервер оперирует уже именно этими страницами как минимальной единицей обмена с диском.

А по сабжу - это зависит от конкретной ФС, стало быть и узнавать нужно у драйвера ФС.
Кроме того, нужно учитывать систему ввода/вывода ОС, которая все подключенные ФС абстрагирует а данные кеширует, так что напрямую прочитать/записать сектор в устройство может быть довольно не постое занятие с учётом разнообразия устройств, ФС и ОС. :)

Так что если это курсовик, то задание поставлено не корректно - нужно уточнить ОС, ФС и хотя бы тип устройства (винт, флеха, SSD, сеть...). :)
oleg_2 Дата 12.5.2010, 2:06
  Спасибо за отклик.

Что касается других повреждений
разметки диска
порча каталогов
поломка диска
Знаю только одно средство: резервная копия.
На подступе к этому вопросу предчувствую
проблему своевременного выявления таких
больших дефектов (это потом).

По кэшированию и другим фичам:
Побольше бы узнать об этом.
Якобы кэширование можно отключить.

Пока прошу вернуться к поставленным вопросам.
Iron Bug Дата 11.5.2010, 6:50
  да испорчена может быть хоть таблица разметки диска. сейчас у винтов есть ещё своё кэширование и множество прочих фич.

а насчёт такой дикой безопасности, да ещё и переносимости - существуют БД типа Оракла: они ставят свои дрова на низком уровне и там химичат нипадеццки, проверяя всё и вся на валидность и умея восстанавливаться при серьёзных сбоях. только стоит эта беда порядка 50 килобаксов за инсталляцию и эта цена отчасти оправдывает усилия, затраченные на её разработку. сделать подобие с нуля - это... как бы это сказать-то... в общем, можно начать, потомки допишут :)
oleg_2 Дата 10.5.2010, 8:09
  Спасибо
Litkevich Yuriy Дата 10.5.2010, 6:56
 
Цитата(oleg_2 @ 10.5.2010, 9:26) *
Не знаю как найти эту книгу.
Если можно приведите название книги,
хотя бы приблизительно .
тыц

Цитата(oleg_2 @ 10.5.2010, 9:26) *
А вопрос 2 в начале темы не решит ли эту проблему?
Не знаю. Я не вникал в устройство реальных БД/ФС.
Цитата(oleg_2 @ 10.5.2010, 6:50) *
Значит я должен в журнале сохранить всё то, что может быть испорчено,
т. е. сектор (или секторы) содержащий эту строку.
факт: испорчено может быть любое кол-во данных в любых местах. Если действительно нужна надёжность, то нужно избыточное хранение данных.
oleg_2 Дата 10.5.2010, 5:26
  Спасибо.

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

И ещё.
Вы пишете
"размер сектора указанный на жёстком диске
не соответсвует размеру элементарной порции
данных на жёстком диске".
А вопрос 2 в начале темы не решит ли эту проблему?

Litkevich Yuriy Дата 10.5.2010, 5:09
  тут есть один нюанс - концепция Цилиндр-Головка-Сектор (ЦГС) морально устарела. И представляет собой некие вымышленные цифры.
Т.е. размер сектора указанный на жёстком диске не соответсвует размеру элементарной порции данных на жёстком диске.

Я думаю тебе следует посмотреть в сторону современных СУБД, например, как Firebird решает подобные проблемы. По этому поводу в книге Хелен Бори написана целая глава.
oleg_2 Дата 10.5.2010, 5:00
  Программа может работать на разных машинах
и не всегда есть возможность выбора.
А если такая возможность будет,
тогда в настройках программы можно уменьшить
страховочные действия. Сейчас хотелось бы
заложить побольше, чтоб могла надежно работать
где угодно.
RAID-1 решает проблему поломки всего или части диска,
(жесткий сбой), но как отработает отключение питания
полной уверенности нет.

Litkevich Yuriy Дата 10.5.2010, 4:38
  встречный вопрос: почему бы не использовать журналируемую ФС или системы с избыточным хранением данных (RAID и т.п.)
oleg_2 Дата 10.5.2010, 2:50
  [СИ] Длина сектора диска

Язык СИ
ОС UNIX

База данных и транзакция.
Два вопроса.

Имеется файл строк, каждая строка это отдельная запись БД.
Нужно сделать транзакцию - изменить одну из этих строк.
При этом длина строки не меняется.
Должно выдерживать мягкий сбой (выключение питания).
Винт плохой и при сбое портит весь сектор (или иную минимальную порцию данных).
Значит я должен в журнале сохранить всё то, что может быть испорчено,
т. е. сектор (или секторы) содержащий эту строку.


Вопрос 1.

О длине сектора.
Как узнать длину сектора или иной порции данных,
которая может быть испорчена?

Вопрос 2.

Что если я буду для верности сохранять заведомо
большую порцию, а именнно 8 Кбайт, начало порции
кратно ей самой от начала файла.

Сработает ли такой подход?

Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 0:10