12. Проектирование контейнера. Анализ паттернов доступа Требуется максимальная скорость просмотра оценок пользователя Будем хранить оценки в массиве пар (произведение, оценка) объ ект оценка оценка пользователь объ ект
13. Проектирование контейнера. Анализ паттернов доступа Требуется быстрое сравнение оценок двух пользователей Будем хранить оценки упорядоченными по идентификаторам 5 оценка 8 оценка пользователь
14. Проектирование контейнера Требуется быстрый поиск оценок пользователей/произведений + не все пользователи/произведения имеют оценки Будем хранить ссылки на пользовательские оценки в хэш-таблице
15.
16.
17.
18. Изменения в структуре для обеспечения CAS hash_map< subj, ref_count_ptr < array< pair<obj, rate> > > >
19.
20. Результаты: операций в секунду Оценок: 10.5 миллионов Запросов к данным: 4.2 миллиона Рассчитанных рекомендаций: 700 636 000 9500 Контейнер операций чтения Движок вычислений MySQL 504 оп. чтения