• Aucun résultat trouvé

8. El camino de las propuestas

8.2. Unas propuestas de síntesis

Embora a replicação de dados seja uma tecnologia de grande maturidade, em se tratando de soluções baseadas em replicação para o processamento de transações em ambientes sujeitos a faltas bizantinas, ela ainda pode ser considerada como um problema desafiador. Ape- sar da literatura dispor de algumas soluções que visam a resolução do problema, os trabalhos encontrados apresentam algumas limitações e são focados em problemas e ambientes mais específicos, de modo que o problema não é coberto em sua plenitude.

Por exemplo, o HRDB (VANDIVER et al., 2007) é uma solução

que depende de um elemento centralizado e que não pode falhar, para conduzir um protocolo de replicação de bancos de dados tolerantes a faltas bizantinas. Dependendo do caso, é difícil justificar o pressuposto de se ter um elemento confiável num ambiente sujeito a faltas bizanti- nas. Por outro lado, o Byzantium (GARCIA; RODRIGUES; PREGUIÇA,

2011) é um middleware para lidar com a replicação de bancos de dados BFT, em que o protocolo opera de maneira distribuída, sem depender de um elemento confiável centralizado. No entanto, o Byzantium é es- pecificado considerando apenas o processamento de transações segundo a semântica de consistência baseada no snapshot isolation (BERENSON

et al., 1995). Embora a consistência provida pelo snapshot isolation seja

bastante atrativa e adotada por diversos SGBDs comerciais (ORACLE,

2014b; FIREBIRD, 2014; MICROSOFT, 2014), em algumas circunstân-

cias ela permite a corrupção de dados por meio da intercalação de transações, que individualmente preservam a consistência (NORMANN;

OSTBY, 2010).

Um aspecto que corrobora para tal afirmação decorre do fato de que alguns trabalhos têm estudado alternativas para se obter a seria- lização completa sobre a semântica do snapshot isolation (FEKETE et al., 2005; CAHILL; RÖHM; FEKETE, 2008). Alguns destes demonstra-

ram que isto só é possível se forem realizadas modificações em nível de aplicação (FEKETE et al., 2005; CAHILL; RÖHM; FEKETE, 2008) – o

que vai contra um dos princípios básicos para o uso de bancos de da- dos por parte das aplicações, isto é, o de facilitar o desenvolvimento de aplicações de tal forma que os desenvolvedores não precisem se pre- ocupar com problemas de integridade de banco de dados decorrente da execução concorrente de transações. Cabe salientar que alguns fa- bricantes de SGBDs comerciais, por meio dos manuais de utilização do produto, advertem os desenvolvedores quanto à possíveis problemas de consistência, caso alguns cuidados não sejam adotados no desen-

volvimento das aplicações. Dentre as soluções apontadas também se encontra o BFT-DUR (PEDONE; SCHIPER; ARMENDÁRIZ-IÑIGO, 2011),

que é especificado apenas para o processamento de transações sobre da- dos contidos em sistemas de armazenamento chave-valor, e portanto, não está alinhado aos objetivos desta tese.

Neste ensejo, o protocolo a ser apresentado nesta seção visa pro- ver uma nova solução para o suporte ao processamento de transações em bancos de dados relacionais tolerantes a faltas bizantinas, a partir da estratégia de replicação baseada em certificação (certification-based database replication) (WIESMANN et al., 2000), nos mesmos moldes da

RMEDB (PEDONE; GUERRAOUI; SCHIPER, 2003) – que tolera apenas

faltas por parada. A estratégia escolhida se baseia na abordagem oti- mista/especulativa quanto ao processamento da transação – similar ao modelo estabelecido por Kung e Robinson (1981) –, e na abordagem de propagação deferred update (BERNSTEIN; HADZILACOS; GOODMAN,

1987). No caso, pode-se dizer que o protocolo consiste em uma extensão da abordagem clássica de replicação de bancos de dados baseada em certificação para lidar com faltas bizantinas, ao mesmo tempo que pode ser vista como uma RMEDB tolerante a faltas bizantinas. A escolha destas abordagens/estratégias se justificam por diversas razões, den- tre as quais a principal é o desempenho bastante satisfatório verificado em ambientes com faltas por parada (PEDONE; GUERRAOUI; SCHIPER,

2003;CORREIA JR. et al., 2005).

O primeiro e principal objetivo do protocolo é superar algumas das limitações verificadas nos trabalhos encontrados na literatura, que tratam de replicação de bancos de dados para tolerar faltas bizanti- nas. Neste sentido, se tem como perspectivas preservar as propriedades básicas de transações – ACID (Atomicidade, Consistência, Isolamento, Durabilidade) e o critério de consistência baseado em serialização, a fim de que o sistema se mantenha correto e consistente, mesmo que até f ≤ ⌈n−1

3 ⌉ réplicas se desviem arbitrariamente de suas especifica- ções. Também se busca obter uma solução escalável e com desempe- nho aceitável através do processamento otimista de transações (KUNG;

ROBINSON, 1981) sobre um banco de dados replicado, a partir da abor-

dagem baseada em certificação (WIESMANN et al., 2000). Para tanto,

durante o processamento/execução da transação a idéia consiste em permitir que o cliente interaja apenas com uma réplica, denominada de primária/líder, de modo que a propagação das operações que compõem a transação para as demais réplicas ocorra apenas na terminação da transação, segundo a estratégia do deferred update (BERNSTEIN; HAD-

Um aspecto que é digno de nota e esclarecimento, é que o propó- sito da solução apresentada nesta parte da tese, e portanto, do protocolo objeto desta seção, é evitar que faltas bizantinas ocorridas no contexto de transações executadas em bancos de dados relacionais violem a se- mântica de consistência serializável do banco de dados. Note que a solução não impede a execução/ocorrência de ações oriundas de fal- tas bizantinas, mas evita que seus efeitos sejam refletidos no estado do banco de dados. Isso posto, e a considerar os aspectos explanados nos parágrafos anteriores, acredita-se que a solução proposta deve superar algumas das limitações verificadas para os demais protocolos.