crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 8:33