O que é o DB2 pureScale?

Indo a extremos de escala e disponibilidade do DB2

Os fundamentos do DB2 pureScale do ponto de vista da tecnologia

Paul Zikopoulos, Program Director - DB2 Evangelism, IBM

Paul Zikopoulos photoPaul C. Zikopoulos, BA, MBA, é Program Director da equipe DB2 Evangelist na IBM. Ele é escritor e palestrante premiado com mais de 14 anos de experiência com DB2. Paul escreveu mais de 230 artigos de revista e 11 livros sobre DB2, incluindo Information on Demand: Introduction to DB2 9.5 New Features, DB2 9 Database Administration Certification Guide and Reference (6ª Edição), DB2 9: New Features, Information on Demand: Introduction to DB2 9 New Features, Off to the Races with Apache Derby, DB2 Version 8: The Official Guide, DB2: The Complete Reference, DB2 Fundamentals Certification for Dummies, DB2 for Dummies e A DBA's Guide to Databases on Linux. Paul é Certified Advanced Technical Expert em DB2 (DRDA e Clusters) e Certified Solutions Expert em DB2 (BI e DBA). No seu tempo livre, ele gosta de todo tipo de atividade esportiva, incluindo correr com seu cachorro Chachi, evitar golpes no treinamento de MMA e tentar entender o mundo de acordo com Chloë, sua filha. É possível entrar em contato com ele em paulz_ibm@msn.com.



Chris Eaton, Product Manager, DB2 Competitive Technology, IBM

Chris Eaton é technical evangelist e senior product manager do DB2, focado principalmente no planejamento e estratégia. Ele é um palestrante premiado, proferindo palestras em conferências mundiais sobre o DB2 e é autor de vários livros sobre o DB2. Eaton também tem um dos blogs mais populares sobre DB2 na Web, no endereço http://it.toolbox.com/blogs/db2luw.



05/Mar/2010

Leia este artigo em nosso formato de edição digital interativa!

Em outubro de 2009, a IBM anunciou uma nova tecnologia, dirigida principalmente para clusters escaláveis de processamento de transações on-line (OLTP), denominada IBM DB2 pureScale. O DB2 pureScale é um novo recurso que fornece serviços ativo-ativo escaláveis para o IBM DB2 executando em AIX em servidores Power Systems. É projetado para entregar os mais altos níveis de disponibilidade e escalabilidade distribuídas, empacotadas em um caminho bem pensando e funcionando que é muito mais fácil de operar que outros sistemas de bancos de dados em cluster. Neste artigo, mostraremos os fundamentos do DB2 pureScale do ponto de vista da tecnologia, mostrando como o DB2 pureScale entrega tanto escalabilidade de aplicativos quanto disponibilidade extrema de um modo transparente.

Eu vi o que você fez

Se você está familiarizado com o compartilhamento de dados do DB2 para z/OS, a arquitetura do DB2 pureScale pode parecer bastante semelhante - e é! A IBM juntou os princípios fundamentais do compartilhamento de dados do DB2 para z/OS com as mais atuais tecnologias distribuídas para entregar serviços de disponibilidade e escalabilidade sem precedentes para plataformas distribuídas. É bom observarmos que o DB2 executando em servidores System z já fornece uma disponibilidade excelente. Por exemplo, o Toronto Dominion Bank (TD Bank) teve 100% de disponibilidade de informações de clientes durante 10 anos consecutivos, incluindo dois upgrades do DB2 para z/OS durante esse período. Mesmo o CEO de nosso maior competidor afirmou, a respeito do DB2 para Z/OS: "É uma tecnologia excelente".

A Figura 1 mostra um exemplo de um ambiente DB2 pureScale. Um servidor DB2 que pertence a um cluster pureScale é denominado um membro. Cada membro pode acessar simultaneamente o mesmo banco de dados para operações de leitura e gravação. Atualmente, o número máximo de membros em um cluster pureScale é 128.

Figura 1: Em um cluster DB2 pureScale, cada membro tem acesso direto baseado em memória aos serviços centralizados de bloqueio e armazenamento em cache do servidor PowerHA pureScale

O servidor IBM PowerHA pureScale fornece serviços centralizados de gerenciamento de bloqueio e um cache global centralizado para páginas de dados (conhecido como o buffer pool do grupo), entre outros. Cada membro de um grupo de compartilhamento de dados DB2 pureScale pode interagir diretamente co o servidor PowerHA pureScale através de uma rede InfiniBand usando a User Direct Access Programming Library (uDAPL), um protocolo básico sem sistema de mensagens que fornece a cada membro conectividade ponto a ponto com os serviços centralizados de bloqueio e armazenamento em cache.


Agentes locais, alcance para todo o cluster

O escalonamento transparente de aplicativo significa que os aplicativos não necessitam estar cientes do cluster para realmente aproveitar a arquitetura escalável. Para fornecer esse escalonamento, o DB2 pureScale utiliza as tecnologias Remote Direct Memory Access (RDMA) e PowerHA pureScale pra eliminar a comunicação entre membros para usar os serviços de gerenciamento de bloqueio e armazenamento em cache global.

O RDMA possibilita que cada membro no cluster acesse diretamente a memória no servidor pureScale server, e vice versa, em microssegundos. Por exemplo, suponha que o Membro 1 da Figura 1 deseja ler uma página de dados que não está em seu buffer pool local. O DB2 designa um agente (ou encadeamento) para executar essa transação. Em seguida, o agente usa RDMA para gravar diretamente na memória do servidor PowerHA pureScale para indicar que tem interesse em uma determinada página (o que é denominado uma solicitação de leitura-e-registro). Se a página que o Membro 1 deseja ler já estiver no buffer pool global centralizado, o servidor PowerHA pureScale enviará essa página diretamente para a memória do Membro 1, evitando que o agente daquele membro execute a operação de E/S para ler a página do disco. Efetivamente, o RDMA possibilita que o agente de um membro simplesmente execute o que parece ser uma operação local de cópia de memória, quando de fato o destino é o endereço de memória de uma máquina remota.

Essas chamadas de memória remota, juntamente com recursos de buffer pool centralizado e gerenciamento de bloqueio, significam que um aplicativo não precisa conectar-se ao membro onde os dados já residem para conseguir a escalabilidade. Qualquer membro do cluster pode receber uma página de dados do buffer pool global da mesma maneira eficiente, independentemente do tamanho do cluster. A maioria das chamadas RDMA são tão rápidas que o agente DB2 que efetua a chamada não precisa sequer ceder a CPU enquanto aguarda a resposta. Por exemplo, para notificar o servidor PowerHA pureScale que uma linha será atualizada (e que, portanto, um bloqueio X é necessário), o agente de um membro executa uma solicitação Set Lock State (SLS) gravando as informações de bloqueio diretamente na memória do servidor PowerHA pureScale. Todo o caminho de ida e volta para esta operação SLS pode demorar menos que 15 microssegundos e, portanto, provavelmente o agente não precisara ceder a CPU.


O cluster sabe onde estão as páginas?

O DB2 pureScale eleva a disponibilidade a um nível totalmente novo. No caso de falha de um membro do cluster DB2 pureScale, o DB2 fornece acesso completo a todas as páginas de dados que não precisam de recuperação. Além disso, o DB2 está ciente em todos os momentos das páginas específicas que precisam de recuperação, sem executar uma única operação de E/S. Como isso acontece? Todas as vezes que um membro lê uma página para o seu buffer pool, o servidor PowerHA pureScale não apenas rastreia esse "interesse", mas também as solicitações de membros para atualizar linhas nessas páginas. Sempre que um aplicativo confirma uma transação, as páginas sujas são gravadas diretamente no servidor PowerHA pureScale. Se qualquer membro falhar, o servidor PowerHA pureScale tem uma lista das páginas que estavam sendo atualizadas por esse membro, bem como as páginas que foram atualizadas e confirmadas por ele, mas ainda não foram gravadas em disco.

Quando ocorre uma falha em um cluster de discos compartilhados, é essencial que nenhum outro nó no cluster leia ou atualize no disco qualquer página que possa ainda não ter sido recuperada. Como o servidor PowerHA pureScale sabe quais páginas estavam sendo atualizadas pelo nó que apresentou a falha e já tem as páginas confirmadas sujas desse membro em seu buffer pool centralizado, o DB2 pureScale não precisa impedir que outros membros continuem a processar as transações enquanto bloqueia as páginas que precisam ser recuperadas.

Além disso, a recuperação no DB2 pureScale acontece muito rapidamente. Cada membro tem processos inativos, mas que estão prontos para o caso de uma falha. Se um membro falhar, um desses processos de recuperação será ativado. Como esses processos já existem, não é necessário que o sistema operacional gaste um tempo valioso para criar um processo, alocar memória para ele e assim por diante. Esse processo de recuperação começa instantaneamente a pré-busca de páginas sujas do buffer pool centralizado para o seu buffer pool local. Na maioria dos casos, essa recuperação não precisará de operações de E/S adicionais porque as páginas que precisam de recuperação provavelmente já estão no buffer pool centralizado e podem ser transferida em microssegundos usando RDMA. Enquanto isso, todos os outros aplicativos de todos os outros membros continuam a processar transações em qualquer página que não precise de recuperação e a ler páginas do disco, porque o servidor PowerHA pureScale sabe quais páginas em disco estão limpas e quais precisam de recuperação.

Para cargas de trabalho transacionais típicas, o intervalo entre a falha de um membro até que as páginas sejam recuperadas e estejam disponíveis para outras transações é tipicamente 20 segundos ou menos. Observe que este tempo de recuperação inclui os tempos de detecção de falha, que muitos fornecedores excluem ao referir-se aos tempos de recuperação.

Finalmente, é digno de nota que todos os componentes do cluster - incluindo o próprio servidor PowerHA pureScale - são redundantes. O DB2 pureScale possibilita a duplexação da capacidade do servidor PowerHA pureScale, de modo que as informações de bloqueio e de cache compartilhado sejam armazenadas em dois locais separados, para o caso de falha do servidor primário.


Resumo

Neste artigo, apenas arranhamos a superfície do pureScale. Uma boa quantidade de engenharia acontece nos bastidores, portanto, verifique os links na barra lateral de Recursos. O resultado é que, para aplicativos que precisam dos mais altos níveis de disponibilidade em uma configuração escalável ativo-ativo, o DB2 pureScale entrega capacidades de última geração para aprimorar a sua continuidade de negócios. E, com escalabilidade de aplicativos transparente, não é mais necessário construir aplicativos cientes de cluster para escalar para um maior número de servidores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=472256
ArticleTitle=O que é o DB2 pureScale?
publish-date=03052010