+  HandyCache форум
|-+  Главная категория» Новые предложения» Хранить кэш в базе данных
Имя пользователя:
Пароль:
Страниц: 1 2 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Хранить кэш в базе данных  (Прочитано 15886 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« : 05 февраля 2007, 04:49:22 »

Хотелось бы загнать весь кэш в 1-2 файла, а то файловая система загаживается жутко.
Видел я подобную реализацию кэша в OopsProxy(http://zipper.paco.net/~igor/oops/).
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #1 : 05 февраля 2007, 05:02:39 »

Хотелось бы загнать весь кэш в 1-2 файла, а то файловая система загаживается жутко.
В FAQ А нельзя ли сделать, чтобы НС хранил кэш в одном файле? А то, знаете ли, фрагментация...
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #2 : 05 февраля 2007, 05:09:21 »

Переформулирую: Можно ли загнать в БД весь кэш?
Допустим, как 3-й вариант того, где хранить данные?
P.S. А фрагментация меня не волнует, борюсь с ней успешно  Подмигивающий
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #3 : 05 февраля 2007, 05:13:37 »

А в чем смысл предложения? И чем не устраивает виртуальный диск?
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #4 : 05 февраля 2007, 05:24:06 »

Виртуальный диск таскает за собой лишний драйвер.
1. В БД средствами движка можно самостоятельно написать запрос по чистке ненужного
1.1. Или поиску нужного. Подмигивающий
2. Индексирование присутствует в движке.
3. Можно будет сделать общую базу для нескольких компов (из нета каждый качает сам, а кэш общий(у каждого свой, но можно запросить у соседа).
4. Можно будет более четко отслеживать модификацию данных и обращения к ним.
Чем плох такой вариант (в качестве дополнительного) ?
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #5 : 05 февраля 2007, 05:41:13 »

Виртуальный диск таскает за собой лишний драйвер.
А БД берется из воздуха? Подмигивающий

Вообще, как вариант, вполне имеет право на жизнь, но:
Чем плох такой вариант (в качестве дополнительного) ?
1. Временными затратами на разработку (...шитья пойдет аршин - где деньги, Зин?).
2. Имхо хранить в БД большие файлы - плохая практика, а в кэше может оказаться все, что угодно.
3. Файловая система (без БД и виртуальных дисков) как правило быстрее.
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #6 : 05 февраля 2007, 05:52:27 »

0. БД конечно не из воздуха Улыбка, но драйвер выгрузить порой сложнее...
1. Может чем -нибудь помочь?  :Улыбка
2. Согласен, их можно и на диск Подмигивающий
3. Но не всегда же? Улыбка
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #7 : 05 февраля 2007, 06:10:54 »

1. Может чем -нибудь помочь?  :Улыбка
Помощь всегда приветствуется. Желательно делом - т.е. если ты можешь предоставить _готовое_ решение (в виде dll, например), чтобы "прикрутка" к HC заключалась в добавлении "галочки" выбора способа хранения кэша - было бы хорошо. А там уж пользователь сам выберет как ему лучше. Не забыть про переход от одного способа хранения к другому и обратно.
Ну, или спонсировать разработку.
А "средние" варианты (какой из меня спонсор/готовое с потолка не падает - делать нужно) - надо обсуждать. Проще говоря, какую помощь ты можешь предложить?
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #8 : 05 февраля 2007, 06:16:11 »

Написать могу dll, если буду знать, какие функции нужны на экспорт, могу даже несколько dll написать, для разных типов баз.
Спонсировать пока не могу, сейчас на положении студента.....
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #9 : 05 февраля 2007, 06:29:07 »

Написать могу dll, если буду знать, какие функции нужны на экспорт
За конкретикой - к mai62. Но, в любом случае, прежде чем согласовывать взимодействие dll с HC нужно уже иметь какой-то "черновик".
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #10 : 05 февраля 2007, 10:50:52 »

Виртуальный диск таскает за собой лишний драйвер.

А чем не устраивает выделенный раздел диска?

Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #11 : 05 февраля 2007, 11:04:50 »

Как мне кажется, надо подходить к делу разумно.
Если будет создана БД для хранения атрибутов - в ней имеет смысл хранить и мелкие файлы (<1-2-4К), коих и есть большинство. Накладные расходы при этом вырастут не сильно. А остальные - традиционно.
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #12 : 05 февраля 2007, 23:08:29 »

А чем не устраивает выделенный раздел диска?


Переразбивкой, у меня напряжение скачет и иногда пропадает, а бесперебойник не справляется....
Как мне кажется, надо подходить к делу разумно.
Если будет создана БД для хранения атрибутов - в ней имеет смысл хранить и мелкие файлы (<1-2-4К), коих и есть большинство. Накладные расходы при этом вырастут не сильно. А остальные - традиционно.
Согласен, но тут доп. гемор при запросах на соседние кэши......
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #13 : 06 февраля 2007, 17:04:16 »

Переразбивкой, у меня напряжение скачет и иногда пропадает, а бесперебойник не справляется....
Процедура отрезания куска в конце диска обычно занимает несколько секунд. Поэтому вероятность запороть диск близка к нулю. Разумеется надо делать дефрагментацию заранее и бэкап не помешает. А база данных может легко сдохнуть при некорректном выключении компа.
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #14 : 16 февраля 2007, 05:37:32 »

Идея конечно не плоха, но я за кэш в БД целиком (для неск. пользователей)
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #15 : 16 февраля 2007, 09:22:54 »

я за кэш в БД целиком
А при чём здесь индексирование? Непонимаю
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #16 : 16 февраля 2007, 14:29:09 »

А при чём здесь индексирование? Непонимаю
В БД есть собственный алгоритм индексирования.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #17 : 16 февраля 2007, 16:44:41 »

Тема хранения кэша в базе данных уже как-то давно поднималась на ру-борде.

Среди "плюсов" данного подхода:
  • БД позволяет организовывать конкурентный одновременный многопользовательский доступ;
  • Быстрота обработки запросов, в т.ч. за счет внутреннего индексирования.


Среди "минусов":
  • Поддержка БД - вещь ресурсоёмкая - не факт, что на слабых машинках связка HC + БД не будет тяжеловесна...
  • Проблемы с переносом кэша или его части на другие компы - требуются специальные процедуры экспорта, импорта и синхронизации.
  • Трудности для любителей вручную поковыряться в кэше.
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #18 : 17 февраля 2007, 14:38:15 »

Цитировать
1) Поддержка БД - вещь ресурсоёмкая - не факт, что на слабых машинках связка HC + БД не будет тяжеловесна...
2) Проблемы с переносом кэша или его части на другие компы - требуются специальные процедуры экспорта, импорта и синхронизации.
3) Трудности для любителей вручную поковыряться в кэше.
1) да, конечно. Хотя может скомпенсироваться отсутствием необходимости повторного прогона по регекспам (результат уже там) и т.п.
2,3) - зависит от выбора базы. зачастую можно перетащить сам файл базы... Ну и "копаться" - в базе зачастую удобней, чем в файловой системе Улыбка
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #19 : 18 февраля 2007, 21:28:04 »

Дем

Цитировать
Хотя может скомпенсироваться отсутствием необходимости повторного прогона по регекспам (результат уже там) и т.п.

Списки с регэкспами могли измениться с того времени! Следовательно, проверять их повторно все равно придется...

Цитировать
зачастую можно перетащить сам файл базы...


Вся БД может и не влезть на сменный носитель для ее переноса на другой комп! Следовательно, необходима специальная процедура выборочного экспорта/импорта БД.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #20 : 19 февраля 2007, 18:08:43 »

А удобно ли в базе будет хранить объекты до 500мб, в количестве ~500000 штук, часто изменяемые и с постоянным доступом Улыбка Это ж какой движок надо? MS SQL Server? И это я еще один, а если вдруг на работе захочу HC поставить? Там десяток пользователей, сейчас можно будет любую пользовательскую машинку взять, а с БД - целый сервер понадобится.
Вот индекс (который тут неподалеку предлагали) можно в бд засунуть.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #21 : 19 февраля 2007, 18:47:49 »

А удобно ли в базе будет хранить объекты
Крайне неудобно - ведь все объекты типа "blob"... И хоть практически применимые СУБД ничего не имеют против таких объектов - заточены они всё ж вовсе не под них...
Цитировать
целый сервер понадобится
А сервер понадобится в любом случае! Улыбка
Цитировать
Вот индекс (который тут неподалеку предлагали) можно в бд засунуть
Ну, индекс/не идекс, а целую кучу сопровождающей файл мета-информации  - тут и запросивший юзер, и надёжное время создания/модификации и рекоменд. сервером время жизни, и история обновлений (понадобится, если когда-нить будет реализовано статистически обоснованные предсказания), и кол-во запросов/выдач из кэша и просто навскидку не помню чего ещё... Единств., слегка затруднится последующая модификация, если понадобится создать к примеру ещё одно поле или изменить формат уже существующего...
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #22 : 21 февраля 2007, 20:41:59 »

Цитировать
Списки с регэкспами могли измениться с того времени! Следовательно, проверять их повторно все равно придется...
А это иногда и хорошо - файл, уже лежащий в кеше - не "потеряется", а останется доступен.  И потом его можно "привести в порядок" - удалить или переместить куда надо.
Разумеется, надо думать, через какие списки надо прогнать, а через какие нет.
Сообщить модератору   Записан
crashaston
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #23 : 26 марта 2008, 12:26:47 »

Посоветуйте пожалуйста прогу виртуального диска чтобы можна было поставить загрузку автоматом.
Сообщить модератору   Записан
Death_Master
Beta tester
*****

Репутация: +1/-1
Offline Offline

Сообщений: 82


« Ответ #24 : 26 марта 2008, 14:00:10 »

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

StarWind iSCSI Target + StarPort
Искать на http://www.rocketdivision.com/
Проги бесплатны для таких целей
Сообщить модератору   Записан
Страниц: 1 2 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: