Recently, researchers have shown an increased interest in concurrency control using distributed Software Transactional Memory (STM). However, there has been little discussion about certain types of fault tolerance, such as Byzantine Fault Tolerance (BFT), for kind of systems. The focus of this paper is on tolerating byzantine faults on optimistic processing of interactive and declared transactions using STM. The result is an algorithm named Mesobi. The processing of a transaction runs with an optimistic approach, benefiting from the high probability of messages being delivered in order when using Reliable Multicast on a local network (LAN). The protocol performs better when messages are delivered ordered. In case of a malicious replica or out-of-order messages, the Byzantine protocol is initiated.
I. INTRODUÇÃOOs sistemas de Memória Compartilhada Distribuída (DSM -Distributed Shared Memory) abstraem os mecanismos de comunicação remota do desenvolvedor da aplicação [1]. As DSM podem ser descritas como um espaço de endereçamento virtual queé compartilhado por um conjunto de processadores [2]. Nesses sistemas, os processadores acessam cada endereço de memória como se fosse local. As DSM por sua vez, permitem o compartilhamento coerente de dados através de acesso uniformè as escritas e leituras (sincronização baseada em travaslocks). Como uma alternativa para a sincronização baseada em travas, surgiram as Memórias Transacionais em Software (STM -Software Transactional Memory). As STM permitem acesso uniformeàs escritas e leituras através de transações. As transações em STM são semelhantes as transações em bancos de dados, porém, sem a propriedade durabilidade.Pesquisadores têm mostrado um aumento de interesse no controle de concorrência utilizando STM, como pode ser visto no trabalhos D 2 ST M [3], RAM-DUR [4], SPEC-ULA [5], OSARE [6], SCert [7], AGGRO [8], STR [9], Granola [10] e Zhang [11]. Ao utilizar STM, os programadores não precisam lidar com mecanismos explícitos de controle de concorrência (como monitores, locks ou semáforos). Ao invés disso, apenas precisam delinear quais objetos necessitam ser tratados como concorrentes, através do uso de transações. Com isso,é possível focar mais na lógica da aplicação do que nos mecanismos explícitos de controle de concorrência, queé feito pela STM. A maioria dos trabalhos citados acima, tratam apenas tolerância a faltas de parada (crash). Entre eles, AGGRO, SPECULA, OSARE e STR utilizam a alta probabilidade das mensagens serem entregues em ordem pela rede [12], [13], mas necessitam que a ordem final de entrega de mensagens seja definida para concluir sua execução. Por sua vez, somente o trabalho de [11] menciona tolerância a faltas Bizantinas no contexto de STM. O modelo proposto por Zhang não utiliza a alta probabilidade das mensagens serem entregues em ordem pela rede, e aborta transações somente leitura. Este trabalho apresenta o Mesobi, uma arquitetura de STM tolerante a faltas Bizantinas que executa, em simultâneo, tanto transações interativas (ou online) quanto tra...