Abstract

Fault-tolerant systems are an important discussion subject in our world of interconnected devices. One of the major failure points of every distributed infrastructure is the database. A data migration or an overload of one of the servers could lead to a cascade of failures and service downtime for the users. NoSQL databases sacrifice some of the consistency provided by traditional SQL databases while privileging availability and partition tolerance. This paper presents the design and implementation of a distributed in-memory database that is based on the actor model. The benefits of the actor model and development using functional languages are detailed, and suitable performance metrics are presented. A case study is also performed, showcasing the system’s capacity to quickly recover from the loss of one of its machines and maintain functionality.

Highlights

  • As more and more companies take part in the process of digital transformation, so too must their services be scaled in order to adapt to the growing challenges of the current IT landscape

  • Traditional database systems are often based on the relational data model developed in the 1980’s [1] but they are often difficult to scale

  • The system implemented in this work strives to achieve availability and partition tolerance, while trying to attain eventual consistency via replication, maintaining appearances through the use of

Read more

Summary

Introduction

As more and more companies take part in the process of digital transformation, so too must their services be scaled in order to adapt to the growing challenges of the current IT landscape. Traditional database systems are often based on the relational data model developed in the 1980’s [1] but they are often difficult to scale. It is desirable to try and achieve all 3 qualities: consistency, availability, partition tolerance. The system implemented in this work strives to achieve availability and partition tolerance, while trying to attain eventual consistency via replication, maintaining appearances through the use of. This paper studies the implementation details of a distributed in-memory database leveraging a programming model known as actor systems. These systems are built to be resilient and flexible, being heavily used in the telecommunications industry and in the design of fault-tolerant systems [3]. A comparison is drawn and presented between the developed system and alternatives such as Redis [4], showing that performance is not lost in detriment to fault-tolerance

Actor models and modern implementations
NoSQL databases
In-memory databases
Architecture and implementation
Data recovery case study
Results
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call