Надо хранить в памяти много (до полумиллиона) объектов в некоем списке. Доступ в основном на поиск и модификацию свойств объектов. Вставка и удаление — редки. Активный доступ в основном к ~10% объектов, остальные — просто имеются. Доступ многопоточный, но можно и через lock() или reader\writer lock. Индекс — в оригинале строка до 50 или 100 символов (как захотим).