powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О хранении картинок в блобах
135 сообщений из 135, показаны все 6 страниц
О хранении картинок в блобах
    #39962560
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

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

у меня ни разу не возникало такой необходимости. В принципе, представляю себе два возможных случая:

1. Файлы/картинки нужны на http сервере. Соответственно, их куда удобнее брать из файловой системы, нежели гнать через клиент и блобы.

2. Используется Oracle XE и размер базы не для картинок.

Но в обоих логично сразу использовать bfile.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962598
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Ну на блобы всегда был лимит 2ГБ, чего не скажешь о файлах.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962600
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

как и когда правильно - примерно понятно.

Интересны случаи перехода с одной архитектуры на другую, причины перехода и достигнутые результаты.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962601
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
softwarer,

как и когда правильно - примерно понятно.

Интересны случаи перехода с одной архитектуры на другую, причины перехода и достигнутые результаты.
Был переход с блобов VARBINARY на FILESTREAM (SQL Server), читай блобы хранятся в файловой системе. Чтобы не кушало драгоценный SQL кэш, а запросы к блобам ходили мимо него. Ведь производительность таких запросов - не критична, а экономия главных ресусров - памяти очень даже.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962606
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
Чтобы не кушало драгоценный SQL кэш

Это в смысле кэш запросов (планов запросов) или в смысле данных (содержимого этих блобов)?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962607
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter,

что в итоге изменилось?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962608
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Relic Hunter
Чтобы не кушало драгоценный SQL кэш

Это в смысле кэш запросов (планов запросов) или в смысле данных (содержимого этих блобов)?
Не совсем правильно выразился. От кэша запросов никуда не деться, а вот блоков данных очень даже нужно (Data Buffer) и забивать их блобами в целом не хорошо.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962609
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Relic Hunter,

что в итоге изменилось?
В результе операции вставки/чтения блобов замедлились, чего и добивались. Зато возрасла скорость более важных запросов.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962610
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter
ъъъъъ
Relic Hunter,

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

Нифига себе оптимизация...
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962611
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
От кэша запросов никуда не деться, а вот блоков данных очень даже нужно (Data Buffer) и забивать их блобами в целом не хорошо.

Ясно. В Oracle это решается настройкой кэширования на уровне конкретного lob-поля в таблице. По умолчанию значение nocache (то есть блоки блоба не ложатся в buffer cache).
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962612
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Relic Hunter
пропущено...
В результе операции вставки/чтения блобов замедлились, чего и добивались. Зато возрасла скорость более важных запросов.

Нифига себе оптимизация...
Не подготовленные люди не сразу понимают сути происходящего. Затем и нужны профессионалы))
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962613
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Relic Hunter
От кэша запросов никуда не деться, а вот блоков данных очень даже нужно (Data Buffer) и забивать их блобами в целом не хорошо.

Ясно. В Oracle это решается настройкой кэширования на уровне конкретного lob-поля в таблице. По умолчанию значение nocache (то есть блоки блоба не ложатся в buffer cache).
Ну так на то оно и значение по умолчанию и что его может изменить нехороший человек ("ридиска") ))
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962614
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

ну почему же нехороший? Сервер вполне разумно говорит, что если некоторое lob-поле хранит небольшие и часто нужные данные - ставь ему cache и наслаждайся производительностью. А если ридиска имеет возможность править параметры хранения на продакшне - виноват не ридиска, а те, кто ему такую возможность предоставил.

P.S. Вот смысла значение cache reads я не очень понимаю. В этом режиме читаемые блобы кэшируются, а записываемые - нет. Может быть, это для какого-нибудь экстравагантного случая таблицы, в которой блобы из нескольких строчек постоянно читаются, а из остальных - часто пишутся и редко читаются.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962685
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.


Когда блобы хранятся в одной бд с транзакционными данными, рано или поздно возникнет проблема. База вырастает и транзакции замедляются. Бекап вырастает в размере, что создает проблемы в администрировании.

В общем блобы надо держать в отдельной бд со своими настройками.

При хранении в файловой системе возникает проблема при большом кол-ве файлов в одной папке или большом числе файлов на диске.

Сейчас есть FileCatalog в MSSQL, который маппит БД с файловой системой.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962691
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
ъъъъъ
Relic Hunter,

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


Действительно, только профи оценит, "как красиво изменилась архитектура в результате падения производительности системы"
(система блобы-"картинки" стала отдавать медленнее. Все остальное быстрее - да, круто).

И клиент и начальник навряд ли оценит "едет медленнее, зато как жужжит!"
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962692
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

я пожалуй тут постою.
подожду ответов в метриках - примеров успехов, так сказать.
Об этом холиваре "картинки в БД vs картинки в FS" я слышал примерно 100500 раз начиная с 2011 года.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962714
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hawkmoon
ъъъъъ,

я пожалуй тут постою.
подожду ответов в метриках - примеров успехов, так сказать.
Об этом холиваре "картинки в БД vs картинки в FS" я слышал примерно 100500 раз начиная с 2011 года.


Ваш знакомый знает толк в извращениях, в base64 кодировать и декодировать потом на каждый чих. Лучше бы мне это процессорное время подарил.

Давайте рассмотрим плюсы и минусы хранения ассетов (графики, скриптов, стилей) в БД, по сравнению с файлами на диске:


Плюсы:

Доступность из любого места проекта, без проксирования и использования сетевых файловых систем;
Возможность гарантированного хранения произвольных метаданных, без отрыва от файла;
Возможность организации файловой системы не в виде орграфа.
Пониженная нагрузка на физические диски (без учета возможного локального дискового кэша);
ACID, при условии реализации его базой данных.


Минусы:

Дополнительная машинерия для доступа к данным (отдачи клиенту, записи файлов администратором и т. д.);
Повышенная латентность, нагрузка на сеть и сервер БД;
Избыточная обработка, связанная с протоколом работы с БД (включая сериализацию данных), по сравнению с протоколом работы с файловой системой.
Отсутствие некоторых инструментов, например, sendfile(2) или mmap(2).
В абсолютном большинстве случаев, хранение и отдача ассетов сводится к неизменяемым файлам с хорошо определенными именами, прекрасно укладывающимся даже не в орграф, а в дерево. Отдача легковесным сервером типа nginx, за счет инструментов типа sendfile и кэширования (выполняется VFS-подсистемой ядра ОС), позволяет отдавать их с минимальными издержками, что и требуется для задачи.

Большинство плюсов, при этом, достаточно условны, т.к. БД в большом ряде случаев будут проигрывать по сравнению с более специализированными инструментами (например, GlusterFS или MooseFS) или композитными (БД для метаданных, традиционная ФС для данных) решениями.

Итого: следует считать, смысла в базе данных для хранения ассетов нет. Если возникает редкий случай, когда он появляется — вы об этом узнаете. Взято https://ru.stackoverflow.com/questions/112730/Способы-хранения-картинок
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962764
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Бекап вырастает в размере, что создает проблемы в администрировании.

Когда нужно восстановить систему после сбоя и внезапно оказывается, что части нужных данных просто нет, это создаёт куда большие проблемы в администрировании.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962803
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

об этом и так все знают.
не надо это доказывать.

Вопрос топик-стартера же не в этом. А "кто реально отказывался от хранения в БД и перекладывал в файлы и к чему это привело в цифрах ?"
Как - не интересно. Интересно к чему привело. А мне еще интересно - и сколько это стоило в человекоднях.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962850
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hawkmoon
a_voronin,

об этом и так все знают.
не надо это доказывать.

Вопрос топик-стартера же не в этом. А "кто реально отказывался от хранения в БД и перекладывал в файлы и к чему это привело в цифрах ?"
Как - не интересно. Интересно к чему привело. А мне еще интересно - и сколько это стоило в человекоднях.


Отказались от хранения Excel в той же БД, что и остальные данные. Сделали 2 Бд. Заняло 1 человекодень. Загрузка данных ускорилась, но точно не мерила.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962885
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin
Когда блобы хранятся в одной бд с транзакционными данными, рано или поздно

Спасибо, но к вопросу ваш ответ не имеет никакого отношения.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962891
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.


Миграция хранения файлов из БД в ФС только планируется. База Postgresql 10, файлы хранятся как BLOB. Файлы в основном не очень большие, несколько Мб (сканы в PDF по большей части). Файлов около 100 тыс. Сначала планировалось, что файлы удаляться не будут. При таком раскладе (кроме повышенного расхода дискового пространства) проблем не должно было возникнуть, т. к. физически, точнее на уровне таблицы с блобами файлы хранятся "подряд" идущими блоками и доступ на стенде размером в 100 Гб был более чем приемлемый (Postgressql хранит блобы в спец таблице pg_largeobject, порубленными по 2 Кб на кортеж) . Однако ситуация изменилась, когда понадобилось удалять файлы, т.к. в середине таблицы появились "дыры", в которые стали записываться куски новых файлов, а другие куски которые не влезли - в конец и скорость доступа начала понемногу деградировать, т.к. считать файл "последовательно" уже не получается.

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

Как-то так.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962924
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80,

Вы планируете использовать ФС, в которой не бывает фрагментации?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962926
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Вы планируете использовать ФС, в которой не бывает фрагментации?

На SSD фрагментация побоку.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962928
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hawkmoon
подожду ответов в метриках

Так-то да, по жизни достали по работе всевозможные "оптимизационные теоретики".
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962931
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
dimonz80,

Вы планируете использовать ФС, в которой не бывает фрагментации?



Нет конечно, просто избавиться от "лишнего" уровня фрагментации в таблице БД
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962947
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80,

спасибо. На стенде уже тестировали новый вариант?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962958
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
dimonz80,

спасибо. На стенде уже тестировали новый вариант?


А чего тестировать-то? Как http сервер файлы из ФС стримит?) даже субъективно видно, что быстрее
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962965
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80,

а откуда hhtp сервер появился?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962966
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
dimonz80,

а откуда hhtp сервер появился?



3-хзвенка потому что
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962967
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80
ъъъъъ
dimonz80,

а откуда hhtp сервер появился?



3-хзвенка потому что


да и кто будет отдавать файлы, которые не в БД
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39962969
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80
dimonz80
пропущено...



3-хзвенка потому что


да и кто будет отдавать файлы, которые не в БД

Ну поди догадайся, что у вас.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966301
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.


Я могу найти такое объяснение.

Сначала джун сделал хранение файлов в блобах.
Потом джун по-умнел и начал переделывать.
Или вернулся миддл/сеньёр из опуска, надавал подавану по шапке и заставил переделывать.

По сути.
Файловая система -- это специализированная БД для хранения файлов.
Она максимально соответствует всем требованиям работы с файлами, максимально эффективно это делает и существует овер дохрена инструментов для управления файлами.

СУБД создана для хранения структур данных, возможностей для работы с файлами в ней на порядки меньше, чем у файловой системы.

Выигрыш следует из вышеописанного.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966321
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Ну если там надо хранить какие-нибудь аватарки 32 на 32 пикселя, то почему бы и нет. И, к тому же, "блоб в БД", как уже упоминали, это не обязательно "блоб в самой БД" - есть ведь всякие сиквельные filestreams, монговские GridFS, или постресовские Large Objects.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966356
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.


Я могу найти такое объяснение.

Сначала джун сделал хранение файлов в блобах.
Потом джун по-умнел и начал переделывать.
Или вернулся миддл/сеньёр из опуска, надавал подавану по шапке и заставил переделывать.

По сути.
Файловая система -- это специализированная БД для хранения файлов.
Она максимально соответствует всем требованиям работы с файлами, максимально эффективно это делает и существует овер дохрена инструментов для управления файлами.

СУБД создана для хранения структур данных, возможностей для работы с файлами в ней на порядки меньше, чем у файловой системы.

Выигрыш следует из вышеописанного.

Попробуйте сосредоточиться на вопросе, заданном в стартовом сообщении.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966407
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt,

Ну если там надо хранить какие-нибудь аватарки 32 на 32 пикселя, то почему бы и нет. И, к тому же, "блоб в БД", как уже упоминали, это не обязательно "блоб в самой БД" - есть ведь всякие сиквельные filestreams, монговские GridFS, или постресовские Large Objects.


Это всё понятно :)
Конечно можно, в таком кейсе оно вроде как не выглядит проблемным.
Но опять же. Файловая система -- это уже база данных файлов.
Ни один GirdFS не дотягивает до FS как по возможностям, так и по скорости работы.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966411
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Попробуйте сосредоточиться на вопросе, заданном в стартовом сообщении.


Вопрос из разряда.

Какой выигрыш был достигнут, когда что-то делали не самым подходящим инструментом, а потом переделали и стали использовать подходящий.

Вот раньше вы забивали гвозди пассатижами. А потом, наконец, взяли молоток. Ну и чо? На сколько процентов увеличилась производительность?

Я даже не понимаю кто всерьёз это будет оценивать.

Клеили на сопли, потом стали клеить на клей. Расскажите, какой выигрыш был достигнут?

Вы бы почитали обсуждения по этой теме, где все-все-все проблемы вам вдоль и поперёк раскрываются.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966449
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

если вам не нравится вопрос - это другое дело. Можете пожаловаться модератору.

Я не спрашивал о том, как лучше хранить картинки.

Зачем вы заливаете тему рассуждениями, не связанными с заданным вопросом?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966518
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Интересны случаи перехода с одной архитектуры на другую, причины перехода и достигнутые результаты.

У меня тут назревает переход с "внешнее" хранение (в файлах/каталогах файловой системы) на куда-то в облако.
Необходимо выбрать (придумать) это самое облачное решение.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966590
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
hVostt,

если вам не нравится вопрос - это другое дело. Можете пожаловаться модератору.

Я не спрашивал о том, как лучше хранить картинки.

Зачем вы заливаете тему рассуждениями, не связанными с заданным вопросом?


Считаю, что напрямую связаны. Если вы так не считаете, можете пожаловаться модератору.

Почему у вас возник такой вопрос? Не с потолка же, правда? Но вы не делитесь информацией, возникли ли у вас проблемы, или у вас возник спор с коллегами. Просто просите конкретные результаты, понятно что в цифрах. Я бы мог поделиться информацией.

Но какой у вас вопрос, такой и ответ.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966612
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кратко по теме: мне всё равно кто и где хранит картинки.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39966687
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
Кратко по теме: мне всё равно кто и где хранит картинки.


Непонятно, почему всё свелось к картинкам :)
Ведь говорилось о документах.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973731
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.

был у нас проект
сперва документы в файлах хранили а в таблице ссылки на них
трудно поддерживать, особенно если забываешь со временем, что и как устроено
то файлы потеряются, то ссылка в никуда
потом отказались, все в базе хранить стали
а чуть по позже все файлы свалил в одну таблицу
потому что бэкап делать удобнее
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973750
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.

facebook оптимизировали свой сервис после возросшей нагрузки:

Кэширование более часто используемых миниатюр изображений в памяти на оригинальных серверах для масштабируемости, надежности и производительности
Распределение их по CDN для уменьшения сетевых задержек
Возможно сделать еще лучше:
Хранение изображений в больших бинарных файлах (blob)
Сервис, отвечающий за фотографии имеет информацию о том, в каком файле и с каким отступом от начала расположена каждая фотография (по ее идентификатору)
Этот сервис в Facebook называется Haystack и он оказался в 10 раз эффективнее «простого» подхода и в 3 раза эффективнее «оптимизированного»


YouTube Video
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973846
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bochkov
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.

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


Ну, случаи перехода "файлы" - > "блобы" мне известны, также известны причины и какие плюшки получили.

Я про обратные случаи спрашивал.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973849
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.
Переделывали для полуавтономных рабочих мест только для того, чтобы вписаться в лимиты на размер БД в Oracle XE.
Выигрыш - вписались в лимиты Oracle XE.
Проигрыш - лишний гемор при программировании репликации с основного сервера на эти рабочие места и увеличение времени генерации нового места, т.к. миллион маленьких файлов копируется ощутимо дольше одного большого даже на SSD.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973850
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkov
потому что бэкап делать удобнее


что может быть проще и удобнее rsync?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973851
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
что может быть проще и удобнее rsync?
отсутствие rsync-а.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973852
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
hVostt
что может быть проще и удобнее rsync?
отсутствие rsync-а.


религия не позволяет? )
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973853
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft
hVostt
что может быть проще и удобнее rsync?
отсутствие rsync-а.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973854
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
miksoft
пропущено...
отсутствие rsync-а.


религия не позволяет? )
Нет, просто лишняя сущность.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973858
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет я понимаю откуда ноги растут у желания поместить всё в БД.
Сам через это проходил и не раз.
Решение хранить файлы в БД исходит банально, от неопытности и недальновидности.

Сам мигрировал файлы в файловую систему на своих и чужих проектах, по причинам, которые тысячи раз уже описывали и обсуждали на различных площадках. Повторять одно и тоже -- какой смысл в этой копипасте?

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

ХЗ, чё тут обсуждать. Хоть бы конкретный кейс был какой, а не очередной конь в вакууме.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973859
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Нет, просто лишняя сущность.


ну да, как же, я забыл бесконечная, бессмысленная и беспощадная война с "лишними сущностями"
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973860
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Решение хранить файлы в БД исходит банально, от неопытности и недальновидности

Решение делать что-то вне БД исходит от незнания и неумения пользоваться возможностями БД.

hVostt
Никаких проблем с производительностью, бекапами

Про слово, например, "согласованность данных", Вам, наверное, и упоминать незачем.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973864
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
hVostt
Решение хранить файлы в БД исходит банально, от неопытности и недальновидности

Решение делать что-то вне БД исходит от незнания и неумения пользоваться возможностями БД.


Простите, вы какую-то глупость сморозили. По-вашему всё надо делать в БД? Может отказаться от ОС? Будет только БД.

Попахивает гига-фанатизмом БД. В фанатичный спор не имею желания вступать. Любите всё делать в БД -- ваше право. Адекватные dba просто по шапке надают за "всё делать в БД" и на этом всё закончится.

softwarer
Про слово, например, "согласованность данных", Вам, наверное, и упоминать незачем.


А в чём проблема?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973865
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
Нет я понимаю откуда ноги растут у желания поместить всё в БД.
Сам через это проходил и не раз.
Решение хранить файлы в БД исходит банально, от неопытности и недальновидности.

Сам мигрировал файлы в файловую систему на своих и чужих проектах, по причинам, которые тысячи раз уже описывали и обсуждали на различных площадках. Повторять одно и тоже -- какой смысл в этой копипасте?

Если не хочется копи-пасте - проходи мимо. Ну пожалуста.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973866
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Простите, вы какую-то глупость сморозили.

Просто высказывание, симметричное Вашему.

hVostt
А в чём проблема?

Если для Вас несогласованные данные - не проблема, то её, конечно, нет. В принципе, естественное требование к бэкапу - согласованность лежащих в нём (и поднимаемых в случае проблемы) данных. В ситуации, когда данные бэкапятся частями по отдельности друг от друга, о согласованности обычно можно забыть.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973867
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
hVostt
Простите, вы какую-то глупость сморозили.

Просто высказывание, симметричное Вашему.


Моё: не хранить файлы в БД
Ваше: ВСЁ делать в БД

У вас с логикой всё хорошо?
В каком месте тут симметрия?


softwarer
Если для Вас несогласованные данные - не проблема, то её, конечно, нет. В принципе, естественное требование к бэкапу - согласованность лежащих в нём (и поднимаемых в случае проблемы) данных. В ситуации, когда данные бэкапятся частями по отдельности друг от друга, о согласованности обычно можно забыть.


Вы по существу может быть скажете, в чём проблема конкретно с файлами?

Я правильно вас понимаю, если в программном комплексе (не дай-то бог!) имеется больше одной БД, о согласованности данных можно забыть?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973868
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Если не хочется копи-пасте - проходи мимо. Ну пожалуста.


В чём ваша проблема? Вы опять перепутали личный блог с публичным форумом? Я ведь даже не вам отвечаю. :)
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973869
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
ъъъъъ
Если не хочется копи-пасте - проходи мимо. Ну пожалуста.


В чём ваша проблема? Вы опять перепутали личный блог с публичным форумом? :)


Проблема - в Вас, Единственном.
Вы приходите сюда - для чего? Чтобы рассказать о Вашем понимании красоты - но Ваши рассказы не имеет отношения к заданному вопросу.

Я не модератор, я пытаюсь удержать тему в рамках заданного вопроса.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973870
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
... В принципе, представляю себе два возможных случая:

1. Файлы/картинки нужны на http сервере. Соответственно, их куда удобнее брать из файловой системы, нежели гнать через клиент и блобы.

2. Используется Oracle XE и размер базы не для картинок.
...


Пока иных случаев не было названо. Ну, один ещё, но он немного мутный.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973871
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Я не модератор, я пытаюсь удержать тему в рамках заданного вопроса.


Тема называется о хранении картинок в блобах. Покажите, где я вышел за рамки.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973873
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
...Я не помню, чтобы вас назначили местным оценщиком, что входит, а что не входит в рамки заданного вопроса.

Обсуждается хранение файлов. Всё могли и хотели сказать по вашему вопросу, уже сказали. Что вам не нравится? Чего вы добиваетесь не пойму?

Не нужно быть назначенным оценщиком, чтобы видеть Ваше желание потрепаться на отвлеченную тему.
Может быть, кто-то сможет рассказать по заданной теме. Мне лично это важно, для этого я и создал данную тему.

Если Вам нечего сказать по теме - не засоряйте её, пожалуйста.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973874
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
ъъъъъ
Я не модератор, я пытаюсь удержать тему в рамках заданного вопроса.


Тема называется о хранении картинок в блобах. Покажите, где я вышел за рамки.

Тема как-то называется, да, а Вы - источник шума в этой теме. Я - об этом.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973875
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Моё: не хранить файлы в БД

Ваше про неопытность и недальновидность.

hVostt
Вы по существу может быть скажете, в чём проблема конкретно с файлами?

Странный вопрос. Файлы - один из типов данных. С тем же успехом Вы могли бы спросить "в чём проблема конкретно со строками".

(начиная понимать) Или для Вас файлы - это не данные, а так, какая-то неважная фигня сбоку припёку?

hVostt
Я правильно вас понимаю, если в программном комплексе (не дай-то бог!) имеется больше одной БД, о согласованности данных можно забыть?

Зависит от того, есть ли связи между данными из этих БД и как эти связи устроены и поддерживаются.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973876
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
hVostt
...Я не помню, чтобы вас назначили местным оценщиком, что входит, а что не входит в рамки заданного вопроса.

Обсуждается хранение файлов. Всё могли и хотели сказать по вашему вопросу, уже сказали. Что вам не нравится? Чего вы добиваетесь не пойму?

Не нужно быть назначенным оценщиком, чтобы видеть Ваше желание потрепаться на отвлеченную тему.
Может быть, кто-то сможет рассказать по заданной теме. Мне лично это важно, для этого я и создал данную тему.

Если Вам нечего сказать по теме - не засоряйте её, пожалуйста.


Кому и чем я мешаю рассказать о своём опыте? Много рассказали за месяц?
Форум и создан для того, чтобы потрепаться. В этом его сакральный смысл.
Он не создан для того, чтобы вы тут создали тему и наводили в ней свои порядки.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973877
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
hVostt
Вы по существу может быть скажете, в чём проблема конкретно с файлами?

Странный вопрос. Файлы - один из типов данных. С тем же успехом Вы могли бы спросить "в чём проблема конкретно со строками".

(начиная понимать) Или для Вас файлы - это не данные, а так, какая-то неважная фигня сбоку припёку?


Файлы это бинарное содержимое. К которому не применяются никакие инструменты и правила работы с данными в БД.

Но вы не ответили на вопрос. Можете сказать, какая проблема в согласованности данных применительно к файлам, которые не хранятся в БД?


softwarer
hVostt
Я правильно вас понимаю, если в программном комплексе (не дай-то бог!) имеется больше одной БД, о согласованности данных можно забыть?

Зависит от того, есть ли связи между данными из этих БД и как эти связи устроены и поддерживаются.


Ну вот есть БД в MS SQL, также используется MongoDB и хранилище данных, доступное через HTTP (хз, что там на бекенде).

Прощай согласованность? :)
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973878
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Тема как-то называется, да, а Вы - источник шума в этой теме. Я - об этом.


Не связывайте созданную тему на форуме со своим личным пространством, и всё будет хорошо :)
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973880
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Файлы это бинарное содержимое.

blob - это бинарное содержимое. Лежит он в виде сегмента в БД или в виде отдельного файла, доступного из БД - это техническая деталь.

hVostt
Но вы не ответили на вопрос. Можете сказать, какая проблема в согласованности данных применительно к файлам, которые не хранятся в БД?

Что значит "какая"? Просто в результате восстановления они имеют все шансы быть не согласованными с данными, которые лежат в БД.

Ну например, делал я систему для бюро кредитных историй. То есть банк формирует XML с довольно ответственными данными. Этот XML приезжает ко мне, я его обрабатываю. И допустим, как последний дурак, кладу его вне базы в виде файла на диске и бэкаплю эти файлы независимо и отдельно. Случается ЧП. Администраторы бегут за бэкапами, и в итоге БД поднята по состоянию на 28.06.2020 1:24, а файлы - по состоянию на 28.06.2020 1:18 (либо наоборот). Что в результате? Ну тут уже начинается веселье. Какие-то приехавшие кредитные истории потеряны и не обработаны, какие-то сформированные ответы потеряны и не отправлены. А через пять лет прибегает очень сердитый чувак и начинает спрашивать: почему это по вашим данным у меня был пропущенный платёж и мне теперь не дают нового кредита, хотя я всё всегда платил вовремя и вот у меня банковская выписка?

hVostt
Ну вот есть БД в MS SQL, также используется MongoDB и хранилище данных, доступное через HTTP (хз, что там на бекенде).

Прощай согласованность? :)

Судя по этой фразе, Вы не поняли моего ответа. Просто вообще не поняли. Не вижу смысла продолжать.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973883
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Что значит "какая"? Просто в результате восстановления они имеют все шансы быть не согласованными с данными, которые лежат в БД.

Ну например, делал я систему для бюро кредитных историй. То есть банк формирует XML с довольно ответственными данными. Этот XML приезжает ко мне, я его обрабатываю. И допустим, как последний дурак, кладу его вне базы в виде файла на диске и бэкаплю эти файлы независимо и отдельно. Случается ЧП. Администраторы бегут за бэкапами, и в итоге БД поднята по состоянию на 28.06.2020 1:24, а файлы - по состоянию на 28.06.2020 1:18 (либо наоборот). Что в результате? Ну тут уже начинается веселье. Какие-то приехавшие кредитные истории потеряны и не обработаны, какие-то сформированные ответы потеряны и не отправлены. А через пять лет прибегает очень сердитый чувак и начинает спрашивать: почему это по вашим данным у меня был пропущенный платёж и мне теперь не дают нового кредита, хотя я всё всегда платил вовремя и вот у меня банковская выписка?


Благодарю за пример, это по крайне мере проясняет причину ваших опасений.
И это причина кроется -- как я уже сказал ранее, в вашем отсутствии опыта. В этом ничего зазорного нет, не нужно воспринимать это как критику, или в негативном ключе.

Хранилище файловой системы не "откатывается". Файлы складываются в хранилище и больше ничего с ними не делается. Крайний случай, это отказ всех дисков из рейд-массива. В таком случае хранилище восстанавливается из бекапа, но не "откатывается". Бекап обычно происходит на лету, файл пишется в хранилище, а из хранилища сразу летит в бекап, или пишется в два места.

Поэтому описанная вами ситуация никак не может случиться.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973884
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
hVostt
Ну вот есть БД в MS SQL, также используется MongoDB и хранилище данных, доступное через HTTP (хз, что там на бекенде).

Прощай согласованность? :)

Судя по этой фразе, Вы не поняли моего ответа. Просто вообще не поняли. Не вижу смысла продолжать.


Ну... я задал конкретный вопрос. А получил какую-то лирику в духе "вы моей музыки не понимаете". Что сложного в моём вопросе?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973885
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
И допустим, как последний дурак, кладу его вне базы в виде файла на диске


Я обязательно покажу это нашим дба. Получается, уже не первая крупная компания, где работают одни дураки
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973887
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

На самом деле, насколько я помню, в случае MSSQL filestreams блобы как раз и хранятся в виде отдельных файлов на диске, с той только разницей, что расположением этих файлов управляет не приложение, а сам MSSQL. А со стороны АПИ эти блобы просто видны как обычная сетевая папка.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973897
hVostt
Ну вот есть БД в MS SQL, также используется MongoDB и хранилище данных, доступное через HTTP (хз, что там на бекенде).
Прощай согласованность? :)

а микросервисы наверное вообще живут одноразовой жизнью.
если чё упало, просто выкидывают.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973935
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt,

На самом деле, насколько я помню, в случае MSSQL filestreams блобы как раз и хранятся в виде отдельных файлов на диске, с той только разницей, что расположением этих файлов управляет не приложение, а сам MSSQL. А со стороны АПИ эти блобы просто видны как обычная сетевая папка.


FILESTREAM, да. Конечно лучше, чем хранение в блобах. Но опять же, ради чего эти заморочки, если хранение файлов в файловой системе это абсолютно нативное решение, очень быстро и эффективно -- для работы с файлами используются функции ядра ОС, проще просто некуда, а также отделение хранения файлов от БД с данными повышает общую надежность системы. Основное правило у дба, любую лишнюю нагрузку, которую можно снять с БД -- нужно снять.

Есть конечно спорные на мой взгляд правила про маленькие файлы до XX килобайт, которые типа эффективнее хранить в БД. Но ИМХО, бред это, на практике никакого выигрыша нет. В моей практике я его не видал. Но может в отдельных кейсах это работает.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973946
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot hVostt#22158599]
fkthat
Но опять же, ради чего эти заморочки

Например, интегрированные с БД бекапы, безопасность и транзакции. Лучшая защита целостности в случае если кроме самого блоба на диске в БД хранятся связанные с ним данные (а обычно так оно и есть).
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39973966
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 15:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158599][22158599]
>...Основное правило у дба, любую лишнюю нагрузку, которую можно снять с БД -- нужно снять…
<
Как Вы работаете с сущностью, часть информации которой находится в БД, а другая часть - в файловой системе.
Где редактируется файл?
Как реализуется UPDATE?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974033
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>hVostt, сегодня, 15:41 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158599][22158599]
>...Основное правило у дба, любую лишнюю нагрузку, которую можно снять с БД -- нужно снять…
<
Как Вы работаете с сущностью, часть информации которой находится в БД, а другая часть - в файловой системе.
Где редактируется файл?
Как реализуется UPDATE?


Э-э-э никак, т.к. сущности РМД в файле не хранятся.
Файл это набор байтов, о структуре которого БД ничего не знает.
Поэтому для БД что ссылка на файл в файловой системе, что BLOB, в некотором смысле одно и то же.
В некоторых случаях, хранение ссылки может быть "понятнее" для БД, если есть значащая файловая иерархия.
Грубо говоря индекс по ссылке будет чуть оптимальнее, чем по чистому BLOB'у.

Делать же из БД систему контроля версий (это я про бекапы).
Не самая лучшая идея.
Т.к. для этого есть более удобные инструменты, например git.
Которые дают гораздо больше возможностей, чем простые бекапы.

Все это я говорю о файлах, для которых БД не может (в принципе) знать внутреннюю структуру.

Если же мы говорим о xml и/или json типах, то там не все так однозначно.
Но к теме данного топика не относиться.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974070
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Как Вы работаете с сущностью, часть информации которой находится в БД, а другая часть - в файловой системе.


С данными работают с помощью SQL, файлы сохраняют в файловой системе и затем считывают оттуда.


ВМоисеев
Где редактируется файл?


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


ВМоисеев
Как реализуется UPDATE?


В этом нет смысла.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974071
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>mad_nazgul, сегодня, 07:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158772][22158772]
>Э-э-э никак…
<
Э-э-э …
1. Сотрудник как сущность - очевидность.
2. Часть атрибутов хранится в базе (суррогатный ключ, ФИО, Дата рождения и т.п.) - очевидно.
3. Атрибут "Личное дело" - реальность. Но может хранится в файловой системы.
4. Атрибут "Личное дело" содержит информацию в формате MS Word.
5. Сущности "Сотрудник" не важно, что о ней известно базе данных или файловой системе.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974082
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 09:49 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158831][22158831]
>...В этом нет смысла.
<
Может быть и так.
Но я рассуждаю несколько иначе.
1. Необходимые атрибуты сущности должны быть отражены в панельном гриде.
2. К необходимым полям относятся и информационные файлы.
3. см. слайд.
Щелчок по полю "Файлы" строки конкретной сущности реализует загрузку панели выбора файлового документа. У меня файловый документ либо текст, либо слайд.
"Личные данные" редактируются MS Word. Предварительно документ загружается из файлового сервера на локальный комп. По завершению документ может быть сохранен. Меня интересует последовательность шагов сохранения.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974157
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
. Меня интересует последовательность шагов сохранения.

какая ещё последовательность - пишется новая версия файла,
старые автоматически не удаляются
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974199
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Изопропил, сегодня, 13:32 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159024][22159024]
>какая ещё последовательность…
<
Многопользовательская среда, оптимистическая блокировка
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974202
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Но я рассуждаю несколько иначе.


А я то не рассуждаю, вполне конкретно говорю :)

ВМоисеев
2. К необходимым полям относятся и информационные файлы.


Никуда ваши файлы не делись. В БД нужно записать информацию о приложенных файлах. Речь шла о хранении содержимого файлов.

ВМоисеев
3. см. слайд.


К сожалению, ничего не понятно.


ВМоисеев
Щелчок по полю "Файлы" строки конкретной сущности реализует загрузку панели выбора файлового документа. У меня файловый документ либо текст, либо слайд.
"Личные данные" редактируются MS Word. Предварительно документ загружается из файлового сервера на локальный комп. По завершению документ может быть сохранен. Меня интересует последовательность шагов сохранения.


Присвоили файлу уникальный идентификатор, сохранили файл в хранилище, сохранили в БД атрибут, содержащий уникальный идентификатор. Всё.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974203
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Многопользовательская среда, оптимистическая блокировка


При чём тут ваша блокировка вообще?

Вообще абсолютно наплевать какая блокировка, хоть оптимистичная, хоть либеральная, хоть космическая, хоть паранормальная.. Как это влияет на процесс? Зачем об этом говорить-то? :)
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974225
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Присвоили файлу уникальный идентификатор, сохранили файл в хранилище, сохранили в БД атрибут, содержащий уникальный идентификатор. Всё.

Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением. По известному закону рано или поздно с этим пойдут косяки. Разумеется, хранить блобы прямо в ФС будет всегда как минимум не медленнее, чем как-либо в БД, но, лично я, все же, изначально начал бы с БД, сделал бы нагрузочное тестирование, и только потом, если бы производительность не устраивала, то рассмотрел бы вариант с ФС.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974241
fkthat
Разумеется, хранить блобы прямо в ФС будет всегда как минимум не медленнее, чем как-либо в БД

это с чего это не медленнее? каждый раз I/O диска дёргать.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974251
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением. По известному закону рано или поздно с этим пойдут косяки. Разумеется, хранить блобы прямо в ФС будет всегда как минимум не медленнее, чем как-либо в БД, но, лично я, все же, изначально начал бы с БД, сделал бы нагрузочное тестирование, и только потом, если бы производительность не устраивала, то рассмотрел бы вариант с ФС.


Нагрузочное тестирование мы проводили.
Проводили и другие оценки.

По всем параметрам без исключения выигрывают файлы в файловой системе.

Единственная проблема, которая беспокоит самые лучшие умы человечества -- это ACID.
Однако, нужно сделать всё конкретно через жопу, чтобы словить проблемы согласованности.
Я с такими проблемами при работе с файлами не сталкивался.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974252
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением.

Согласованность может обеспечиваться диспетчером ресурсов
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974255
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 15:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159117][22159117]
>...Вообще абсолютно наплевать какая блокировка...
<
Это как посмотреть.
Вася и Петя на локальных компьютерах, каждый на своём, редактируют экземпляры файла. Надо хранить результаты. Как?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974258
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Это как посмотреть.
Вася и Петя на локальных компьютерах, каждый на своём, редактируют экземпляры файла. Надо хранить результаты. Как?


Сохранять обе версии файла, последняя версия будет того, кто последний сохранил.
Никакой блокировки вообще, все счастливы и довольны, данные не потеряны, работа выполнена.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974259
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Вася и Петя на локальных компьютерах, каждый на своём, редактируют экземпляры файла. Надо хранить результаты. Как?

Двухфазный коммит
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974267
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
fkthat
Дровбек в том, что имеем в результате два отдельных хранилища, согласованность которых управляется только самим приложением.

Согласованность может обеспечиваться диспетчером ресурсов

Чтобы работать с двумя сервисами из-под диспетчера ресурсов, типа MSDTC надо чтобы они оба его поддерживали. Файловая система этого сама по себе не делает.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974269
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
это с чего это не медленнее? каждый раз I/O диска дёргать.

А БД что не с того же диска контент блоба читает? К тому же еще блобы хранимые прямо в БД при чтении очень быстро засрут весь кеш сиквела, поэтому, например, те же FILESTREAM используют не кеш сиквела, а кеш самой OS.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974273
fkthat
А БД что не с того же диска контент блоба читает?

да, но она всё кеширует.
т.е. второй запрос будет уже из памяти.
конечно при большом кол-ве юзеров шанс, что оба прочитают одно и тоже - мал
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974286
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза

да, но она всё кеширует.

ФС тоже кеширует. И, как я уже писал - кешировать большие блобы в кеше сиквела это не очень хорошая идея
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974318
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 18:49 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159221][22159221]
>Сохранять обе версии файла, последняя версия будет того, кто последний сохранил.
<
Нет.
Сохранена должна быть отредактированная копия оригинала файла, который находится на файловом сервере. Отредактированная копия становится оригиналом.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974331
fkthat
Алексей Роза

да, но она всё кеширует.

ФС тоже кеширует. И, как я уже писал - кешировать большие блобы в кеше сиквела это не очень хорошая идея

так зачем тогда фейсбук так сделал?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974340
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
так зачем тогда фейсбук так сделал?

Сделал как?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974347
fkthat
Алексей Роза
так зачем тогда фейсбук так сделал?

Сделал как?

Алексей Роза
[quote=ъъъъъ]Расскажите, пожалуйста, о ваших случаях, когда централизованное хранение файлов документов в БД было сделано сперва в blob's, но потом из-за чего-то пришлось переделать на "внешнее" хранение (в файлах/каталогах файловой системы).

О проблемах, который послужили причиной переделки, и какой выигрыш был достигнут в результате.

facebook оптимизировали свой сервис после возросшей нагрузки:

Кэширование более часто используемых миниатюр изображений в памяти на оригинальных серверах для масштабируемости, надежности и производительности
Распределение их по CDN для уменьшения сетевых задержек
Возможно сделать еще лучше:
Хранение изображений в больших бинарных файлах (blob)
Сервис, отвечающий за фотографии имеет информацию о том, в каком файле и с каким отступом от начала расположена каждая фотография (по ее идентификатору)
Этот сервис в Facebook называется Haystack и он оказался в 10 раз эффективнее «простого» подхода и в 3 раза эффективнее «оптимизированного»
YouTube Video
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974377
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>mad_nazgul, сегодня, 07:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22158772][22158772]
>Э-э-э никак…
<
Э-э-э …
1. Сотрудник как сущность - очевидность.
2. Часть атрибутов хранится в базе (суррогатный ключ, ФИО, Дата рождения и т.п.) - очевидно.
3. Атрибут "Личное дело" - реальность. Но может хранится в файловой системы.
4. Атрибут "Личное дело" содержит информацию в формате MS Word.
5. Сущности "Сотрудник" не важно, что о ней известно базе данных или файловой системе.


С пункта 3, уже БД все равно, что лежит в поле. Ссылка на файл или BLOB.
Т.к. На самом деле личное дело можно разбить на составляющие.
Например - форма Т1, которая хорошо ложиться на РМД.
Автобиография - это тест, можно засунуть в CLOB, а потом оттуда запросом вытащить информацию (во всех актуальных БД есть полнотекстовый поиск)
Информация о рабочей книжке и военном билете, так же может быть разбита на части, которые "ложатся на РМД".

А так. Если хранить файлы в BLOB-ах, то на них трудно натравить системы полнотекстового поиска.
Если же файла хранятся в файловой системе. То можно с помощью сторонних инструментов вытащить информацию, чтобы по ней искать.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974445
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>hVostt, сегодня, 18:49 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159221][22159221]
>Сохранять обе версии файла, последняя версия будет того, кто последний сохранил.
<
Нет.
Сохранена должна быть отредактированная копия оригинала файла, который находится на файловом сервере. Отредактированная копия становится оригиналом.


И в чём противоречие с тем, что я сказал?

Что значит "нет"?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974475
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Хранение изображений в больших бинарных файлах (blob)

Ты считаешь, что это означает, что фейсбук хранит их как varbinary(max) в БД? LOL.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974511
fkthat
Алексей Роза
Хранение изображений в больших бинарных файлах (blob)

Ты считаешь, что это означает, что фейсбук хранит их как varbinary(max) в БД? LOL.

да не, просто в 2 ночи надо спать, а не на форумах писать
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974555
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 10:46 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159495][22159495]
>И в чём противоречие с тем, что я сказал?
<
Рассмотрим ситуацию:
Вася и Петя загрузили оригинал информационного файла и начали редактировать каждый свою часть.
Вася шустрый и быстренько закончил своё дело, сохранив свою работу в на сервере. Оригинал изменился.
Петя пошёл попить чайку и свою работу закончил после Васи. Но он не может сохранить свою отредактированную копию в качестве оригинала, ибо будет потеря информации Васи.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974604
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Но он не может сохранить свою отредактированную копию в качестве оригинала, ибо будет потеря информации Васи.

Ну, если ты знаешь способ, как мержить файлы совершенно произвольного формата, то я снимаю шляпу.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974625
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>hVostt, сегодня, 10:46 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159495][22159495]
>И в чём противоречие с тем, что я сказал?
<
Рассмотрим ситуацию:
Вася и Петя загрузили оригинал информационного файла и начали редактировать каждый свою часть.
Вася шустрый и быстренько закончил своё дело, сохранив свою работу в на сервере. Оригинал изменился.
Петя пошёл попить чайку и свою работу закончил после Васи. Но он не может сохранить свою отредактированную копию в качестве оригинала, ибо будет потеря информации Васи.


И пошёл Вася бить лицо Пете, так как из-за него он не может сохранить результат своей работы, правильно? :)

Если вы не можете смержить результат, это ваша проблема. Вы своей неспособностью решить задачу закрываете блокировкой и переносите проблему на пользователей. И никакой возможности снизить боль и проблему у вас не предусмотрено.

Лучше не упоминать, что у вас оптимистичная блокировка, так как вы говорите по сути -- я создал проблему для пользователей и горжусь этим :)

Так дела не делаются.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974629
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

В предложенной мною схеме, навскидку, никакие данные не теряются. Оригиналом становится последнее сохранение, однако можно скачать любую версию.

Вася при сохранении должен получить уведомление, что до него уже вносились правки и принять решение из вариантов:

1. Вася сохраняет свою версию, которая становится последней, и говорит Пете, чтобы перенёс свои правки в его версию
2. Вася открывает предыдущую версию, сравнивает со своей и переносит руками чужие правки в свою версию

В любом случае, блокировка тут не нужна, так как она в вашем решении легко обходится пользователем, и дорого обходится бизнесу. Решение довольно херовое.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974650
сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974654
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Решение довольно херовое.

Особенно такая блокировка, когда Вася может заблокировать файл и уехать в отпуск на месяц на Красное море (или вообще уволиться, помереть, или в тюрьму сесть). В доисторические времена, когда еще работали с MS Source Safe сталкивались с таким :)
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974680
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить


Решение хорошее, но это уже рюшки-плюшки. Т.е. как дополнительное улучшение. Вопрос сохранения это не отменяет.

Явных преимуществ оптимистичной блокировки перед пессимистичной в данном кейсе нет. Хранение версий решает проблему сохранения изменений. Уведомления решают проблему сокрытия изменений.

Идеальное решение -- мержинг, автоматический или ручной.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974683
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
Решение довольно херовое.

Особенно такая блокировка, когда Вася может заблокировать файл и уехать в отпуск на месяц на Красное море (или вообще уволиться, помереть, или в тюрьму сесть). В доисторические времена, когда еще работали с MS Source Safe сталкивались с таким :)


Какие-то старые версии SVN сразу вспоминаются )
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974714
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 15:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159734][22159734]
>И пошёл Вася бить лицо Пете, так как из-за него он не может сохранить результат своей работы, правильно? :)
<
Не понимаю.
Информационная система работает с сущностями. Каждая сущность обязательно имеет суррогатный ключ и timestamp для реализации оптимистической блокировки. Также, одним из атрибутов сущности может быть файл.
Вася и Петя, как минимум имеют <pk_Entity, timestamp>.
Петя в процессе попытки переписать отредактированную им копию на сервер, проверяет методом UPDATE тот факт, что он правил копию, соответствующую оригиналу (оригинал сущности не изменился). Если ок, заменяет оригинал файла своей отредактированной копией, с изменением timestamp.
Далее, проснулся Вася и отредактировал файл и пытается проверить свою копию на соответствие оригинала. Получает не штатную ситуацию, но с новым timestamp. Он может плюнуть на всё и повторить перепись своей отредактированной копии с потерей работы Пети. Может поступить более аккуратно - повторно загрузить оригинал, что содержит изменения Пети.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974723
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Он может плюнуть на всё и повторить перепись своей отредактированной копии с потерей работы Пети. Может поступить более аккуратно - повторно загрузить оригинал, что содержит изменения Пети.


А если Вася случайно повторил, или не понял, Петя всё равно придёт бить Васе морду.

Поэтому, как я уже говорил, хранение версий файлов решают эту проблему на корню. И нафиг ваша блокировка там уже не нужна.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974724
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Не понимаю.


Это очевидно. Вы же не имеете желания рассматривать любые решения, способы разработки, кроме того, что смогли осилить. А что осилили, поднимаете на флаг, как достижение уровня открытия Америки.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974725
hVostt
Алексей Роза
сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить


Решение хорошее, но это уже рюшки-плюшки. Т.е. как дополнительное улучшение. Вопрос сохранения это не отменяет.

Явных преимуществ оптимистичной блокировки перед пессимистичной в данном кейсе нет. Хранение версий решает проблему сохранения изменений. Уведомления решают проблему сокрытия изменений.

Идеальное решение -- мержинг, автоматический или ручной.

и вот тут я запутался...
этот мержинг?
авторMerge — оператор языка SQL, который позволяет слить данные одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется Update, а если нет - Insert.
Пару страниц назад ты говорил, что UPDATE не нужен.
А прям перед моим постом ты писал:
hVostt
ВМоисеев,

В предложенной мною схеме, навскидку, никакие данные не теряются. Оригиналом становится последнее сохранение, однако можно скачать любую версию.

Вася при сохранении должен получить уведомление, что до него уже вносились правки и принять решение из вариантов:

1. Вася сохраняет свою версию, которая становится последней, и говорит Пете, чтобы перенёс свои правки в его версию
2. Вася открывает предыдущую версию, сравнивает со своей и переносит руками чужие правки в свою версию

В любом случае, блокировка тут не нужна, так как она в вашем решении легко обходится пользователем, и дорого обходится бизнесу. Решение довольно херовое.

...где п.2 это практически точная копия моего варианта и таки там есть блокировка (Васе заблокирована возможность сохранить документ поверх Пети).
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974726
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
и вот тут я запутался...
этот мержинг?
авторMerge — оператор языка SQL, который позволяет слить данные одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется Update, а если нет - Insert.


Не... слияние изменений. Вася одну часть отредактировал, Петя другую. При сохранении происходит попытка слить изменения, если нет конфликтов, которые нужно устранять вручную.

Алексей Роза
Пару страниц назад ты говорил, что UPDATE не нужен.


UPDATE файлов не нужен.

Алексей Роза
...где п.2 это практически точная копия моего варианта и таки там есть блокировка (Васе заблокирована возможность сохранить документ поверх Пети).


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

Петя не потеряет своих изменений ни при каких обстоятельствах, что бы там какой Вася не делал.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974749
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Какие-то старые версии SVN сразу вспоминаются )

SVN, кажись, уже от рождения был безблокировочником. Впрочем, сейчас, в эру Git, все эти SS/SVN/TFS уже все вспоминаются как лютый ужас.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974764
hVostt
В описанной мною схеме нет блокировки. Вася никогда не может перезатереть изменения Пети, так как все изменения сохраняются отдельными версиями. Просто актуальна всегда самая последняя версия.

ну т.е. все увидят только изменения Васи. А Петя может до усрачки гордиться своими изменениями, но их так никто и не увидит...
пока он их не пересохранит!
тогда Васины изменения пойдут на хер, а Петины изменения увидят все...
пока Вася их не пересохранит!
тогда Петины изменения пойдут на хер, а Васины изменения увидят все...
пока Петя их не пересохранит!
...
где конец этой истории?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974766
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 17:58 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159888][22159888]
>Поэтому, как я уже говорил, хранение версий файлов решают эту проблему на корню.
<
Клиент редактирует файл на локальном компе. Поэтому всегда может сделать копию своей работы.
Потом, я не знаю, сколько пользователей может редактировать файл. И все их версии надо хранить? И потом искать?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974774
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
ну т.е. все увидят только изменения Васи. А Петя может до усрачки гордиться своими изменениями, но их так никто и не увидит...
пока он их не пересохранит!
тогда Васины изменения пойдут на хер, а Петины изменения увидят все...
пока Вася их не пересохранит!
тогда Петины изменения пойдут на хер, а Васины изменения увидят все...
пока Петя их не пересохранит!
...
где конец этой истории?


Все увидят все изменения всех людей. Как бы об этом и речь.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974775
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Клиент редактирует файл на локальном компе. Поэтому всегда может сделать копию своей работы.


Раз вы так рассуждаете... И нафиг тогда ваше ПО ему упало? Он из без ваших соплей может всё в экселях/вордах сделать и в папку расшаренную сохранить. Нужна ли ему какая-то кривая приблуда, которая ему только мешает жить? Если уж на то пошло :)


ВМоисеев
Потом, я не знаю, сколько пользователей может редактировать файл. И все их версии надо хранить? И потом искать?


Вы когда-нибудь работали с Confluence? Видимо нет.
В курсе, что историю изменений в том же ворде можно сохранять в самом документе?
Этим давным давно пользуются и очень успешно.

В ERP/CRM системах сохраняются версии, это давно обычное дело.

Вылазьте из танка )
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974805
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 20:13 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22159951][22159951]
>...Он из без ваших соплей может всё в экселях/вордах сделать и в папку расшаренную сохранить
<
Он понятия не имеет о расшаренных папках
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974832
hVostt
Все увидят все изменения всех людей. Как бы об этом и речь.

hVostt
В ERP/CRM системах сохраняются версии, это давно обычное дело.
Вылазьте из танка )

Пардон за толстую броню, но я всё ещё слабо представляю, как это должно выглядеть...
Даже при том, что с CRM знаком не по наслышке.
Допустим, у меня форма по заполнению паспорта.
Вася заполнил, сохранил.
Петя заполнил, сохранил.
Коля заполнил, сохранил.
Да кто угодно заполнил, сохранил.

Во1, мы тупо сохраняем всем разные версии (даже без оглядки на сохранение одновременно открытых документов)? Или сохраняем только те, которые одновременно 2-3-5 челов редактировало?
во2, как теперь будет выглядеть форма сохранения паспорта? Там под каждым инпутом будут вылазить все остальные варианты?
в3, какая именно версия будет актуальной то - самое главное?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39974874
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё время появляются какие-то новые версии, условия всё время меняются, ответы усложняются, возникают новые варианты, ищутся какие-то абстрактные абсолютные решения. Решение должно идти от конкретной задачи, её постановки и бюджета, а не произвольных фантазий на все случаи жизни в духе "а если бы он вёз патроны". Вообще непонятно, зачем задача версионности, если таковая возникнет, должна решаться на уровне базы данных, а не специальных приложений для синхронизации изменений и отслеживания версий. Пусть разработчики таких приложений и ломают головы в каком виде и где хранить их данные, хоть в БД, хоть в файловой системе, у которых в таком случае основная задача обеспечить сохранность этих данных.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975104
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA
Всё время появляются какие-то новые версии, условия всё время меняются, ответы усложняются, возникают новые варианты, ищутся какие-то абстрактные абсолютные решения. Решение должно идти от конкретной задачи, её постановки и бюджета, а не произвольных фантазий на все случаи жизни в духе "а если бы он вёз патроны". Вообще непонятно, зачем задача версионности, если таковая возникнет, должна решаться на уровне базы данных, а не специальных приложений для синхронизации изменений и отслеживания версий. Пусть разработчики таких приложений и ломают головы в каком виде и где хранить их данные, хоть в БД, хоть в файловой системе, у которых в таком случае основная задача обеспечить сохранность этих данных.


Решение под задачу, это как костюм у портного. Долго. Дорого.
Поэтому стараются разрабатывать тиражируемые решения там, где это возможно.

Как раз бюджет всегда является ограничением. Отсюда растут ноги у бест пректикс и т.д.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975106
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Пардон за толстую броню, но я всё ещё слабо представляю, как это должно выглядеть...
Даже при том, что с CRM знаком не по наслышке.
Допустим, у меня форма по заполнению паспорта.
Вася заполнил, сохранил.
Петя заполнил, сохранил.
Коля заполнил, сохранил.
Да кто угодно заполнил, сохранил.

Во1, мы тупо сохраняем всем разные версии (даже без оглядки на сохранение одновременно открытых документов)? Или сохраняем только те, которые одновременно 2-3-5 челов редактировало?
во2, как теперь будет выглядеть форма сохранения паспорта? Там под каждым инпутом будут вылазить все остальные варианты?
в3, какая именно версия будет актуальной то - самое главное?


Вариантов решения масса. Версии позволяют не терять изменения. Потеря изменений -- страшный и обидный результат работы с ПО. Как минимум в ПО добавляют аудит изменений.

В любых сценариях актуальная версия та, которая была сохранена последней. При любой блокировке, любых решениях. Как работать с изменениями -- вопрос UX.

Ещё учитывать контекст задачи. Как например у ВМоисеева, его "оптимистичная блокировка", которой он так гордится, с вероятностью 99,9% нафиг никому не нужна в принципе. Её наличие или отсутствие вряд ли кто-либо когда-то заметит, кроме него самого.

При работе с форматируемыми документами два варианта применяются в настоящее время:
1. Версии
2. Совместное редактирование онлайн
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975107
hVostt
2. Совместное редактирование онлайн

а это не то, о чём я писал?
Алексей Роза
сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975115
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
hVostt
2. Совместное редактирование онлайн

а это не то, о чём я писал?
Алексей Роза
сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить


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

Уведомление вам чем поможет? Ну вот вы заполняете некую форму. Потратили кучу времени, а тут вылазит уведомление, что какой-то там Вася уже внёс какие-то свои изменения.

И, как говорится, и чо? )) Что теперь делать? Свои изменения сохранять -- сыкотно, Вася придёт и ругаться будет. Отказываться от своих изменений обидно. Что делать?
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975116
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

Вообще предлагаю создать отдельную тему, если это вам интересно обсудить. Тут и правда зафлудили не по теме...
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975220
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Алексей Роза, сегодня, 00:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22160474][22160474]
>сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить
<
Согласен. Вася должен знать, что отредактировал копию не актуального оригинала файла. И сохранять его копию в качестве оригинала не совсем правильно.
Но как он узнает об этом печальном событии?
Откуда Петя знает, что надо сообщать Васе, Коле …?
Я пытаюсь сделать тоже, что и Вы. Но в процессе попытки переписи копии в оригинал.
Мне не надо знать, кто ещё возможно редактирует свою копию оригинала.
Клиент получает сообщение, что его отредактированная копия не соответствует актуальному оригиналу.
Что клиент будет делать в этом случае - лучший вариант, он заново считает оригинал на свой комп и повторно введет изменения.
Вопрос, каков объем изменений?
Если большой, то имеет смысл сделать (возможно автоматически) копию копии, но на рабочем компе.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39975234
hVostt
Алексей Роза,

Вообще предлагаю создать отдельную тему, если это вам интересно обсудить. Тут и правда зафлудили не по теме...

давайте продолжать тут
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39976612
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, совершенно не упомянули такую тему, как репликация, шардинг и т.п., что те же sql filestream и mongodb gridfs умеют.
...
Рейтинг: 0 / 0
О хранении картинок в блобах
    #39976699
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае репликации все замки, вебсокеты и прочая дребедень идут лесом
...
Рейтинг: 0 / 0
135 сообщений из 135, показаны все 6 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / О хранении картинок в блобах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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