SlideShare una empresa de Scribd logo
1 de 21
Хранение и обработка больших объемов данных в рекомендательном движке сайта Imhonet.ru Дмитрий Исайкин
Функции сервиса ,[object Object],[object Object],[object Object],[object Object]
Функциональные компоненты рекомендательного сервиса Рекоменда - тельный движок Сайт Imhonet Коннектор Сайты-партнеры Пользователи
Что нужно для расчета рекомендаций Чем больше оценок, тем точнее рекомендации
Расчет рекомендаций ,[object Object],[object Object],[object Object],!!! ??? Запрос Другие пользователи ,[object Object],[object Object],Референты
Алгоритм в разрезе доступа к данным ,[object Object],[object Object],[object Object],[object Object],[object Object]
Где хранить оценки?
Зачем делать самому? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Не очень много: менее  900  строк кода на всё Запас на  год-два . Проблема уже решается
Проектирование контейнера ,[object Object],[object Object],Требуются только выборки оценок по конкретному пользователю/объекту Матричное представление более предпочтительно
Проектирование контейнера. Анализ структуры оценок Будем хранить оценки в разреженной матрице
Проектирование контейнера. Разреженная матрица
Проектирование контейнера. Анализ паттернов доступа Требуется максимальная скорость просмотра оценок пользователя Будем хранить оценки в массиве пар (произведение, оценка)‏ объ ект оценка оценка пользователь объ ект
Проектирование контейнера. Анализ паттернов доступа Требуется быстрое сравнение оценок двух пользователей Будем хранить оценки упорядоченными по идентификаторам 5 оценка 8 оценка пользователь
Проектирование контейнера Требуется быстрый поиск оценок пользователей/произведений + не все пользователи/произведения имеют оценки Будем хранить ссылки на пользовательские оценки в хэш-таблице
Что мы получили ,[object Object],[object Object],[object Object],[object Object],–  Не является потокобезопасным
Способы обеспечения безопасной многопоточности ,[object Object],[object Object],[object Object]
Изменение данных без блокировки читателей ,[object Object],[object Object],[object Object],[object Object],[object Object]
Изменения в структуре для обеспечения CAS hash_map<  subj,  ref_count_ptr < array< pair<obj, rate>  > > >
Сравнение с MySQL ,[object Object],[object Object],[object Object]
Результаты: операций в секунду Оценок: 10.5 миллионов Запросов к данным: 4.2 миллиона Рассчитанных рекомендаций: 700 636 000 9500 Контейнер операций чтения Движок вычислений MySQL 504  оп. чтения
Спасибо за внимание! ,[object Object],[object Object]

Más contenido relacionado

Similar a хранение и обработка больших объемов данных в рекомендательном движке сайта Imhonet

Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...
	 Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...	 Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...
Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...web2win
 
Как увеличить продажи интернет магазина
Как увеличить продажи интернет магазинаКак увеличить продажи интернет магазина
Как увеличить продажи интернет магазинаPromodo
 
Как увеличить продажи интернет-магазина
Как увеличить продажи интернет-магазинаКак увеличить продажи интернет-магазина
Как увеличить продажи интернет-магазинаPromodo
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУYandex
 
[Ad4Digital] Артем Пилипец "SEO - когда нужно + контент-маркетинг"
[Ad4Digital]  Артем Пилипец "SEO - когда нужно + контент-маркетинг"[Ad4Digital]  Артем Пилипец "SEO - когда нужно + контент-маркетинг"
[Ad4Digital] Артем Пилипец "SEO - когда нужно + контент-маркетинг"Ministry of Digital Transformation
 
Оптимизация поведенческих факторов
Оптимизация поведенческих факторовОптимизация поведенческих факторов
Оптимизация поведенческих факторовАртем Пилипець
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Sergey Xek
 
Сравнение систем веб-аналитики. Тонкости и кейсы
Сравнение систем веб-аналитики. Тонкости и кейсыСравнение систем веб-аналитики. Тонкости и кейсы
Сравнение систем веб-аналитики. Тонкости и кейсыАлександр Алаев
 
Эффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупка
Эффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупкаЭффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупка
Эффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупкаДмитрий Севальнев
 
RESTful API development with Symfony2
RESTful API development with Symfony2RESTful API development with Symfony2
RESTful API development with Symfony2Taras Omelianenko
 
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУYandex
 
Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Комплето
 
Принципы работы поисковых систем
Принципы работы поисковых системПринципы работы поисковых систем
Принципы работы поисковых системСергей Кокшаров
 
Как работают поисковые системы
Как работают поисковые системыКак работают поисковые системы
Как работают поисковые системыNetpeak
 
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...Vladislav Morgun
 
Сливинский
СливинскийСливинский
Сливинскийtop_expert
 
Seo в стартапе
Seo в стартапеSeo в стартапе
Seo в стартапеPromo.ua
 

Similar a хранение и обработка больших объемов данных в рекомендательном движке сайта Imhonet (20)

Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...
	 Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...	 Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...
Валентин Домбровский, dombrovsky.me (Москва) Независимый консультант по воп...
 
семантическое ядро
семантическое ядросемантическое ядро
семантическое ядро
 
Seo Tools
Seo ToolsSeo Tools
Seo Tools
 
курышев рекомендательные системы
курышев рекомендательные системыкурышев рекомендательные системы
курышев рекомендательные системы
 
Как увеличить продажи интернет магазина
Как увеличить продажи интернет магазинаКак увеличить продажи интернет магазина
Как увеличить продажи интернет магазина
 
Как увеличить продажи интернет-магазина
Как увеличить продажи интернет-магазинаКак увеличить продажи интернет-магазина
Как увеличить продажи интернет-магазина
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
 
[Ad4Digital] Артем Пилипец "SEO - когда нужно + контент-маркетинг"
[Ad4Digital]  Артем Пилипец "SEO - когда нужно + контент-маркетинг"[Ad4Digital]  Артем Пилипец "SEO - когда нужно + контент-маркетинг"
[Ad4Digital] Артем Пилипец "SEO - когда нужно + контент-маркетинг"
 
Оптимизация поведенческих факторов
Оптимизация поведенческих факторовОптимизация поведенческих факторов
Оптимизация поведенческих факторов
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
 
Сравнение систем веб-аналитики. Тонкости и кейсы
Сравнение систем веб-аналитики. Тонкости и кейсыСравнение систем веб-аналитики. Тонкости и кейсы
Сравнение систем веб-аналитики. Тонкости и кейсы
 
Эффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупка
Эффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупкаЭффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупка
Эффективный отбор ссылочных доноров в Sape: подготовка, проверка, закупка
 
RESTful API development with Symfony2
RESTful API development with Symfony2RESTful API development with Symfony2
RESTful API development with Symfony2
 
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
 
Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)Анализ конкурентов (интернет-маркетинг для b2b)
Анализ конкурентов (интернет-маркетинг для b2b)
 
Принципы работы поисковых систем
Принципы работы поисковых системПринципы работы поисковых систем
Принципы работы поисковых систем
 
Как работают поисковые системы
Как работают поисковые системыКак работают поисковые системы
Как работают поисковые системы
 
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
 
Сливинский
СливинскийСливинский
Сливинский
 
Seo в стартапе
Seo в стартапеSeo в стартапе
Seo в стартапе
 

Más de Ontico

Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Ontico
 
Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Ontico
 
Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Ontico
 
Call for papers (2014) ru
Call for papers (2014) ruCall for papers (2014) ru
Call for papers (2014) ruOntico
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Как разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинКак разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинOntico
 
Конференции Онтико (2011)
Конференции Онтико (2011)Конференции Онтико (2011)
Конференции Онтико (2011)Ontico
 
Программный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряПрограммный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряOntico
 
Конференции 2010 / описание
Конференции 2010 / описаниеКонференции 2010 / описание
Конференции 2010 / описаниеOntico
 
Онтико, 2009
Онтико, 2009Онтико, 2009
Онтико, 2009Ontico
 
Конференции 2010
Конференции 2010Конференции 2010
Конференции 2010Ontico
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project developmentOntico
 
Ok2009 Пленарка
Ok2009 ПленаркаOk2009 Пленарка
Ok2009 ПленаркаOntico
 
Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Ontico
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninOntico
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c BitrixOntico
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c BitrixOntico
 
Gmr Highload Presentation Revised
Gmr Highload Presentation RevisedGmr Highload Presentation Revised
Gmr Highload Presentation RevisedOntico
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusOntico
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusOntico
 

Más de Ontico (20)

Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
 
Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015
 
Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++
 
Call for papers (2014) ru
Call for papers (2014) ruCall for papers (2014) ru
Call for papers (2014) ru
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Как разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинКак разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег Бунин
 
Конференции Онтико (2011)
Конференции Онтико (2011)Конференции Онтико (2011)
Конференции Онтико (2011)
 
Программный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряПрограммный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октября
 
Конференции 2010 / описание
Конференции 2010 / описаниеКонференции 2010 / описание
Конференции 2010 / описание
 
Онтико, 2009
Онтико, 2009Онтико, 2009
Онтико, 2009
 
Конференции 2010
Конференции 2010Конференции 2010
Конференции 2010
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project development
 
Ok2009 Пленарка
Ok2009 ПленаркаOk2009 Пленарка
Ok2009 Пленарка
 
Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg Bunin
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c Bitrix
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c Bitrix
 
Gmr Highload Presentation Revised
Gmr Highload Presentation RevisedGmr Highload Presentation Revised
Gmr Highload Presentation Revised
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 Rus
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 

хранение и обработка больших объемов данных в рекомендательном движке сайта Imhonet

Notas del editor

  1. представиться