Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Cheng Wang 0021

dblp:54/2062-21 · DBLP profile ↗
← Back
8ranked-venue papers
3as first author
1since 2021 · last 2022
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 5 · 2 first-author · 1 since 2021Security and privacy · 3Computer networks · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
2 papers
Cloud and datacenter computing · 67% Distributed systems · 33%
Software engineering, system software, and programming languages
1 paper
Operating systems · 100%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Operating systems › resource management › process management
CPU scheduling
0.312018
Effectively Mitigating I/O Inactivity in vCPU Scheduling · USENIX ATC 2018
Distributed systems
fault tolerance
0.312018
PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance · NSDI 2018
Cloud and datacenter computing › cluster resource management and scheduling › resource scheduling
vCPU scheduling
0.312018
Effectively Mitigating I/O Inactivity in vCPU Scheduling · USENIX ATC 2018
Cloud and datacenter computing
virtualization
0.312018
PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance · NSDI 2018
Cloud and datacenter computing › virtualization › virtual machine management
virtual machine fault tolerance
0.312018
PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance · NSDI 2018
Distributed systems › replication
virtual machine replication
0.312018
PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance · NSDI 2018
Cloud and datacenter computing › virtualization › virtual machine management
virtual machine scheduling
0.312018
Effectively Mitigating I/O Inactivity in vCPU Scheduling · USENIX ATC 2018

Methods — techniques the papers use, named apart from their topics

i/o-aware scheduling · 0.7
YearPublicationVenuePosition
2022 Efficient and DoS-resistant Consensus for Permissioned Blockchains
Xusheng Chen, Shixiong Zhao, Ji Qi 0002, Jianyu Jiang, Haoze Song, Cheng Wang 0021, Tsz On Li, T.-H. Hubert Chan, Fengwei Zhang, Xiapu Luo, Sen Wang 0004, Gong Zhang 0001, Heming Cui
Perform. Evaluation6
2020 Uranus: Simple, Efficient SGX Programming and its Applications
abstract
Applications written in Java have strengths to tackle diverse threats in public clouds, but these applications are still prone to privileged attacks when processing plaintext data. Intel SGX is powerful to tackle these attacks, and traditional SGX systems rewrite a Java application's sensitive functions, which process plaintext data, using C/C++ SGX API. Although this code-rewrite approach achieves good efficiency and a small TCB, it requires SGX expert knowledge and can be tedious and error-prone. To tackle the limitations of rewriting Java to C/C++, recent SGX systems propose a code-reuse approach, which runs a default JVM in an SGX enclave to execute the sensitive Java functions. However, both recent study and this paper find that running a default JVM in enclaves incurs two major vulnerabilities, Iago attacks, and control flow leakage of sensitive functions, due to the usage of OS features in JVM. In this paper, Uranus creates easy-to-use Java programming abstractions for application developers to annotate sensitive functions, and Uranus automatically runs these functions in SGX at runtime. Uranus effectively tackles the two major vulnerabilities in the code-reuse approach by presenting two new protocols: 1) a Java bytecode attestation protocol for dynamically loaded functions; and 2) an OS-decoupled, efficient GC protocol optimized for data-handling applications running in enclaves. We implemented Uranus in Linux and applied it to two diverse data-handling applications: Spark and ZooKeeper. Evaluation shows that: 1) Uranus achieves the same security guarantees as two relevant SGX systems for these two applications with only a few annotations; 2) Uranus has reasonable performance overhead compared to the native, insecure applications; and 3) Uranus defends against privileged attacks. Uranus source code and evaluation results are released on https://github.com/hku-systems/uranus.
Jianyu Jiang, Xusheng Chen, Tsz On Li, Cheng Wang 0021, Tianxiang Shen, Shixiong Zhao, Heming Cui, Cho-Li Wang, Fengwei Zhang
AsiaCCS4
2020 HAMS: High Availability for Distributed Machine Learning Service Graphs
abstract
Mission-critical services often deploy multiple Machine Learning (ML) models in a distributed graph manner, where each model can be deployed on a distinct physical host. Practical fault tolerance for such ML service graphs should meet three crucial requirements: high availability (fast failover), low normal case performance overhead, and global consistency under non-determinism (e.g., threads in a GPU can do floating point additions in random order). Unfortunately, despite much effort, existing fault tolerance systems, including those taking the primary-backup approach or the checkpoint-replay approach, cannot meet all these three requirements. To tackle this problem, we present HAMS, which starts from the primary-backup approach to replicate each stateful ML model, and we leverage the causal logging technique from the checkpoint-replay approach to eliminate the notorious stop-and-buffer delay in the primary-backup approach. Extensive evaluation on 25 ML models and six ML services shows that: (1) in normal case, HAMS achieved 0.5%-3.7% overhead on latency compared with bare metal; (2) HAMS took 116.12ms-254.19ms to recover one stateful model in all services, 155.1X-1067.9X faster than a relevant system Lineage Stash (LS); and (3) HAMS recovered these services with global consistency even when the GPU non-determinism exists, not supported by LS. HAMS's code is released ongithub.com/hku-systems/hams.
Shixiong Zhao, Xusheng Chen, Cheng Wang 0021, Fanxin Li, Heming Cui, Cheng Li 0001, Sen Wang 0004
DSN3
2019 Fulva: Efficient Live Migration for In-Memory Key-Value Stores with Zero Downtime
abstract
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 had 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.
Jiewen Hai, Cheng Wang 0021, Xusheng Chen, Tsz On Li, Heming Cui, Sen Wang 0004
SRDS2
2018 PLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance
Cheng Wang 0021, Xusheng Chen, Weiwei Jia 0001, Boxuan Li, Haoran Qiu, Shixiong Zhao, Heming Cui
NSDI1
2018 Effectively Mitigating I/O Inactivity in vCPU Scheduling
Weiwei Jia 0001, Cheng Wang 0021, Xusheng Chen, Jianchen Shan, Xiaowei Shang, Heming Cui, Xiaoning Ding, Luwei Cheng, Francis C. M. Lau 0001, Yuangang Wang
USENIX ATC2
2017 APUS: fast and scalable paxos on RDMA
abstract
State machine replication (SMR) uses Paxos to enforce the same inputs for a program (e.g., Redis) replicated on a number of hosts, tolerating various types of failures. Unfortunately, traditional Paxos protocols incur prohibitive performance overhead on server programs due to their high consensus latency on TCP/IP. Worse, the consensus latency of extant Paxos protocols increases drastically when more concurrent client connections or hosts are added. This paper presents APUS, the first RDMA-based Paxos protocol that aims to be fast and scalable to client connections and hosts. APUS intercepts inbound socket calls of an unmodified server program, assigns a total order for all input requests, and uses fast RDMA primitives to replicate these requests concurrently.
Cheng Wang 0021, Jianyu Jiang, Xusheng Chen, Ning Yi, Heming Cui
SoCC1
2017 A Fast, General Storage Replication Protocol for Active-Active Virtual Machine Fault Tolerance
abstract
Cloud computing enables more and more online services deployed in virtual machines (VMs), making fast VM fault tolerance particularly crucial. Unfortunately, despite much effort, achieving fast VM fault tolerance remains an open problem. A traditional way to provide VM fault tolerance is the active-passive approach, which frequently transfers tremendous updated states, including memory and storage, of a primary VM to a suspended secondary VM. The other emerging approach, namely the active-active approach, runs the secondary VM concurrently with the primary. Compared to active-passive, active-active is faster because it only performs the transfer when the externally visible states (e.g., network outputs) of the primary and secondary diverge. However, active-active aggravates the performance issue on I/O intensive workloads. In existing active-active systems, storage replication protocols hold updated storage states from both the primary and secondary on the secondary, incurring excessive I/O contention. For instance, both our evaluation and prior study show that a well-engineered active-active system, COLO, degrades the throughput of I/O intensive services by up to 61.6%. To tackle this open problem, this paper presents GANNET, a fast and general storage replication protocol for active-active VM fault tolerance systems. It greatly alleviates the I/O contention on the secondary's storage by efficiently buffering the updated disk states from both the primary and secondary VM in memory. GANNET carries a lightweight storage checkpoint algorithm to avoid consuming too much memory. GANNET is proved to be as reliable as existing storage replication protocols. We integrated GANNET into two popular active-active systems. Evaluation on six widely used services shows that GANNET incurred 15.9% overhead compared to the native executions and outperformed COLO's storage replication protocol by 1.2X~2.6X. GANNET's source code is available at github.com/hku-systems/gannet.
Cheng Wang 0021, Xusheng Chen, Youwei Zhu, Heming Cui
ICPADS1