Melhor das estruturas de dados de indexação de raças para séries temporais extremamente grandes

Gostaria de pedir a seus colegas SO'ers suas opiniões sobre as melhores estruturas de dados de raça para serem usadas na indexação de séries temporais (também conhecido como dados em colunas, também conhecido como linear

xistem dois tipos básicos de séries temporais com base na característica de amostragem / discretizaçã

iscretização regular (todas as amostras são colhidas com uma frequência comu

iscretização irregular (as amostras são colhidas em momentos arbitrário

Queries que serão necessárias:

Todos os valores no intervalo de tempo [t0, t1]

Todos os valores no intervalo de tempo [t0, t1] maiores / menores que v0

Todos os valores no intervalo de tempo [t0, t1] que estão no intervalo de valores [v0, v1]

Os conjuntos de dados consistem em séries temporais resumidas (que superam a discretização irregular) e séries temporais multivariadas. O (s) conjunto (s) de dados em questão tem tamanho entre 15 e 20 TB, portanto, o processamento é realizado de maneira distribuída - porque algumas das consultas descritas acima resultam em conjuntos de dados maiores que a quantidade física de memória disponível em qualquer sistem

Processamento distribuído neste contexto também significa despachar a computação específica de dados necessária junto com a consulta de séries temporais, para que a computação possa ocorrer o mais próximo possível dos dados - para reduzir as comunicações nó a nó (um pouco semelhante ao mapa / reduzir paradigma) - a proximidade curta de computação e dados é muito crític

Outra questão que o índice deve ser capaz de lidar é que a grande maioria dos dados é estática / histórica (99,999 ...%); no entanto, diariamente, novos dados são adicionados, pense em "senadores de campo" ou "dados de mercado". A ideia / requisito é poder atualizar todos os cálculos em execução (médias, garchs etc.) com a menor latência possível, alguns desses cálculos em execução exigem dados históricos, alguns dos quais serão mais do que o que pode ser razoavelmente armazenado em cache.

Eu já considerei o HDF5, ele funciona bem / eficientemente para conjuntos de dados menores, mas começa a se arrastar à medida que os conjuntos de dados ficam maiores, também não há recursos de processamento paralelo nativo no front-en

Procurando sugestões, links, leituras adicionais etc. (soluções C ou C ++, bibliotecas)

questionAnswers(6)

yourAnswerToTheQuestion