
Testing Raft-Replicated Database
Systems
Guohao Ding
1
, Weining Qian
1(
B
)
, Peng Cai
1
, Tianze Pang
2
, and Qiong Zhao
2
1
East China Normal University, Shanghai, China
guohaoding@stu.ecnu.edu.cn, {wnqian,pcai}@dase.ecnu.edu.cn
2
Bank of Communications, Shanghai, China
{pangtz,qiongzhao}@bankcomm.com
Abstract. The replication technique based on Raft protocol is essential
in modern distributed and highly-available database systems. Although
Raft is a protocol easy to understand and implement, testing a Raft-
replicated database system is still a challenging task due to multiple
sources of nondeterminism. Conventional testing techniques, such as
unit, integration and stress testing, are ineffective in preventing seri-
ous but subtle bugs from reaching production. This paper first intro-
duces evaluation metrics after the abstraction of general Raft-replicated
database systems. These metrics are defined from several aspects includ-
ing correctness, performance, and scalability. Then, we present test
dimensions for the design of test cases, which contain various fault types,
different workloads and system configurations. Finally, we describe test
results of Raft-replicated open source database system.
Keywords: Raft
· Distributed database · Test
1 Introduction
In recent years, the amount of data created by human activities goes far beyond
the storage and processing power of a single computer. In order to process mas-
sive amounts of data, distributed systems, especially distributed database sys-
tems, are becoming more and more popular. It serves millions of users in many
important applications. However, distributed database systems are notoriously
hard to design, implement and test because they introduce more variables into
a design than a single machine does, making the root cause of an application
problem much harder to discover.
Developers of distributed systems use many testing techniques, such as unit
testing, integration testing, stress testing, and fault injection. In spite of exten-
sive use of these testing methods, many bugs that arise from subtle combina-
tions of concurrency and failure events that are missed during testing and get
exposed only in production. According to the interview [4], many technical lead-
ers and senior managers in famous companies, such as Microsoft, Amazon and
Google, have the consensus that one of the most critical problems today is how
c
Springer Nature Switzerland AG 2019
C. Zheng and J. Zhan (Eds.): Bench 2018, LNCS 11459, pp. 131–144, 2019.
https://doi.org/10.1007/978-3-030-32813-9
_12
评论