97 research outputs found
Convergent types for shared memory
Dissertação de mestrado em Computer ScienceIt is well-known that consistency in shared memory concurrent programming comes with
the price of degrading performance and scalability. Some of the existing solutions to this
problem end up with high-level complexity and are not programmer friendly.
We present a simple and well-defined approach to obtain relevant results for shared memory
environments through relaxing synchronization. For that, we will look into Mergeable
Data Types, data structures analogous to Conflict-Free Replicated Data Types but designed to
perform in shared memory.
CRDTs were the first formal approach engaging a solid theoretical study about eventual
consistency on distributed systems, answering the CAP Theorem problem and providing
high-availability. With CRDTs, updates are unsynchronized, and replicas eventually converge
to a correct common state. However, CRDTs are not designed to perform in shared
memory. In large-scale distributed systems the merge cost is negligible when compared to
network mediated synchronization. Therefore, we have migrated the concept by developing
the already existent Mergeable Data Types through formally defining a programming
model that we named Global-Local View. Furthermore, we have created a portfolio of MDTs
and demonstrated that in the appropriated scenarios we can largely benefit from the model.É bem sabido que para garantir coerência em programas concorrentes num ambiente de
memória partilhada sacrifica-se performance e escalabilidade. Alguns dos métodos existentes
para garantirem resultados significativos introduzem uma elevada complexidade e
não são práticos.
O nosso objetivo é o de garantir uma abordagem simples e bem definida de alcançar
resultados notáveis em ambientes de memória partilhada, quando comparados com os
métodos existentes, relaxando a coerência. Para tal, vamos analisar o conceito de Mergeable
Data Type, estruturas análogas aos Conflict-Free Replicated Data Types mas concebidas para
memória partilhada.
CRDTs foram a primeira abordagem a desenvolver um estudo formal sobre eventual consistency,
respondendo ao problema descrito no CAP Theorem e garantindo elevada disponibilidade.
Com CRDTs os updates não são sÃncronos e as réplicas convergem eventualmente
para um estado correto e comum. No entanto, não foram concebidos para atuar
em memória partilhada. Em sistemas distribuÃdos de larga escala o custo da operação
de merge é negligenciável quando comparado com a sincronização global. Portanto, migramos
o conceito desenvolvendo os já existentes Mergeable Data Type através da criação
de uma formalização de um modelo de programação ao qual chamamos de Global-Local
View. Além do mais, criamos um portfolio de MDTs e demonstramos que nos cenários
apropriados podemos beneficiar largamente do modelo
06121 Abstracts Collection -- Atomicity: A Unifying Concept in Computer Science
From 19.03.06 to 24.03.06, the Dagstuhl Seminar 06121 ``Atomicity: A Unifying Concept in Computer Science\u27\u27 was held in the International Conference and Research Center (IBFI), Schloss Dagstuhl.
During the seminar, several participants presented their current
research, and ongoing work and open problems were discussed. Abstracts of
the presentations given during the seminar as well as abstracts of
seminar results and ideas are put together in this paper. The first section
describes the seminar topics and goals in general.
Links to extended abstracts or full papers are provided, if available
Recommended from our members
Kafka, Samza and the Unix Philosophy of Distributed Data
Apache Kafka is a scalable message broker, and Apache Samza is a stream processing framework built upon Kafka. They are widely used as infrastructure for implementing personalized online services and real-time predictive analytics. Besides providing high throughput and low latency, Kafka and Samza are designed with operational robustness and long-term maintenance of applications in mind. In this paper we explain the reasoning behind the design of Kafka and Samza, which allow complex applications to be built by composing a small number of simple primitives – replicated logs and stream operators. We draw parallels between the design of Kafka and Samza, batch processing pipelines, database architecture, and the design philosophy of Unix
QuORAM: A Quorum-Replicated Fault Tolerant ORAM Datastore
Privacy and security challenges due to the outsourcing of data storage and processing to third-party cloud providers are well known. With regard to data privacy, Oblivious RAM (ORAM) schemes provide strong privacy guarantees by not only hiding the contents of the data (by encryption) but also obfuscating the access patterns of the outsourced data. But most existing ORAM datastores are not fault tolerant in that if the external storage server (which stores encrypted data) or the trusted proxy (which stores the encryption key and other meta- data) crashes, an application loses all of its data. To achieve fault-tolerance, we propose QuORAM, the first ORAM datastore to replicate data with a quorum-based replication protocol. QuORAM’s contributions are three-fold: (i) it obfuscates access patterns to provide obliviousness guarantees, (ii) it replicates data using a novel lock-free and decentralized replication protocol to achieve fault-tolerance, and (iii) it guarantees linearizable semantics. Experimentally evaluating QuORAM highlights counter-intuitive results: QuORAM in- curs negligible cost to achieve obliviousness when compared to an insecure fault-tolerant replicated system; QuORAM’s peak throughput is 2.4x of its non-replicated baseline; and QuORAM performs 33.2x better in terms of throughput than an ORAM datastore that relies on CockroachDB, an open- source geo-replicated database, for fault tolerance
- …