ОК, если MongoDB и CouchDB не работают для вас, то у вас в основном одна проблема: недостаточно мощности .
Давайте посмотрим на список белья:
Он должен масштабироваться до O (10 ^ 8) токенов.
Сколько у вас оперативной памяти?Вы говорите о сотнях миллионов токенов и , вы говорите о потоковой передаче 7zip-файла.Если вы хотите быстро выдавать «приращения», вам нужно иметь возможность хранить всю структуру данных в памяти, или все будет происходить очень медленно.
Окончательный результат необходимо запрашивать очень быстро!
Как быстро?Микросекунды, миллисекунды, сотни миллисекунд?Если вы хотите запросить 500M записей на машине с 8 ГБ оперативной памяти, вы в значительной степени удручены.Данные просто не помещаются, не имеет значения, какую базу данных вы используете.
Набор данных> 2Tb
Хорошо, давайте предположим, что ваш компьютер может в среднем около50 МБ / с постоянной пропускной способности и , чтобы ваш процесс мог действительно распаковывать данные с такой скоростью.В этом темпе вы говорите о 11+ часах времени обработки только для потоковой передачи данных (вы хотели, чтобы это было сделано в выходные?) Пропускная способность 1027 *
50 МБ / с в течение 11 часов - это не маленькая картошка, этонастоящий драйв.И если вы попытаетесь что-то записать на диск во время этого процесса (или замены ОС), то это быстро ухудшится.
Посмотрите с точки зрения БД, MongoDB может справиться с обоимиобновление интерфейса и запросы к серверу.Но он должен сбрасываться на диск каждую минуту или около того, и это значительно увеличит ваше 11-часовое время выполнения.
Это общее время выполнения будет становиться все хуже и хуже, если вы не справитесь со всей БДв памяти и весь поток в памяти.
Моя точка зрения *
довольно проста, вам нужно больше энергии.
Если вы не выполняете эту операцию с 24 ГБ + ОЗУ, то все, что вы делаете, будет работать медленно.Если у вас нет 24 ГБ + ОЗУ, то ваш окончательный набор данных не будет «молниеносным», в лучшем случае «200 мс-быстрым».Вы можете просто индексировать 500M строк и ожидать, что найдете запись, если не можете сохранить индекс в ОЗУ.
Если вы не выполняете эту операцию с удивительными жесткими дисками, операция будет казаться медленной.Я имею в виду, что вы говорите о часах и часах устойчивых операций чтения с высокой пропускной способностью (и, вероятно, записи).
Я знаю, что вам нужна помощь, я знаю, что вы дали щедрость на этот вопрос, нодействительно трудно решить следующую проблему:
Я пробовал CouchDB и MongoDB без слишком хороших результатов.
, когда кажется, что вы на самом деле не собралисьправильный механизм для решения проблемы.