Pergunta

Existem alguns estudos bastante independente e não tão independentes comparando tradicional RDBMSs mas eu não consegui encontrar qualquer material bom em bancos de dados na memória. Estou interessado principalmente em aqueles especializados para OLTP.

Até agora, eu consegui encontrar papéis brancos genéricos no TimesTen e MySQL Cluster, mas eu ainda tenho que ver uma comparação head-to-head. Existem outras alternativas (por exemplo, da IBM), mas não há ainda menos facilmente material disponível.

Foi útil?

Solução

As informações são espalhados por toda a web, mas aqui está o que eu descobri:

Introdução ao banco de dados de benchmarking

A primeira coisa que você precisa fazer é descobrir uma referência padrão a ser usado para comparar as suas opções de banco de dados de memória no. Uma página wiki sobre o Oracle dá uma visão geral da indústria benchmarks de banco de dados padrão . Se você pode encontrar resultados para os mesmos indústria benchmarks padrão para TimesTen e MySQL Cluster, você será capaz de comparar os dois. Encontrar uma comparação detalhada de todos os bancos de dados em memória é bastante raro.

Sumário: Desde que você mencionou OLTP, o benchmark padrão da indústria que provavelmente você está interessado é TPC-E, que simula a carga de trabalho OLTP de uma corretora. Outro setor benchmarks padrão medir transações de banco de dados de apoio à decisão e de e-commerce.

kits Open source de referência do banco de dados

O Open Source Development Labs banco de dados Test Suite é a implementação open source abrangente maioria daqueles padrão da indústria benchmarks que mencionei anteriormente. Eles têm quatro suíte principal de testes numerados DBT1, DBT2, DBT3, DBT4. Eles não implementaram o benchmark TPC-E, mas o banco de dados de teste 2 (DBT2) é o que você está procurando, uma vez que simula OLTP transações. Todo mundo simplesmente se refere à execução do benchmark DBT2 em vez de ortografia-lo como OSDLB DBT2.

Resultados

MySql

MySQL Cluster site

MySql publicou benchmarks

Você precisa se registrar para obter o papel branco enviado a você, mas aqui é o resumo que eu tirei de seu site:

Em última análise, MySQL Cluster foi capaz de chegar a 100.000 transações por minuto numa configuração 8-nó. Esta mostraram melhorias de escala impressionantes quando em comparação com um grupo 2-nó que foi capaz de obter 26.000 transações por minuto. Estes melhorias de desempenho foram realizados através do uso de novas multi core servidores Intel Xeon baseados na Intel Núcleo T micro arquitetura.

do Oracle

o Oracle TimesTen site

Infelizmente o DBT2 não suporta TimesTen. No entanto eu encontrei um whitepaper que dá detalhada análise comparativa de informações para TimesTen em uma carga de trabalho OLTP.

IBM

IBM solidDB site

Outros recursos

  1. Em memória DBMS seção de um blog que se concentra em bancos de dados.
  2. Transaction Processing Performance Council website - Você pode procurar seu banco de dados de benchmarks de vários fornecedores de hardware usando vários DBMSes. Eu era incapaz de encontrar qualquer na memória DBMS benchmarks no entanto.

Outras dicas

VoltDB é um banco de dados OLTP na memória altamente escalável que fornece SQL / ácido e é executado em hardware commodity em um cluster compartilhado nada. É aberto-fonte e existe tanto na livre / comunidade (AGPLv3) versão , bem como um comercialmente versão com suporte.

Há um post nos fóruns VoltDB discutir algumas das outras soluções de memória em OLTP RDBMS em http : //community.voltdb.com/node/95 . Sinta-se livre para rever e acrescentar a essa postagem.

Sebastian Czechowski em BigDataMatters tem uma comparação de quatro IMDBs diferentes, sugerindo selecciona tendem a ser 5 vezes mais rápido, e inserções / eliminações tendem a ser 2x-4x mais rápido.

http://bigdatamatters.com/bigdatamatters/2009/12/oracle_ibm_database_comparison.html

Este artigo wiki apresenta uma comparação entre a maioria dos RDBMS bem conhecidos de: Comparação de sistemas de gerenciamento de banco de dados relacionais

comparação não, mas listas das RDBMS na memória: In-memory database

Além disso, ele vai depender do seu uso pretendido, até certo ponto. Quais são as suas restrições e requisitos mínimos de desempenho?

Eu acho que sua melhor opção é obter julgamento (ou livre) versões e estabelecer seus próprios valores de referência.

Quase todos os DBMS vai fazer a mesma coisa, mas de forma diferente, portanto, você deve procurar o mais rápido DBMS pode encontrar, se o que você precisa é de velocidade, então você deve usar TimesTen wich é aceito como um dos as soluções mais rápidas, a coisa com código-fonte aberto DBMS é que, alguns dos recursos mais avançados (tais como replicação) estão nem perto do que você encontraria em alternativas comerciais. Muito simplesmente, a maioria dos usuários não precisa de replicação nos níveis que a Oracle, DB2, ou oferta MS-SQL; portanto, PostgreSQL e MySQL desenvolvedores não se sentem a necessidade de melhorá-lo.

Essa resposta foi obtida depois de olhar para o mais rápido entre RDBMS mencionado aqui e alguns já conhecidos por mim, eu fui 2 por 2 procurando o melhor e, em seguida, procurando o melhor entre o vencedor eo outro, eo resultado foi que TimesTen é o mais rápido entre:

  • DB2
  • Oracle (não TimesTen)
  • MySQL
  • PostgreSQL
  • MS-SQL

Assim, você deve usar para o aplicativo que você está mencionando e as condições estabelecidas TimesTen.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top