История изменений
Исправление
kilokolyan,
(текущая версия)
:
Была. hash_map< docid, set* >. Стоимость нахождения числа лайков для данного docid - O(1). И даже вариант который Вы сами упомянули в описании с std::map будет лучше чем B+tree с compound key - там O(log(count(docid)).
Требовалось это хранить в Btree. У меня нет столько ОЗУ, чтобы запихать все лайки всех пролайканных объектов в хештаблицы в памяти. Ну это надо городить выгружалку-загружалку каждой хештаблицы или её региона хотя-бы. А при ресайзе хештаблицы придётся переписывать её ВСЮ, что жопа.
Незнаю насколько O(log(count(docid)) дешевле сильноветвистого B+-Tree, надо мерять.
Исходная версия
kilokolyan,
:
Была. hash_map< docid, set* >. Стоимость нахождения числа лайков для данного docid - O(1). И даже вариант который Вы сами упомянули в описании с std::map будет лучше чем B+tree с compound key - там O(log(count(docid)).
Требовалось это хранить в Btree.
Незнаю насколько O(log(count(docid)) дешевле сильноветвистого B+-Tree, надо мерять.