Quais são os principais problemas de pesquisa em transações distribuídas?

10

Histórico: O processamento de transações tem sido um tópico de pesquisa tradicional na teoria de bancos de dados. Atualmente, as transações distribuídas são popularizadas pelos sistemas de armazenamento distribuído em larga escala, que geralmente envolvem partição de dados (também chamada de sharding) e replicação de dados .

Quais são os principais problemas de pesquisa em transações distribuídas?

Existem teorias e soluções conhecidas que precisam de aprimoramento (teórico)?

Todas as referências são apreciadas.

hengxin
fonte

Respostas:

9

Existem muitas áreas de pesquisa, tanto na teoria quanto na prática de bancos de dados distribuídos.

Um dos principais desafios práticos é o da implementação de mecanismos eficientes de controle de simultaneidade para bancos de dados distribuídos e replicados geograficamente. Para executar transações com eficiência, esses mecanismos podem fornecer garantias mais fracas que a capacidade de serialis, o que exige que as transações pareçam ser executadas seqüencialmente. Uma alternativa à serialidade é a de se estabelecer para o isolamento de instantâneo [1], mas foi provado que essa escala não é adequada para sistemas distribuídos e georeplicados. No estado da arte atual, duas variantes diferentes de Isolamento de instantâneo (SI) foram definidas para lidar com o controle de simultaneidade em sistemas replicados geograficamente: Isolamento de instantâneo paralelo (PSI) [2] e Isolamento de instantâneo não monotônico (NMSI) [ 3,4] Quanto ao que diz respeito aos bancos de dados distribuídos (ou seja, onde os dados são compartilhados entre sites diferentes),

Tendo noções diferentes de níveis de isolamento que fornecem garantias mais fracas do que a serialização, outra questão importante é a de escrever programas de uma maneira que as execuções ainda pareçam ser serializáveis. Um critério sólido para o isolamento de instantâneo foi desenvolvido em [1]. Algumas pessoas do meu grupo estão atualmente trabalhando na elaboração de um critério razoável para o PSI.

Outra questão relevante, tanto do ponto de vista teórico quanto prático, é a do corte de transações. Basicamente, o chopping é uma técnica de análise estática na qual as transações de granulação grossa são divididas em transações menores e de granulação fina. Para serialização, esta questão foi abordada em [6], e a teoria resultante foi aplicada para fornecer uma implementação prática em [7].

Do ponto de vista dos fundamentos teóricos dos bancos de dados distribuídos, houve alguma proposta para usar técnicas da comunidade de modelos de memória fraca [8] para definir formalmente o comportamento das transações. Em [9], os autores dão uma noção formal de comportamento para transações; a mesma abordagem foi usada em [10] para especificar o comportamento dos tipos de dados replicados.

Recentemente, eu e alguns colegas meus (Alexey Gotsman e Hongseok Yang) construímos, a partir das técnicas desenvolvidas em [8,9,10], uma estrutura teórica para especificar o comportamento observável dos níveis de consistência para bancos de dados replicados geograficamente. Empregamos a estrutura com sucesso para fornecer uma axiomatização de SI, PSI e NMSI, cada uma das quais provamos estar corretas com relação a uma implementação simples. Também exploramos a teoria resultante para elaborar um critério de corte para PSI. Esperamos que esses resultados sejam publicados no futuro próximo.

Por favor, não hesite em me escrever se você tiver outras perguntas. Espero que isto ajude,

Andrea Cerone.

Referências:

[1] Fekete et al., Tornando o isolamento de instantâneo serializável (2005)

[2] Sovran et al., Armazenamento transacional para sistemas replicados geograficamente (2011)

[3] Arkedani et al, Isolamento de instantâneo não monotônico: consistência escalável e forte para sistemas transacionais com replicação geográfica (2013)

[4] Arkedani et al., Sobre a escalabilidade do isolamento de instantâneos (2013)

[5] Binnig et al., Isolamento distribuído de instantâneos: transações globais pagam globalmente, transações locais pagam localmente

[6] Shasha et al., Transaction chopping: algoritmos e estudos de desempenho (1995)

[7] Zhang et al., Cadeias de transação: alcançando serialização com baixa latência em sistemas de armazenamento distribuído geograficamente (2013)

[8] Alglave, uma hierarquia formal de modelos de memória fraca (2012)

[9] Buckhardt et al., Entendendo a consistência eventual (2013)

[10] Buckhardt et al., Tipos de dados replicados: especificação, verificação, otimização (2014).

Andrea Cerone
fonte
Obrigado pela sua resposta abrangente. Para o SI, existem protocolos distribuídos e sem bloqueio em configurações replicadas na literatura? Ou essa tentativa não tem sentido porque o SI não escala bem? Para a PSI, li um artigo (Tim Kraska @ Eurosys'13) que mencionava sua implementação em trabalhos futuros. O Generalized Paxos é adequado para isso? Quais são os possíveis prós / contras / desafios em comparação com o original em Sovran et al [2]? Obrigado novamente.
evergrow
2
Na verdade, o SI não se adapta bem aos sistemas replicados geograficamente. Em [4] acima, os autores provam que existem propriedades, como a Replicação Parcial Genuína, que não podem ser obtidas por DBMSs replicados geograficamente em execução no nível de consistência do SI. Em [5], os autores mostram exemplos de execuções que se comportam de acordo com o SI localmente (em fragmentos únicos), mas não globalmente, e propõem uma variante do SI, chamada DSI. No que diz respeito ao MDCC, não conheço este documento e devo admitir que não conheço os detalhes de implementação dos Paxos generalizados. Mas terei prazer em dar uma olhada e responder o mais rápido possível.
Andrea Cerone