Имя: Пароль:
1C
1С v8
Файловая база данных. Файл блокировок отдельно. Зачем?
0 YF
 
26.05.12
21:05
1. Тупая ветка 63% (5)
2. Другое, свое мнение 25% (2)
3. Недоработка проектировщиков 13% (1)
4. Чтобы база не пухла 0% (0)
Всего мнений: 8

Имеем файловую базу данных, где сама база представляет собой один файл, например:

1С 8, MS Access.

Везде при подключении пользователя к базе создается доп. файлик, в котором пишется, что пользователь подключился. В Акцесс, например, там пишутся имя пользователя и компьютер. Когда последний пользователь отключится, этот файлик обычно удаляется.

Вопрос: Зачем так сделано. Можно было этот "файлик" запихать в виде таблицы в саму базу, почему так не делают?

Чем навеян вопрос: Если бы все писалось в саму базу, то можно было бы расшарить папку с базой на сервере и убрать права удаления, добавления файлов ...
1 YF
 
26.05.12
21:05
ах, да.

Недоработка проектировщиков
2 aleks-id
 
26.05.12
21:11
как думаешь, насколько быстрее обратиться к файлу в несколько десятков килобайт и к файлу в несколько десятков гигабайт?

Тупая ветка
3 DrShad
 
26.05.12
21:14
(0) в поиск по имени файлика - найдешь много интересного
4 DrShad
 
26.05.12
21:14
и да

Тупая ветка
5 YF
 
26.05.12
21:15
(2) А зачем туда обращаться? Этот файл читается/записывается в двух случаях вход и выход ... В базе же все равно будешь работать и читать эти гигабайты
6 aleks-id
 
26.05.12
21:16
(5) поставь эксперимент и не создавай тупые ветки.
7 YF
 
26.05.12
21:18
(6) Хорошо, пусть этот файл читают и во время работы с базой, допустим.

Но с базой-то все-равно работаешь и файл с ней читаешь, вот ни пофиг ли еще одну табличку почитать
8 shuhard
 
26.05.12
21:19
(0) ни с файловой 1С, ни с mdb работать нельзя, это атавизм

нужно ограничение доступа - используй сиквел

Тупая ветка
9 GROOVY
 
26.05.12
22:01
(0) Все просто, при запуске система определяет заблокирован ли он, если нет и существует, то происходило аварийное завершение работы.
10 Лефмихалыч
 
26.05.12
22:13
Да пофигу. Файловые базы не для скорости и масштабируемости делаются, а от безысходности. В этом смысле пофигу, как там блокировки реализованы

Тупая ветка
11 YF
 
26.05.12
22:30
(10) Да фиг с ней, со скоростью, благодаря отдельному файлу блокировок нет возможности защитить файл от удаления особо отчаяными пользователями
12 H A D G E H O G s
 
26.05.12
22:31
(2) Монопенисуально, если знаешь смещение.
13 aleks-id
 
26.05.12
22:33
(12) "какьийе ващьи доказьательсьтвьа"? (с)
14 hhhh
 
27.05.12
00:07
(11) а ты хочешь, чтобы они всю базу удаляли?
15 andrewks
 
27.05.12
00:09
(13) а ваши? :)

если следовать этой логике, терабайтные скулевские базы не должны существовать в природе
16 andrewks
 
27.05.12
00:10
(11) что мешает защитить файл базы от удаления?

Тупая ветка
17 aleks-id
 
27.05.12
00:15
(15) во блин, ну ты же вменяемый, что быстрее - считать файл целиком в 20кб или спозиционироваться на 500-гиговом файле? причем чтоб спозиционироваться, надо сначала в нем же найти куда указатель перемещать.
18 H A D G E H O G s
 
27.05.12
00:20
(17) Искать нечего не надо, там наверняка фиксированная структура, точнее тебе скажут создатели ToolCD всяких и статьи на Инфостарте.
19 aleks-id
 
27.05.12
00:46
(18) нифига там не фиксированная структура. там аналог ФАТ. и если по базе охрененная фрагментация то ты упаришься ждать.
20 andrewks
 
27.05.12
09:50
(19) один раз ФАТ в память загрузил, и читать её не надо, только писать
21 YF
 
27.05.12
15:08
(16) Как? Удаление файлов - разрешается/запрещается для папки, содержащей файл, поэтому запретить удаление невозможно.
22 awa15
 
27.05.12
15:53
(20) В случае с файловой системой ты прав - там пользователь, по-сути, один - сама ОС, все чтения/записи идут через нее, и поэтому ОС может всегда иметь актуальный кэш FAT.
В случае многопользовательской работы с файловой БД это не совсем так. Кэш, конечно, использовать надо, но при этом надо каждый раз проверять, что кэш актуален, чтобы убедиться, что другой пользователь не изменил только что что-нибудь в FAT. Делается это с помощью версионирования. Но это, в свою очередь, тоже означает доп. расходы - как при записи, так как кроме записи собственно данных, надо записать и новую версию объекта, так и при чтении, прежде чем использовать кэшированные данные, надо все равно прочитать версию объекта из базы, чтобы определить актуальность кэша.
23 mistеr
 
27.05.12
22:04
Прямо вечер современной фантастики какой-то. Каждый вываливает в тему свои фантазии, перемешанные с обрывками где-то когда-то прочитанного... А собственно ответ на вопрос похоже никого и не интересует, хотя наводка была дана (3).

(20) А для файлов что, удаление не разрешается/запрещается?

Другое, свое мнение
24 rcs
 
28.05.12
06:33
Чтобы можно было снять зависшую блокировку простым удалением файла.

Другое, свое мнение
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший