powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте структуру хранилища файлов
13 сообщений из 13, страница 1 из 1
Посоветуйте структуру хранилища файлов
    #36044945
the_flow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Организации необходимо ассоциировать файлы (изображения, doc, xls, …) с информацией о персонале/соискателях (10k – 30k человек), размещённых в реляционной базе под управлением Sql Server 2005 Express + Windows 2003 Server.

Файлы планируется держать в файловой системе (не в виде BLOB полей базы) и возникает вопрос о наиболее удачной с точки зрения производительности/удобства сопровождения иерархии каталогов на жёстком диске. Наиболее частая операция –получение списка ассоциированных файлов и доступ к содержимому. Что вы думаете о таком устройстве каталогов:

Корневой каталог -> 16 подкаталогов по первой букве ID пользователя (ID – это GUID) -> подкаталоги по ID пользователя -> файлы.
Например: Data -> A -> AB32B3EF…, A05234DE… -> Файлы отдельного пользователя.
Я ввёл дополнительные каталоги (0, 1, 2, … D, E, F) по первому символу ID для удобства навигации через браузер. Список на 30K подкаталогов одного каталога на сервере открываются в течение 8-10 секунд. Однако, скажется ли это на времени доступа к файлам пользователя против плоской структуры каталога?

С пользователем может быть связано переменное число файлов различного типа, например, персональные изображения. Как вы обычно управляете порядком извлечения файлов из каталога? Например, пользователь закачал 10 изображений, и необоходимо не только извлекать их всегда в одном порядке, но и дать возможность изменять порядок извлечения (переставлять изображения, документы). Посоветуете ли вы держать словарик файлов с приоритетом на БД или можно обыграть такие вещи через имя файла? Словарик потребует дополнительной синхронизации и мне бы не очень хотелось его вводить

Заранее спасибо!
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36044969
Дмитрий16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
the_flow1. ... Корневой каталог -> 16 подкаталогов по первой букве ID пользователя (ID – это GUID) -> подкаталоги по ID пользователя -> файлы.
Например: Data -> A -> AB32B3EF…, A05234DE… -> Файлы отдельного пользователя.
Я ввёл дополнительные каталоги (0, 1, 2, … D, E, F) по первому символу ID для удобства навигации через браузер. Список на 30K подкаталогов одного каталога на сервере открываются в течение 8-10 секунд. Однако, скажется ли это на времени доступа к файлам пользователя против плоской структуры каталога?


...
2. Посоветуете ли вы держать словарик файлов с приоритетом на БД или можно обыграть такие вещи через имя файла? Словарик потребует дополнительной синхронизации и мне бы не очень хотелось его вводить

Заранее спасибо!

1. В общем случае ваша структура хранения - довольно неплоха. Единственнй вопрос - нужно ли пользователям лазить в файлы минуя вашу систему хранения? Если да - то гуид в качестве имени не лучший вариант.
2. Порядок файлов однозначно держать в БД. Просто список файлов с полем - приоритет сортировки. а с чем вы его синхронизовать то собрались?
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36044970
the_flow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий16,

Синхронизовать ссылки на файлы из словарика с наличием файлов на жёстком диске. Поскольку операция удаления записи и удаления файла на Sql 2005 невозможно объединить в одну транзакцию (насколько я знаю), а также не исключён администраторский доступ к файловому хранилищу в обход системы, то возможны расхождения между данными таблички-словаря и реальными данными на жёстком диске. Вероятно, здесь мне придётся создавать дополнительную задачу, что будет проверять синхронность данных, скажем, раз в сутки.
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36044976
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
the_flowпроверять синхронность данных, скажем, раз в сутки.а как вы будете проверять, например, правку/подмену файла?


Насчет деления на каталоги - я бы предложил делить по двум первым буквам, чтобы ни в какой части иерархии не образовывалось слишком много объектов в одном каталоге.
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36044997
Дмитрий16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
the_flowДмитрий16,

Синхронизовать ссылки на файлы из словарика с наличием файлов на жёстком диске. Поскольку операция удаления записи и удаления файла на Sql 2005 невозможно объединить в одну транзакцию (насколько я знаю), а также не исключён администраторский доступ к файловому хранилищу в обход системы, то возможны расхождения между данными таблички-словаря и реальными данными на жёстком диске. Вероятно, здесь мне придётся создавать дополнительную задачу, что будет проверять синхронность данных, скажем, раз в сутки.

Тут возможны варианты. Например, проверять наличие файла в момент доступа к нему (или к множеству файлов). Ибо даже синхронизация не спасет от того, что - кто нибудь удалит файл за несколько милисекунд до его фактического открытия...
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36045002
the_flow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий16,

Вот поэтому к словарику для хранения очередности показа я настроен скпетически. Столько вопросов. С другой стороны, если надо хранить историю изменений файлов, тэги, поиск приделывать, и вообще (со временем, в ближайшие полгода это не потребуется) мигрировать в сторону полноценного документооборота, то я наверное возьму готовое решение.
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36045010
the_flow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Спасибо, я подумаю насчёт первых двух символов, а так доступ к файлам через файловый менеджер для пользователей не предусматривается) файлы будут доступны только на чтение. Хотя, требования всегда могут поменяться.
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36045611
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Насчет деления на каталоги - я бы предложил делить по двум первым буквам,
>> чтобы ни в какой части иерархии не образовывалось слишком много объектов
>> в одном каталоге.
А что, лучше их на второй уровень перенести, что ли?
Логичнее иерархию сделать по буквам (по одной или по двум). Причем в случае
"по одной" - удобнее по этому хозяйству перемещаться в файловых менеджерах.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36047262
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
the_flow wrote:

> Файлы планируется держать в файловой системе (не в виде BLOB полей базы)
> и возникает вопрос о наиболее удачной с точки зрения
> производительности/удобства сопровождения иерархии каталогов на жёстком
> диске.

Я не понимаю, зачев вам вообще какая-то левая струткура в файловой
системе, если у вас есть БД, где можо хранить все связи, а к файловой
системе иметь только ссылки, на всё равно как называющиеся и где лежащие
файлы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36047379
Дмитрий16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv

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


Отвечу за автора, ибо сталкивался с подобной задачей.
Тут все дело в скорости поиска файла в папке самой операционкой. До 1000 файлов в каталоге - это еще работает но когда их много - могут наступать дикие тормоза. Собственно поэтому и приходится городить некую "систему индексации" файлов в каталогах.
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36047889
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий16 wrote:

> Тут все дело в скорости поиска файла в папке самой операционкой. До 1000
> файлов в каталоге - это еще работает но когда их много - могут наступать
> дикие тормоза. Собственно поэтому и приходится городить некую "систему
> индексации" файлов в каталогах.

Открыть файл по имени в операционке -- дикие тормоза ?
Не верю. Если так, выкидывай такую операционку. Индексы должны
быть внутри файловой системы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36047957
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivОткрыть файл по имени в операционке -- дикие тормоза ?
Не верю. Если так, выкидывай такую операционку. Индексы должны
быть внутри файловой системы.
Само по себе открытие файла - быстрая операция, и индексы в ос работают (наверное)

Но при использовании различных утилит ОС могут быть проблемы - авторы часто не расчитывают и не тестируют их на большое к-во файлов в каталоге.

Мы тоже в одном проекте хранили большое к-во файлов - делали 65000 каталогов в 2-х уровнях (256*256), а в них уже файлы.
...
Рейтинг: 0 / 0
Посоветуйте структуру хранилища файлов
    #36050504
Дмитрий16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Дмитрий16 wrote:

> Тут все дело в скорости поиска файла в папке самой операционкой. До 1000
> файлов в каталоге - это еще работает но когда их много - могут наступать
> дикие тормоза. Собственно поэтому и приходится городить некую "систему
> индексации" файлов в каталогах.

Открыть файл по имени в операционке -- дикие тормоза ?
Не верю. Если так, выкидывай такую операционку. Индексы должны
быть внутри файловой системы.


Речь шла не только про открыть но и про отсортировать по определнному критерию.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте структуру хранилища файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]