Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,258 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×