Your SlideShare is downloading. ×
  • Like
!!8 Flyonts Serp Cache Hl++2008 (Office97)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

!!8 Flyonts Serp Cache Hl++2008 (Office97)

  • 892 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
892
On SlideShare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
22
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Создание системы кэширования для сложных вычислительных систем Владимир Фльонц < МЕТА >
  • 2. Зачем?
    • Кэш ( англ. cache ) - в компьютерных науках промежуточный буфер с быстрым доступом.
    • Кэш ( англ. cash ) - сленговое обозначение наличных денег.
    • Кэш сбережёт вам кэш.
  • 3. Реклама
    • Десять лет в интернете.
    • Один из наиболее посещаемых украинцами сайтов*
    • 50+ сервисов и служб под одной крышей
    • Собственный поиск по украинскому сегменту Web
    • * - www.gemius.com.ua
  • 4. Один запрос «большого поиска» Balancer Balancer
  • 5. Что можно кэшировать?
    • Найденные документы по каждому слову – дисковый кэш.
    • Конечные результаты поиска (SERP)
      • + Просто
      • – Большинство «тяжелых» запросов
      • не повторяются
  • 6. Пока кэш не большой
    • Если все умещается в память ( RAM) то лучше хранить это там
      • минусы: сбой/перезапуск и кэш нужно заново наполнять
    • Своя реализация vs. готовые third party решения
      • требования:
      • максимально быстрый поиск/доступ к записи
      • эффективное удаление устаревших записей
    • list<serp> + map<query, serp*>
  • 7. Растём
    • Увеличение количества запросов * увеличение времени жизни записи в кэше = (увеличение размера данных) 2
    • Надо «слазить» на диск
    • Выбор контейнеров хранения
    • Опять изобретать велосипед?
  • 8. Berkeley DB Btree
    • Знакомый, хорошо зарекомендовавший себя компонент
    • Поддержка многопоточных приложений
    • Прогнозируемое время отклика
    • Собственная система кэширования
  • 9. Berkeley DB Btree
    • Знакомый, хорошо зарекомендовавший себя компонент
    • Поддержка многопоточных приложений
    • Прогнозируемое время отклика
    • Собственная система кэширования
    • Фрагментация и избыточность данных
    • Постраничное кэширование не эффективно!
  • 10. Попробуем сделать лучше
    • Хэш таблица в памяти данные на диске
    • Последовательная запись, произвольное чтение
    • Сжатые данные быстрее пишутся и читаются
    • Данные пишутся и «закрываются» частями
    • «Закрытые» части переходят в R/O
    • Мы можем потерять, но только малую часть
    • Чистка мусора происходит тоже частями
      • (hint: ext3 медленно удаляет большие файлы )
  • 11. Ещё лучше
    • Произвольное чтение – медленно
    • Востребованных данных по прежнему гораздо меньше
  • 12. Ещё лучше
    • Произвольное чтение – медленно
    • Востребованных данных по прежнему гораздо меньше
    • Промежуточный «горячий» кэш по записям в памяти
    • Не обязательно в том же процессе на той же машине
    • Не забываем сжимать то что кэшруем
    • Теперь мы только пишем на диск и иногда читаем
  • 13. Маштабируемость Balancer Balancer
  • 14. Маштабируемость
    • Полные копии на каждом из сливателей
    • Надёжно но избыточно, многократное кэширование
    • Общее правило распределения
      • Hash(Query) mod N
      • Добавление хранилищ требует очистку кэша
    • Общий менеджер, раздельные хранилища
      • Одно узкое место, закон Мёрфи никто не отменял.
  • 15. Вопросы? Владимир Фльонц <META> [email_address]