bancos de dados que suportam MVCC (histórico permanente)

2

Eu tenho um aplicativo que precisa de um banco de dados + que se beneficiaria muito de um modelo de MVCC . Idealmente, ele suportaria armazenamento de histórico permanente, acesso dos dados em um determinado ponto no tempo e backups incrementais.

Estou vendo os bancos de dados que podem suportar isso. Eu sei que o CouchDB pode (além dos backups incrementais, não tenho certeza disso), mas neste aplicativo eu realmente preciso de um banco de dados relacional.

Estou surpreso que o MySQL lista o suporte do MVCC no Innodb / Falcon. Tenho a impressão de que talvez isso seja apenas para o estado do banco de dados dentro de uma transação e, uma vez que todos os níveis de transação estejam comprometidos, o histórico é perdido.

Que tal PostgreSQL ?

    
por Jason S 06.11.2009 / 18:07

3 respostas

4

O MVCC não é o que você está procurando. Parece que você deseja consultar dados com base em um "ponto no tempo" para resultados com base no estado dos dados naquele ponto especificado no tempo.

Esse é um esquema de banco de dados temporal . Você pode criar um esquema de banco de dados relacional para consultas temporais, mas o próprio SQL torna alguns tipos de consultas temporais muito incômodas. Existe / era um dialeto SQL temporal (o espec está aqui , embora pareça ser o assunto de publicações de pesquisa , mas nunca foi padronizado), que supostamente tornava as consultas temporais menos complicadas enquanto ainda" eram SQL ".

Você pode encontrar muitas pesquisas e livros sobre o assunto de dados temporais e o modelo relacional se você procurar por ele. Uma boa modelagem de dados pode levar você para onde você quer ir, mas se você usar o SQL como sua linguagem de consulta, talvez não goste de como algumas das consultas acabam parecendo.

Editar: TimeDB é um front-end para o Oracle que adiciona um dialeto de consulta temporal. A licença deste código é completamente desconhecida.

    
por 06.11.2009 / 19:06
0

O McObject anunciou em 11/09 que seu banco de dados eXtremeDB adicionou um gerenciador de transações MVCC opcional:

link

eXtremeDB, originalmente desenvolvido como um sistema de banco de dados na memória (IMDS), agora está disponível em edições com armazenamento híbrido (em memória / em disco), alta disponibilidade, suporte a 64 bits e muito mais. As interfaces incluem SQL, uma API nativa mais rápida e uma JNI (Java Native Interface).

    
por 31.07.2010 / 05:00
0

Há uma boa explicação do MVCC - com diagramas - e alguns números de desempenho para o eXtremeDB neste artigo, escritos pelo co-fundador e CEO da McObject, na RTC Magazine:

link

É evidente que o MVCC é cada vez mais benéfico à medida que um aplicativo é dimensionado para incluir muitas tarefas em execução em vários núcleos de CPU.

    
por 31.07.2010 / 05:06