Есть 500 миллиардов записей, каждая запись это немного чисел и немного текста.
Это все поделено на N количество частей по примерно 10 миллиардов.
На данный момент 10 миллиардов хранятся в одном файле (около 5 Тб). К этому файлу есть несколько индексов, бинарные файлы (ключ -> офсет в файле с данными), отсортированные по ключу, поэтому поиск получатся довольно простой.
Главная проблема в том что часто приходят новые данные, N миллионов в день, и при добавлении в файл индекса этих записей файл индекса приходиться весь переписывать а это около 500 гб. И так каждый индекс а их несколько на каждую часть. Это получается долго.
Как обычно решают такие проблемы? Как хранить больше индексы? Может есть какая то дб способная вмещать себя столько с с несколькими индексами и сортировками.
Я думаю, стоит попробовать Cassandra. Она умеет не только очень быстро искать по первичному ключу, но и по вторичному www.datastax.com/docs/1.0/ddl/indexes