Hardening Cassandra against Byzantine failures

Roy Friedman, Roni Licher

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Cassandra is one of the most widely used distributed data stores. In this work, we analyze Cassandra's vulnerabilities when facing Byzantine failures and propose protocols for hardening Cassandra against them. We examine several alternative design choices and compare between them both qualitatively and empirically by using the Yahoo! Cloud Serving Benchmark (YCSB) performance benchmark. Some of our proposals include novel combinations of quorum access protocols with MAC signatures arrays and elliptic curve public key cryptography so that in the normal data path, there are no public key verifications and only a single relatively cheap elliptic curve signature made by the client. Yet, these enable data recovery and authentication despite Byzantine failures and across membership configuration changes. In the experiments, we demonstrate that our best design alternative obtains roughly half the performance of plain (non-Byzantine) Cassandra.

Original languageEnglish
Title of host publication21st International Conference on Principles of Distributed Systems, OPODIS 2017
EditorsJames Aspnes, Joao Leitao, Alysson Bessani, Pascal Felber
ISBN (Electronic)9783959770613
DOIs
StatePublished - 1 Mar 2018
Event21st International Conference on Principles of Distributed Systems, OPODIS 2017 - Lisboa, Portugal
Duration: 18 Dec 201720 Dec 2017

Publication series

NameLeibniz International Proceedings in Informatics, LIPIcs
Volume95

Conference

Conference21st International Conference on Principles of Distributed Systems, OPODIS 2017
Country/TerritoryPortugal
CityLisboa
Period18/12/1720/12/17

Keywords

  • Byzantine fault tolerance
  • Cassandra
  • Distributed storage

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Hardening Cassandra against Byzantine failures'. Together they form a unique fingerprint.

Cite this