У меня есть большой dataset
с возможно более чем миллионом записей. Все элементы имеют назначенную метку времени, и элементы добавляются к набору во время выполнения (обычно, но не всегда, с более новой меткой времени). Мне нужно показать подмножество этих данных с заданным временным диапазоном. Этот временной диапазон обычно довольно мал по сравнению с общим набором данных, то есть из 1.000.000+ элементов, не превышающих около 1000, в данном заданном интервале времени. Этот временной диапазон перемещается с постоянным темпом, например. каждую секунду временной диапазон перемещается на одну секунду. Кроме того, пользователь может отрегулировать временной диапазон в любое время («переместить» через набор данных) или установить дополнительные фильтры (например, фильтр по тексту).Фильтрация подмножества (потенциально) 1.000.000+ единиц
До сих пор я не беспокоился о производительности, пытаясь понять, что все в порядке, и работал только с меньшими наборами тестов. Я не совсем уверен, как эффективно решать эту проблему и буду рад за каждый вклад. Благодарю.
Edit: Используется язык C# 4.
Обновление: Я теперь с помощью интервального дерева, реализация может быть найдена здесь: https://github.com/mbuchetics/RangeTree
Он также поставляется с асинхронной версии, которая перестраивает дерево, используя Параллельная библиотека задач (TPL).
Является ли набор данных отсортированным по метке? – mtrw 2010-12-10 08:59:51
Какую структуру данных вы используете для хранения 1000000 + элементов? – TalentTuner 2010-12-10 09:05:29