4 research outputs found

    Component replication in application servers

    Get PDF
    Three-tier middleware architecture is commonly used for hosting large-scale distributed applications. Typically the application is decomposed into three layers: front-end, middle tier and back-end. Front-end ("Web server") is responsible for handling user interactions and acts as a client of the middle tier, while back-end provides storage facilities for applications. Middle tier (' Application server') is usually the place where all computations are performed, so this layer provides middleware services for transactions, security and so forth. The benefit of this architecture is that it allows flexible configuration such as partitioning and clustering for improved performance and scalability. On this architecture, availability measures, such as replication, can be introduced in each tier in an application specific manner. Among the three tier described above, the availability of the middle tier and the back-end tier are the most important, as these tiers provide the computation and the data for the applications. This thesis investigates how replication for availability can be incorporated within the middle and back-end tiers. The replication mechanisms must guarantee exactly once execution of user request despite failures of application and database servers. The thesis develops an approach that requires enhancements to the middle tier only for supporting replication of both the tiers. The design, implementation and performance evaluation of such a middle tier based replication scheme for multi-database transactions on a widely deployed open source application server (1Boss) are presented.EThOS - Electronic Theses Online ServiceQUE Project, Department of Informatics, ITB, Bandung, IndonesiaGBUnited Kingdo

    Mesobi: memória transacional em software tolerante a faltas bizantinas

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2015.Memória Transacional em Software (STM) é um modelo utilizado para tratar acesso concorrente a dados compartilhados, onde programadores não precisam lidar explicitamente com mecanismos de controle de concorrência, como locks. O programador, apenas delineia qual parte do código necessita ser tratado como concorrente e sua execução seguirá o modelo transacional, respeitando as propriedades: atomicidade, consistência e isolação. É proposto nessa dissertação um modelo denominado Mesobi: Memória Transacional em Software Tolerante a Faltas Bizantinas onde transações somente leitura não abortam. Existem algumas abordagens na literatura que utilizam Memória Transacional em Software, das quais grande parte tolera faltas de parada mas pouco se fala sobre faltas maliciosas. Somente o trabalho de Zhang 2012 faz tolerância a faltas Bizantinas no contexto de STM; sua proposta utiliza dois clusters para alcançar tolerância a faltas Bizantinas.No modelo de Zhang, transações somente leitura podem ser abortadas, não é suportada a execução de transações interativas e não é possível executar transações de forma otimista. O Mesobi permite alcançar tolerância a faltas Bizantinas utilizando (3f+1) réplicas, sendo que, f é o número de faltas toleradas. O modelo consiste em inicialmente tentar executar as transações de forma otimista sem a necessidade de executar o protocolo Bizantino. Transações conflitantes localmente não são iniciadas de imediato com isso evita-se trabalho improdutivo. É possível e viável a execução de transações pré-declaradas e interativas no mesmo ambiente, sendo que, transações interativas têm pior desempenho devido a sua maior troca de mensagens.Abstract : Software Transactional Memory (STM) is a model to deal concurrent accesses on shared data. With STM developers do not need to cope with explicit concurrency control mechanisms like locks. Instead developers can write parallel portions of code as transactions, which are garanteed to execute atomically and in isolation regardless of eventual data races. In this dissertation we propose a model named Mesobi: Memória Transacional em Software Tolerante a Faltas Bizantinas in which read-only transactions do not abort. There are some approaches in literature that use STM, but most of them treat crash faults, but few deal with arbitrary faults. The work presented by Zhang 2012 mentions Byzantine Fault Tolerance (BFT) in STM context, but two clusters are necessary, one for consensus and another to execute transactions. Zhang's model abort read-only transactions, does not use optimistic execution neither interactive transactions processing. It achieves BFT using (3f+1) replicas where f represents the number of tolerated faults. The model executes in an optimistic fashion the transactions without the BFT protocol. Conflicting local transactions are not executed immediately thereby saving wasted work. Execution and consistency tests showed that execution of interactive and pre-declared transactions on same environment are possible and practical. Interactive transactions have worse performance than pre-declared due to need of more message exchanges

    Low-overhead distributed transaction coordination

    Get PDF
    Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2012.Cataloged from PDF version of thesis.Includes bibliographical references (p. 167-173).This thesis presents Granola, a transaction coordination infrastructure for building reliable distributed storage applications. Granola provides a strong consistency model, while significantly reducing transaction coordination overhead. Granola supports general atomic operations, enabling it to be used as a platform on which to build various storage systems, e.g., databases or object stores. We introduce specific support for independent transactions, a new type of distributed transaction, that we can serialize with no locking overhead and no aborts due to write conflicts. Granola uses a novel timestamp-based coordination mechanism to serialize distributed transactions, offering lower latency and higher throughput than previous systems that offer strong consistency. Our experiments show that Granola has low overhead, is scalable and has high throughput. We used Granola to deploy an existing single-node database application, creating a distributed database application with minimal code modifications. We run the TPC-C benchmark on this platform, and achieve 3 x the throughput of existing lock-based approaches.by James Cowling.Ph.D

    Protocolos tolerantes a faltas bizantinas para transações em bancos de dados

    Get PDF
    Tese (doutorado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia de Automação e Sistemas, Florianópolis, 2015.No âmbito de sistemas computacionais, a noção de transações constitui um dos elementos mais fundamentais para a especificação e implementação de aplicações com requisitos de confiabilidade e consistência, quanto à manipulação de dados. Ao longo dos anos, os sistemas de gerenciamento de banco de dados relacionais (SGBDR) têm sido considerados como componentes chave para o processamento de transações em sistemas computacionais; e, embora algumas alternativas aos SGBDRs tenham surgido nos últimos anos, há perspectivas de que um número significativo de sistemas computacionais permaneçam a utilizar os SGBDRs nos anos vindouros. Neste sentido, é imperioso que requisitos como confiabilidade, disponibilidade, desempenho, tolerância a faltas e consistência, sejam mantidos no SGBDR, com vista para o correto processamento de transações. Tais atributos podem ser obtidos por meio de replicação, sendo que a literatura é vasta em termos de soluções que visam a disponibilidade dos dados a despeito de faltas por parada intermitentes ou permanentes. Todavia, faltas oriundas da corrupção de dados em disco ou em memória RAM devido a efeitos físicos, ou decorrente de bugs no SGBDR, não afetam a disponibilidade dos dados, mas sim a integridade e a consistência destes. Estas faltas, que são caracterizadas como bizantinas, historicamente têm sido encontradas em SGBDRs, e elas afetam o processamento de transações comprometendo não apenas a exatidão, mas também o estado do banco de dados. A literatura dispõe de poucas soluções para lidar com faltas bizantinas em SGBDRs, onde algumas são baseadas em hipóteses difíceis de serem substanciadas na prática; ou em modelos de consistência mais relaxados, que podem causar problemas de integridade, consistência ou até mesmo corrupção de dados. Isto posto, elas não atendem plenamente todos os tipos de aplicações. Neste ensejo, esta tese versa sobre problemas relacionados ao processamento e a terminação de transações em SGBDRs e sistemas distribuídos, em ambientes com sujeição a faltas bizantinas. Para isso, esta tese apresenta duas grandes contribuições no âmbito de transações em SGBDRs. A primeira consiste num protocolo que permite o processamento e terminação de transações, a despeito de faltas bizantinas nas réplicas de bancos de dados  o primeiro da literatura a explorar a semântica de consistência mais forte de transações  , a partir de um protocolo de replicação tolerante a faltas bizantinas totalmente distribuído. A segunda investiga o problema da terminação de transações distribuídas em ambientes sujeitos a faltas bizantinas  um problema sem solução pela literatura  , que é conhecido como Validação Atômica Não-Bloqueante (NBAC) e visa assegurar uma decisão uniforme para os participantes da transação acerca da validação ou anulação das operações executadas num ambiente distribuído de banco de dados. A contribuição para este problema se baseia na investigação dos aspectos práticos necessários para resolvê-lo, onde é introduzido o conceito de Gerenciador Colaborativo de Transações em substituição ao Gerenciador de Transações, tradicionalmente empregado como agente num protocolo NBAC. A solução proposta para resolver o NBAC com faltas bizantinas baseia-se num conceito novo, que adota a tecnologia de virtualização como suporte para a especificação de uma arquitetura de sistema distribuído que permite circunscrever o problema. As soluções propostas foram comparadas de maneira analítica com soluções encontradas na literatura, bem como através de ensaios experimentais, a fim de comprovar a viabilidade das mesmas.Abstract : Within computer systems, the concept of transaction is one of the most fundamental elements for the specification and implementation of applications with reliability and consistency requirements concerning handling of data. Over the years, relational database management systems (RDBMS) have been considered key components for transaction processing in computer systems; and although some alternatives to RDBMSs have emerged in recent years, there are prospects that a significant number of computer systems will continute to use RDBMSs in coming years. In this sense, the need to provide reliability, availability, performance, fault tolerance and consistency, regarding transaction processing in RDBMS is imminent. Such attributes may be obtained through database replication. The literature is extensive in terms of solutions for data availability regardless of crash faults (e.g. intermittent or permanent). However, faults arising from the disk data corruption or RAM data corruption due to physical effects, or due to bugs in the RDBMS, do not affect the availability of data, though they affect their integrity and consistency. These faults, which are known as Byzantine, have historically been found in RDBMSs, and they affect transaction processing undermining not only the accuracy but also the database state. The literature offers few solutions to deal with Byzantine faults in RDBMSs, where some are based on difficult cases to be used in practice; or more relaxed consistency models, which can cause integrity, consistency or even data corruption problems. So, they are not addressed to all types of applications. As it is, this thesis deals with problems related to transaction processing and transaction termination on RDBMS and distributed systems, in environments subject to Byzantine fault. To this end, this thesis presents two major contributions to the transaction level in RDBMSs. The first is a protocol that allows the transaction processing and transaction, despite Byzantine faults in databases replicas  the first in literature that explores the strongest consistency semantics of transactions (e.g. serializability)  , by means of a fully distributed Byzantine fault tolerant database replication protocol. The second investigates the agreement problem related to transaction termination in distributed systems, also in environments subject to Byzantine fault  an unsolved problem in the literature. The Non Blocking Atomic Commitment (NBAC), as it known, aims to ensure a uniform decision for the transaction participants about the operations performed in a distributed database environment, that is, commit or abort them. The contribution to this problem is based on the investigation of practical and necessary conditions, to solve it. So, this thesis introduces the Collaborative Transaction Manager to replace the Transaction Manager, traditionally used as an agent on a NBAC protocol. The solution proposed to solve the NBAC with Byzantine fault is based on a new concept, adopting virtualization technology as a support for the specification of a distributed system architecture which makes the problem feasible. The proposed solutions were compared analytically with solutions found in the literature as well as through experimental tests in order to prove their feasibility
    corecore