Modern Internet of Things (IoT) deployments are geo-distributed and comprise various devices and architectures. The ever-increasing pervasiveness of IoT has led to the popularity of multi-tier (cloud/edge/sensor) architectures. However, the data interaction among the devices of the different tiers is fraught with various and often related challenges. For starters, these devices are vastly heterogeneous. On one end, we have cloud devices with high computing and storage capacities; on the other, we have resource-constrained microcontrollers and sensors. Due to the nature of the deployment of end devices, i.e., microcontrollers and sensors, stable network connectivity is often inaccessible to them. Unreliable power sources add complexity to the already challenging environment of end devices. Hence, we need novel approaches to create robust, fault-tolerant IoT deployments by negotiating these challenges.
To that end, we employ a three-pronged approach to make distributed IoT systems reliable and fault-tolerant. First, we propose leveraging versioned data structures to track the evolution and efficient querying/modification of data. As versioned data structures retain the past states, we can record the data lineage, which we can later use for system debugging and root cause analysis. Second, we propose a novel replication method that reduces coordination overhead. As IoT environments are failure-prone, protocols requiring more coordination can result in multiple stop-start scenarios, thus wasting energy in environments already in short supply. Finally, we explore an energy-efficient, energy-conscious way of making data tamper-proof. Tamper-proofing gives us confidence in the veracity of data and provides a way to detect faulty or malicious devices in the system. We empirically evaluate our methodology through various real-world IoT applications.
Our results show that data versioning can lead to efficient temporal queries and historical data retention that is useful for debugging IoT applications and deployments. Moreover, experimental results on replicating versioned data using our proposed protocol demonstrate better throughput and overall better latency than existing protocols
with similar consistency guarantees. Finally, our proof-of-concept system for tamper-proof data management shows it is feasible to create a renewable-energy-aware system that ensures data trustworthiness in an energy efficient way. Hence, we conclude that we can leverage data versioning and replication to create the next generation of distributed, reliable, fault-tolerant IoT systems.