Research Projects

  • GAM: Globally Addressable Memory

    GAM is a DSM (Distributed Shared Memory) framework based on RDMA (Remote Direct Memory Access). It allows users' applications to view the memory from a cluster of servers as a whole. In GAM, we adopt the PGAS (Partitioned Global Address Space) addressing model and add another level of DRAM resident cache to exploit data locality. To keep the data consistent in GAM, we also design a distributed directory-based cache coherence protocol based on RDMA.

  • DICE: A System for Anytime Big Tabular Data Integration and Cleansing

    The system DICE (short for Data Integration and Cleansing Engine) aims to perform data integration and data cleansing tasks for big tabular data. It is just started as long as I join the group so that I can tailor my responsible part. The system aims to perform integration and cleansing tasks for big tabular data by exploiting knowledge mining and crowdsourcing. We take healthcare as an application since it always holds a huge volume of data with low data quality from anonymous patients and thus getting accurate results based on such data is a challenging task. DICE consists of three major components: an aggregated knowledge-base, a crowdsourcing platform, and its core, the DICE-engine. The knowledge-base organizes the knowledge in a graph structure, which is capable of learning new knowledge from massive web tables in an incremental fashion. The crowdsourcing platform resorts to the crowd for the required knowledge that has not yet been covered by the knowledge-base, enriching it through an loop. DICE-engine is responsible for generating an optimal execution plan for different workflows, such as schema matching, entity resolution, and data cleansing, based on knowledge-base and crowdsourcing platform.

  • BlockBench: A Framework for Analyzing Private Blockchains

    This project describes the first evaluation framework for analyzing private blockchains. Since blockchain technologies are taking the world by storm, such a framework can be used to assess blockchains' viability as a distributed data processing platform, while helping developers to identify bottlenecks and accordingly improve their platforms. BlockBench serves as a fair means of comparison for different platforms and enables deeper understanding of different system design choices. Any private blockchain can be integrated to BlockBench via simple APIs, then it is driven by data processing workloads based on both real and synthetic smart contracts. We use BlockBench to conduct comprehensive evaluation of two popular private blockchains: Ethereum and Hyperledger Fabric, in terms of throughput, latency, scalability and fault-tolerance.

  • Coordination and Computation in Distributed Intelligent MEMS

    This project is to develop a programming model to coordinate MRS (Mobile Robots System). The most challenging and interesting part is that we proposed a programming model supporting preliminary time-constraint mechanism. I carried out a systematic investigation on new requirements, challenging issues and existing work of MRS. Working with other members, we developed a prototype declarative programming model and language for distributed coordination of MRS. Our team also developed a test-bed for evaluating and testing different coordination models of MRS under realistic conditions.

  • Distributed Proactive Adaptation for Ubiquitous Interactive Objects

    This project focuses on distributed adaptation for Ubiquitous Interactive Objects System (UIO). The development process for such systems is challenging due to the need of creating, deploying, and testing numerous and heterogeneous smart devices in differing environments and scenarios. I was responsible to develop the software part of the simulator which allows users to dynamic adding to, deleting from, and updating of the UIO system through a client. The client I developed is based on Eclipse RCP framework.

  • A Simulation Environment for Pervasive Networking and Computing

    I was a member who was responsible for designing the commuication and interaction mechanism in the scenarios of pervasive networking and computing. My implementation is based SOA (Service-Oriented Architecture) and OSGi (Open Service Gateway Initiative), which specifies different reusable components in a system as well as the communications among them. All the components can be remotely installed, started, stopped, updated, and uninstalled without having to reboot. A set of management functions, including component discovery, resource recycling, and life cycle management, are also provided. Basically, our system organizes the components as bundles and further encapsulates a set of bundles into plugins. Several extension points are part of a plug-in for further evolution.