Fulva: Efficient Live Migration for In-memory Key-Value Stores with Zero Downtime

被引:4
|
作者
Hai, Jiewen [1 ]
Wang, Cheng [1 ]
Chen, Xusheng [1 ]
Li, Tsz On [1 ]
Cui, Heming [1 ]
Wang, Sen [2 ]
机构
[1] Univ Hong Kong, Hong Kong, Peoples R China
[2] Huawei Technol Co Ltd, Shenzhen, Guangdong, Peoples R China
关键词
D O I
10.1109/SRDS47363.2019.00019
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
A key-value store live migration approach migrates key-value tuples and their client requests from an overloaded machine (source) to an idle machine (destination), while still serving client requests. Existing migration approaches fall into two categories. First, a source-driven approach (e.g., DrTM-B) executes all client requests on the source and incrementally propagates the updated key-value tuples to the destination. This approach has an inevitable downtime to completely propagate the updated tuples at the end of a migration. Second, a destination-driven approach (e.g., RockSteady) executes all read and write requests on the destination, and pulls tuples from source for read requests on-demand. This approach has zero downtime, but incurs extra network round-trips due to the on-demand pull, greatly increasing request latency. Overall, a live migration approach that has zero downtime and no performance degradation during the migration is highly desirable but missing. The key observation of our Fulva system is that the source and destination can cooperatively drive the migration and serve requests, and we need only to design an efficient protocol to ensure linearizability (i.e., reads see the updates from the latest writes). To this end, when a migration starts, Fulva works by three steps. First, all write requests are redirected to the destination. Second, each client program uses a Fulva's RPC library to track the migration progress. For read requests accessing the already-migrated tuples, Fulva RPC library sends the requests to the destination. Third, for read requests accessing not-yet-migrated tuples, Fulva sends to both machines. The first step avoids downtime because all updated tuples are already on the destination. The second and third steps avoid the on-demand pull and ensure linearizability, making Fulva efficient. We implemented Fulva using DPDK and integrated it with RAMCloud, a popular in-memory key-value store. We compared Fulva with two notable systems, RockSteady (destination-driven approach) and RAMCloud's default source-driven approach. Extensive evaluation shows that Fulva has much higher throughput and lower latency than the two systems, and Fulva's network bandwidth usage is comparable with RockSteady. All Fulva's source code and raw evaluation results are released on github.com/hku-systems/fulva.
引用
收藏
页码:83 / 92
页数:10
相关论文
共 50 条
  • [1] In-Memory Key-Value Store Live Migration with NetMigrate
    Zhu, Zeying
    Zhao, Yibo
    Liu, Zaoxing
    PROCEEDINGS OF THE 21ST USENIX SYMPOSIUM ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION, NSDI 24, 2024, : 209 - 224
  • [2] In-Memory Key-Value Store Live Migration with NetMigrate
    Zhu, Zeying
    Zhao, Yibo
    Liu, Zaoxing
    PROCEEDINGS OF THE 22ND USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, FAST 24, 2024, : 209 - 224
  • [3] Poster: Load Balancing for In-Memory Key-Value Data Stores
    Azqueta-Alzuaz, Ainhoa
    Pahno-Martinez, Marta
    2024 IEEE 44TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS, ICDCS 2024, 2024, : 1442 - 1443
  • [4] Hotspot-Aware Hybrid Memory Management for In-Memory Key-Value Stores
    Jin, Hai
    Li, Zhiwei
    Liu, Haikun
    Liao, Xiaofei
    Zhang, Yu
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2020, 31 (04) : 779 - 792
  • [5] Aria: Tolerating Skewed Workloads in Secure In-memory Key-value Stores
    Yang, Fan
    Chen, Youmin
    Lu, Youyou
    Wang, Qing
    Shu, Jiwu
    2021 IEEE 37TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE 2021), 2021, : 1020 - 1031
  • [6] A One-Year Perspective on Exposed In-memory Key-Value Stores
    Fiebig, Tobias
    Feldmann, Anja
    Petschick, Matthias
    PROCEEDINGS OF THE 2016 ACM WORKSHOP ON AUTOMATED DECISION MAKING FOR ACTIVE CYBER DEFENSE (SAFECONFIG'16), 2016, : 17 - 22
  • [7] Efficient Software Rejuvenation of In-memory Key-Value Storages
    Jumonji, Yuto
    Yamada, Hiroshi
    2017 IEEE 28TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW 2017), 2017, : 280 - 285
  • [8] Hardening In-memory Key-value Stores against ECC-uncorrectable Memory Errors
    Shimomura, Tsuyoshi
    Yamada, Hiroshi
    2022 52ND ANNUAL IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS (DSN 2022), 2022, : 509 - 521
  • [9] Lightweight Replication Through Remote Backup Memory Sharing for In-Memory Key-Value Stores
    Wang, Yandong
    Zhang, Li
    Hack, Michel
    Ren, Yufei
    Li, Min
    2017 IEEE 25TH INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS, AND SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS), 2017, : 53 - 62
  • [10] R-Memcached: A Reliable In-Memory Cache for Big Key-Value Stores
    Liu, Chengjian
    Ouyang, Kai
    Chu, Xiaowen
    Liu, Hai
    Leung, Yiu-Wing
    TSINGHUA SCIENCE AND TECHNOLOGY, 2015, 20 (06) : 560 - 573