информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsГде водятся OGRыВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Присоединяюсь к предыдущему автору - проанализировать... 09.06.05 20:48  Число просмотров: 3340
Автор: Searcher Статус: Незарегистрированный пользователь
Отредактировано 09.06.05 21:09  Количество правок: 2
<"чистая" ссылка>
Присоединяюсь к предыдущему автору - проанализировать (построить модель работы базы) и попробовать разные варианты.
Для анализа можно попробовать записать работу базы за некоторый промежуток времени (минуту, час день), например,
"Взят элемент 1 из кеша,
Взят элемент 143343 из файла,
взят элемент 5 из файла,
Взят элемент 143343 из кеша,
..." и т.д.
Или короче
"1к 143343ф 5ф 144343к" будет видна эффективность кеша
Приняв чтение из кеша за х попугаев (лучше замерит), из файла за у попугаев анализируя поток получаем время. Меням алгоритм и имитируем тот-же поток. Пересчитываем время и т.д.
Минус подхода - жесткая привязка к выборке (назавтра поток может быть совсем другим), плюс - "повторяемость" (при проверке одного алгоритма 100 запросов, при проверке другого 10000, а так им предоставляются "абсолютно" одинаковые условия). Чем более "характерная" запись получится тем лучше результат.

Как один из вариантов организации кеша могу предложить кеш второго уровня куда таки попадают элементы, вылетая из первого, но остаются там, если счетчик их использования на хорошем уровне.
Также новый элемент можно добавлять не в конец очереди, а в ее середину, чтобы не дать ему шанс сразу же оттуда вылететь.
Счетчик использований элемента имеет смысл, т.к. тогда будет сразу видна эффективность нахождения данного элемента в кэше (чем больше чтений из кеша - тем больше выигрыш).
Можно также вести счетчик использований самого кеша, чтобы его значение, уменьшенное в дцать раз, использовать как "порог эффективности" - если у элемента счетчик использования меньше порога - он кандидат на удаление. Вновь добавляемому элементу присваивается значение порога (эквивалент помещения в середину очереди = дает шанс задержаться элементу). Такое увеличение порога выкинет элементы, которые некоторое время использовались довольно интенсивно, а затем перестали использоваться. В то же время для элемента, который выкидывается из кеша, разница между его текущим значением счетчика, и значением счетчика при добавлении (просили навороты ? :) ) покажет время нахождения элемента в кеше и покажет его шансы на попадание во второй кеш.
<theory> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach