Zhanghan Wang

I am Zhanghan Wang, a PhD student at New York University now. And I am widely interested in works about building high-performance and reliable systems.
More specifically, I am now working on safety of distributed system advised by Prof. Aurojit Panda.

Research
Experience

Below are my research experience and coursework projects.

  • Incremental Specialization of Network Programs

    HotNets 2024

    Fabian Ruffy, Zhanghan Wang, Gianni Antichi, Aurojit Panda, and Anirudh Sivaraman

  • Checking correctness of distributed protocol implementation at runtime

    Sept 2022 - Sept 2024

    Advisor: Aurojit Panda (NYU) and Jinyang Li (NYU)

    Distributed systems are notoriously difficult to implement correctly. By exploring interleavings of messages and maintaining a protocol simulator with potential states, we can check whether the implementation is consistent with the protocol specification. Our work avoids inter-server communication by only using the sent and received messages from/to every single server, and reduces exploration cost with some pruning optimizations.

  • Improve Load Balance for DLRM with Programmable Switch

    Jan 2022 - Sept 2022

    Advisor: Jialin Li (NUS) and Liang Luo (Meta, US)

    Deep Learning Recommendation Model(DLRM) is a widely used recommendation model developed by Meta. DLRM uses embedding tables that encode sparse features like movie genres. However, there are a lot of such tables, and the number of embeddings and the embedding sizes vary a lot. Thus, they are usually partitioned into different machines. Nevertheless, the accessing pattern is skewed due to the popularity of data. Thus, we tried to use the programmable switch to improve the load balance by caching several embedding entries and routing the lookup requests based on caching status. The work hasn't been completely done and the problem might already be obsolete.

  • Database Deadlock Diagnosis for Large-scale ORM-based Web Application

    July 2021 - Jan 2022

    Advisor: Jinyang Li (NYU) and Zhaoguo Wang (SJTU)

    Database-backed web application usually relies database to handle deadlocks. However, the common-used detect-and-recover strategy could be costly. Although developers can sometimes reorganize their application to removedeadlocks, the large number of LOC and third-party ORM frameworks they use make this much more difficult. In thisproject, we use symbolic execution to extract the APIs' statement templates with symbolic inputs and path conditions forthe issued statements. Based on the information, we then analyze and report the potential deadlocks.

  • RocksDB with Disaggregated Block Cache.

    March 2022 - June 2022

    Advisor: Cheng Li (USTC)

    This is my undergraduate thesis. In this work, I explored using RDMA to disaggregate the block cache of RocksDB to improve the overal throughput of LSM-Tree-based KV store. This project help alleviate the memory burden of block cache in RocksDB and disaggregate more than 75% memory with only 15% performance drop.

  • SQL Query Plan Optimization

    Oct 2020 - Dec 2020

    In this project, we develop a greedy algorithm to reorder left-deep-join tree in SQL query plan, and achieved better performance.

  • Graph DataBase File System

    March 2019 - July 2019

    Zhanghan Wang, Chuqing Gao, Zhiyuan Huang, Xinmei Wang, Jiacheng Wan (in no particular order)

    We utilize Neo4j(one of the best graph database) to build a FUSE-based file system with a fantastic web UI. The files are connected in the graph based on their contents. We used some machine learning techniques to extract keywords and description. Due to the limitation of early AI techniques, GDBFS can only process some simple files.

    A Note in 2024: we noticed that, with the emerging LLM, there are some new works similar to our GDBFS design philosophy. This again proves that new techniques always enable some old ideas...

Education
Experience

Below are my Education Experience

Projects
for Fun

  • P4 language extension for VSCode

    Started from May 2021

    VSCode Extension for p4 language. This extension support simple but not complete syntax and semantic highlights. This project is mainly for learning p4lang specification and review visitor pattern. It is not maintained anymore.