43 research outputs found
NewSQL Monitoring System
NewSQL is the new breed of databases that combines the best of RDBMS and NoSQL databases. They provide full ACID compliance like RDBMS and are highly scalable and fault-tolerant similar to NoSQL databases. Thus, NewSQL databases are ideal candidates for supporting big data and applications, particularly financial transaction and fraud detection systems, requiring ACID guarantees. Since NewSQL databases can scale to thousands of nodes, it becomes tedious to monitor the entire cluster and each node. Hence, we are building a NewSQL monitoring system using open-source tools. We will consider VoltDB, a popular open-source NewSQL database, as the database to be monitored. Although a monitoring dashboard exists for VoltDB, it only provides the bird’s eye view of the cluster and the nodes and focuses on CPU usages and security aspects. Therefore, several components of a monitoring system have to be considered and have to be open source to be readily available and congruent with the scalability and fault tolerance of VoltDB. Databases like Cassandra (NoSQL), YugabyteDB (NewSQL), and InfluxDB (Time Series) will be used based on their read/write performances and scalability, fault tolerance to store the monitoring data. We will also consider the role of Amazon Kinesis, a popular queueing, messaging, and streaming engine, since it provides fault-tolerant streaming and batching data pipelines between application and system. This project is implemented using Python and Java
Incremental Consistency Guarantees for Replicated Objects
Programming with replicated objects is difficult. Developers must face the
fundamental trade-off between consistency and performance head on, while
struggling with the complexity of distributed storage stacks. We introduce
Correctables, a novel abstraction that hides most of this complexity, allowing
developers to focus on the task of balancing consistency and performance. To
aid developers with this task, Correctables provide incremental consistency
guarantees, which capture successive refinements on the result of an ongoing
operation on a replicated object. In short, applications receive both a
preliminary---fast, possibly inconsistent---result, as well as a
final---consistent---result that arrives later.
We show how to leverage incremental consistency guarantees by speculating on
preliminary values, trading throughput and bandwidth for improved latency. We
experiment with two popular storage systems (Cassandra and ZooKeeper) and three
applications: a Twissandra-based microblogging service, an ad serving system,
and a ticket selling system. Our evaluation on the Amazon EC2 platform with
YCSB workloads A, B, and C shows that we can reduce the latency of strongly
consistent operations by up to 40% (from 100ms to 60ms) at little cost (10%
bandwidth increase, 6% throughput drop) in the ad system. Even if the
preliminary result is frequently inconsistent (25% of accesses), incremental
consistency incurs a bandwidth overhead of only 27%.Comment: 16 total pages, 12 figures. OSDI'16 (to appear
Reducing the Tail Latency of a Distributed NoSQL Database
The request latency is an important performance metric of a distributed database, such as the popular Apache Cassandra, because of its direct impact on the user experience. Specifically, the latency of a read or write request is defined as the total time interval from the instant when a user makes the request to the instant when the user receives the request, and it involves not only the actual read or write time at a specific database node, but also various types of latency introduced by the distributed mechanism of the database. Most of the current work focuses only on reducing the average request latency, but not on reducing the tail request latency that has a significant and severe impact on some of database users. In this thesis, we investigate the important factors on the tail request latency of Apache Cassandra, then propose two novel methods to greatly reduce the tail request latency. First, we find that the background activities may considerably increase the local latency of a replica and then the overall request latency of the whole database, and thus we propose a novel method to select the optimal replica by considering the impact of background activities. Second, we find that the asynchronous read and write architecture handles the local and remote requests in the same way, which is simple to implement but at a cost of possibly longer latency, and thus we propose a synchronous method to handle local and remote request differently to greatly reduce the latency. Finally, our experiments on Amazon EC2 public cloud platform demonstrate that our proposed methods can greatly reduce the tail latency of read and write requests of Apache Cassandra.
Adviser: Dr. Lisong X
Building Scalable and Consistent Distributed Databases Under Conflicts
Distributed databases, which rely on redundant and distributed storage across multiple
servers, are able to provide mission-critical data management services at large scale. Parallelism
is the key to the scalability of distributed databases, but concurrent queries having
conflicts may block or abort each other when strong consistency is enforced using rigorous
concurrency control protocols. This thesis studies the techniques of building scalable distributed
databases under strong consistency guarantees even in the face of high contention
workloads. The techniques proposed in this thesis share a common idea, conflict mitigation,
meaning mitigating conflicts by rescheduling operations in the concurrency control in the first
place instead of resolving contending conflicts. Using this idea, concurrent queries
under conflicts can be executed with high parallelism. This thesis explores this idea on
both databases that support serializable ACID (atomic, consistency, isolation, durability)
transactions, and eventually consistent NoSQL systems.
First, the epoch-based concurrency control (ECC) technique is proposed in ALOHA-KV,
a new distributed key-value store that supports high performance read-only and write-only
distributed transactions. ECC demonstrates that concurrent serializable distributed
transactions can be processed in parallel with low overhead even under high contention.
With ECC, a new atomic commitment protocol is developed that only requires amortized
one round trip for a distributed write-only transaction to commit in the absence of failures.
Second, a novel paradigm of serializable distributed transaction processing is developed
to extend ECC with read-write transaction processing support. This paradigm uses a
newly proposed database operator, functors, which is a placeholder for the value of a key,
which can be computed asynchronously in parallel with other functor computations of the
same or other transactions. Functor-enabled ECC achieves more fine-grained concurrency
control than transaction level concurrency control, and it never aborts transactions due
to read-write or write-write conflicts but allows transactions to fail due to logic errors or
constraint violations while guaranteeing serializability.
Lastly, this thesis explores consistency in the eventually consistent system, Apache
Cassandra, for an investigation of the consistency violation, referred to as "consistency
spikes". This investigation shows that the consistency spikes exhibited by Cassandra are
strongly correlated with garbage collection, particularly the "stop-the-world" phase in the
Java virtual machine. Thus, delaying read operations arti cially at servers immediately
after a garbage collection pause can virtually eliminate these spikes.
All together, these techniques allow distributed databases to provide scalable and
consistent storage service
Harmony: Towards automated self-adaptive consistency in cloud storage
In just a few years cloud computing has become a very popular paradigm and a business success story, with storage being one of the key features. To achieve high data availability, cloud storage services rely on replication. In this context, one major challenge is data consistency. In contrast to traditional approaches that are mostly based on strong consistency, many cloud storage services opt for weaker consistency models in order to achieve better availability and performance. This comes at the cost of a high probability of stale data being read, as the replicas involved in the reads may not always have the most recent write. In this paper, we propose a novel approach, named Harmony, which adaptively tunes the consistency level at run-time according to the application requirements. The key idea behind Harmony is an intelligent estimation model of stale reads, allowing to elastically scale up or down the number of replicas involved in read operations to maintain a low (possibly zero) tolerable fraction of stale reads. As a result, Harmony can meet the desired consistency of the applications while achieving good performance. We have implemented Harmony and performed extensive evaluations with the Cassandra cloud storage on Grid?5000 testbed and on Amazon EC2. The results show that Harmony can achieve good performance without exceeding the tolerated number of stale reads. For instance, in contrast to the static eventual consistency used in Cassandra, Harmony reduces the stale data being read by almost 80% while adding only minimal latency. Meanwhile, it improves the throughput of the system by 45% while maintaining the desired consistency requirements of the applications when compared to the strong consistency model in Cassandra
Methods to Improve Applicability and Efficiency of Distributed Data-Centric Compute Frameworks
The success of modern applications depends on the insights they collect from their data repositories. Data repositories for such applications currently exceed exabytes and are rapidly increasing in size, as they collect data from varied sources - web applications, mobile phones, sensors and other connected devices. Distributed storage and data-centric compute frameworks have been invented to store and analyze these large datasets. This dissertation focuses on extending the applicability and improving the efficiency of distributed data-centric compute frameworks
Antares :a scalable, efficient platform for stream, historic, combined and geospatial querying
PhD ThesisTraditional methods for storing and analysing data are proving inadequate for processing
\Big Data". This is due to its volume, and the rate at which it is being generated.
The limitations of current technologies are further exacerbated by the increased demand
for applications which allow users to access and interact with data as soon as
it is generated. Near real-time analysis such as this can be partially supported by
stream processing systems, however they currently lack the ability to store data for
e cient historic processing: many applications require a combination of near real-time
and historic data analysis. This thesis investigates this problem, and describes and
evaluates a novel approach for addressing it. Antares is a layered framework that has
been designed to exploit and extend the scalability of NoSQL databases to support low
latency querying and high throughput rates for both stream and historic data analysis
simultaneously.
Antares began as a company funded project, sponsored by Red Hat the motivation was
to identify a new technology which could provide scalable analysis of data, both stream
and historic. The motivation for this was to explore new methods for supporting scale
and e ciency, for example a layered approach. A layered approach would exploit the
scale of historic stores and the speed of in-memory processing. New technologies were
investigates to identify current mechanisms and suggest a means of improvement.
Antares supports a layered approach for analysis, the motivation for the platform was
to provide scalable, low latency querying of Twitter data for other researchers to help
automate analysis. Antares needed to provide temporal and spatial analysis of Twitter
data using the timestamp and geotag. The approach used Twitter as a use case and
derived requirements from social scientists for a broader research project called Tweet
My Street.
Many data streaming applications have a location-based aspect, using geospatial data
to enhance the functionality they provide. However geospatial data is inherently di -
cult to process at scale due to its multidimensional nature. To address these di culties,
- i -
this thesis proposes Antares as a new solution to providing scalable and e cient mechanisms
for querying geospatial data. The thesis describes the design of Antares and
evaluates its performance on a range of scenarios taken from a real social media analytics
application. The results show signi cant performance gains when compared to
existing approaches, for particular types of analysis.
The approach is evaluated by executing experiments across Antares and similar systems
to show the improved results. Antares demonstrates a layered approach can be
used to improve performance for inserts and searches as well as increasing the ingestion
rate of the system
The scalability of reliable computation in Erlang
With the advent of many-core architectures, scalability is a key property for programming
languages. Actor-based frameworks like Erlang are fundamentally scalable, but in practice
they have some scalability limitations.
The RELEASE project aims to scale the Erlang's radical concurrency-oriented programming
paradigm to build reliable general-purpose software, such as server-based systems, on emergent commodity architectures with 10,000 cores. The RELEASE consortium works to scale Erlang at the virtual machine, language level, infrastructure levels, and to supply profiling and refactoring tools.
This research contributes to the RELEASE project at the language level. Firstly, we study
the provision of scalable persistent storage options for Erlang. We articulate the requirements for scalable and available persistent storage, and evaluate four popular Erlang DBMSs against these requirements. We investigate the scalability limits of the Riak NoSQL DBMS using Basho Bench up to 100 nodes on the Kalkyl cluster and establish for the first time scientifically the scalability limit of Riak as 60 nodes, thereby confirming developer folklore.
We design and implement DE-Bench, a scalable fault-tolerant peer-to-peer benchmarking
tool that measures the throughput and latency of distributed Erlang commands on a cluster of Erlang nodes. We employ DE-Bench to investigate the scalability limits of distributed Erlang on up to 150 nodes and 1200 cores. Our results demonstrate that the frequency of global commands limits the scalability of distributed Erlang. We also show that distributed Erlang scales linearly up to 150 nodes and 1200 cores with relatively heavy data and computation loads when no global commands are used.
As part of the RELEASE project, the Glasgow University team has developed Scalable Distributed Erlang (SD Erlang) to address the scalability limits of distributed Erlang. We evaluate SD Erlang by designing and implementing the first ever demonstrators for SD Erlang, i.e. DE-Bench, Orbit and Ant Colony Optimisation(ACO). We employ DE-Bench to evaluate the performance and scalability of group operations in SD-Erlang up to 100 nodes. Our results show that the alternatives SD-Erlang offers for global commands (i.e. group commands) scale linearly up to 100 nodes. We also develop and evaluate an SD-Erlang implementation of Orbit, a symbolic computing kernel and a generalization of a transitive closure computation. Our evaluation results show that SD Erlang Orbit outperforms the distributed Erlang Orbit on 160 nodes and 1280 cores. Moreover, we develop a reliable distributed version of ACO and show that the reliability of ACO limits its scalability in traditional distributed Erlang. We use SD-Erlang to improve the scalability of the reliable ACO by eliminating global commands and avoiding full mesh connectivity between nodes. We show that SD Erlang reduces the network traffic between nodes in an Erlang cluster effectively