Здравствуйте, гость ( Вход | Регистрация )
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 |
Не знаю как найти эту книгу. тыцЕсли можно приведите название книги, хотя бы приблизительно . А вопрос 2 в начале темы не решит ли эту проблему? Не знаю. Я не вникал в устройство реальных БД/ФС. Значит я должен в журнале сохранить всё то, что может быть испорчено, факт: испорчено может быть любое кол-во данных в любых местах. Если действительно нужна надёжность, то нужно избыточное хранение данных.т. е. сектор (или секторы) содержащий эту строку. |
|
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 Кбайт, начало порции кратно ей самой от начала файла. Сработает ли такой подход? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 26.4.2024, 22:41 |