O que é a computação In-Memory?

Que-es-In-Memory-Computing

Diferentes bases de dados estão desenhadas para resolver diferentes problemas, é por isso que a compreender a diferença entre elas é fundamental para tomar a decisão correta para os seus dados. Nesta guia, Brian Bowman dá-nos detalhes sobre possíveis opções a ter em conta para sua solução de In-memory computing.

Quando se trata de bancos de dados e acesso a dados, In memory computing é um tema em voga. Os usuários estão acessando a mais dados, o que exige que os dados sejam visualizados a velocidades mais rápidas. A análise integrada e a análise preditiva só tornarão os requisitos de acesso aos dados um pouco maiores.

Atualmente, existe uma grande quantidade de competidores de nichos de mercado que reclamam possuir bases de dados In-memory (IMDB), a maioria deles enfocados em mercados verticais ou específicos. Cada um deles quer resolver desafios empresariais específicos à sua maneira. O enfoque de muitos destes competidores de nicho é o rendimento e a recuperação massiva de dados para análise, quer seja em tempo real ou preditivo.

Também existe uma grande confusão à volta dos IMDBs, o que são na realidade e como encaixam nos aplicativos modernos de hoje. De modo a pavimentar o caminho para futuras discussões, darei início fornecendo uma definição à volta dos bancos de dados IMDB vs. Bancos de dados orientadas a colunas.

Bancos de Datos In-Memory

In-memory, refere-se à arquitetura que carrega completamente os bancos de dados para a memória, para poder obter um acesso muito mais rápido a grandes quantidades de dados.

Isto é importante principalmente porque elimina os requisitos de disco I/O e requisitos de transações ACID que estão incluídas no processamento de transações on-line para aplicativos (OLTP).

É importante entender que transportar os dados para uma memória representa apenas uma parte da solução. O acesso aos dados é em regra geral diferente com IMDB, já que aumenta sua velocidade de acesso.

É por isso que muitos IMDBs utilizam um enfoque de dados orientados a objetos, ou dados orientados a colunas, Im-memory computing (IMC) refere-se aos casos de utilização de IMDB, embora muitas vezes estas siglas sejam intercambiadas.

No geral, existem dois tipos de vendedores emergentes de IMDB no mercado atual. Existem as bases de dados tradicionais, como Progress OpenEdge, que está sendo ampliada para suportar IMC. E também há vendedores pure-play, que estão oferecendo soluções autónomas para bancos de dados de IMC.

Arquitetonicamente as soluções IMDB ajudam a obter a escalabilidade horizontal através de hardware de produtos básicos (geralmente Linux).

Tecnicamente, o banco de dados OpenEdge poderia se transformar em um banco de dados in-memory. Ainda que, esta não seja a abordagem mais adequada para proporcionar um banco de dados in-memory para OpenEdge. Em primeiro lugar, os aplicativos de processamento de transações on-line (OLTP) requerem transações ACID e têm a necessidade de garantir a coerência dos dados. Em segundo lugar, geralmente baseiam-se em atualizações orientadas a linhas e não requerem uma leitura massiva nem resumos de dados. Pôr um banco de dados in-memory não ajuda a suprir estas necessidades.

 Há muitos IMDBs no mercado. Os mais notáveis são IBM DB2 com aceleração BLU, Oracle TimesTen, MemSQL e SAP HANA.

Bases de datos columnares

O objetico de um banco de dados orientada a colunas é escrever e ler dados, para e desde o armazenamento do disco duro com o fim de acelerar o tempo de consulta de um modo eficiente. Os bancos de dados orientados a colunas estão, frequentemente, muito comprimidos, o que ajuda a recuperar os dados e I/O do disco duro.

Existem muitos tipos de bancos de dados orientados a colunas no mercado atual. Muitos deles incorporam soluções in-memory para obter melhor desempenho e evitar o I/O no disco. Isto torna menos claras  as diferenças entre in-memory e orientação a colunas. Alguns exemplos de bancos de dados orientados a colunas: Vertica, SybaseIQ e Oracle Exadata.

In-Memory vs. Columnar.

É importante definir as diferenças entre estas duas soluções. Hoje em dia, qualquer banco de dados se pode converter em um banco de dados in-memory, mas nem todos os bancos são de natureza colunar. Os bancos de dados OLTP tradicionais não são orientados a colunas, mas estão baseados em linhas normalmente. Isto permite uma maior capacidade de consistência transacional e atualizações granulares requeridas para aplicativos OLTP. O processamento analítico on-line (OLAP) tem diferentes requisitos, que requerem soluções tipicamente analíticas para possibilitar o acesso a grandes lotes, por esta razão, torna-se necessária a velocidade para o acesso massivo de dados e seus respectivos relatórios.

Os bancos de dados in-memory podem fornecer um acesso muito mais rápido aos dados, mas não podem necessariamente resolver os requisitos de OLAP. O Forrester Wave para bancos de dados in-memory numera 11 fornecedores de bancos diferentes e colocam os bancos de dados em duas categorías adicionais: Bancos de dados in-memory e redes de dados in-memory. O mercado de bases de dados OLAP atual está muito fragmentado e permanecerá assim nos próximos 5 anos, de acordo com muitos analistas.

 Os bancos de dados orientados a colunas têm alguns pontos fortes no cenário dos aplicativos OLAP mas não se está á altura dos bancos de dados orientados a linhas. Normalmente, isto vem acompanhado de certas consequências, os bancos de dados orientados a colunas não têm um desempenho ótimo em ambientes OLTP, dado que as atualizações dos registros são caras. Além disso, foram desenhados para acesso a dados em grandes quantidades e operações de resumo que cumprem com os requisitos de aplicações de análise.

Apesar de muitos bancos de dados orientadas a colunas serem também bancos de dados in-memory, é importar recordar que não são a mesma coisa. A coluna não é igual a in-memory.

Resumo

 O mercado dos bancos de dados continua crescendo e fragmentando-se. Muitos competidores de nicho estão construindo sobre plataformas como Hadoop ou Cassandra. E esta prática vai se manter em um futuro próximo. O enfoque deveria ser no problema específico que você está tentando resolver e qual tecnologia é mais adequada para satisfazer suas necessidades. A partir do momento que você definir isso, o diálogo com a grande quantidade de vendedores existentes, se tornará mais fácil.

Deixe um comentário

*