We describe software-engineering lessons we learned by building, deploying, and operating a large-scale distributed wildlife tracking system. The design started four years ago, the system has been operational for the past two years, but kept evolving during this time. The paper describes the structure of the system and then a series of interesting and well-documented lessons we learned. Most of the lessons surprised us, in spite of some of us being fairly experienced, some are not so surprising, but we felt that they are interesting enough to document here. Some of the lessons are particularly interesting because they are specific to computer systems built by computer scientists for collecting or processing experimental science data. These issues mostly revolve around the difficulty of building and maintaining complex systems in small teams in which junior members often leave well before the project is over.
We describe the design, manufacture, and deployment of advanced wildlife tracking tags (transmitters) based on integrated transceivers. The tags weigh as little as 2g and cost less than $20 each in relatively small quantities (tens).
Mobile devices use low-cost SSDs such as microSD cards and eMMC devices for persistent data storage. However, The controllers of low-cost SSDs are optimized for reads and for sequential writes and they perform poorly under random writes. In this paper, we show that it is possible to overcome this limitation using a novel device driver on the host. Our driver, called LSDM, uses design techniques normally used in the firmware (FTL) of high-end SSD to transform random writes to sequential ones. Our driver is a generic kernel module that interfaces an existing file system to the block device that represents the SSD, transforming the arbitrary read/write request sequence of the file system to a sequence with long streams of sequential writes, even low-cost SSDs perform well on such sequences. The use of an existing unmodified file system allows users and administrators to benefit from mature, feature-complete file systems. Our prototype implementation speeds up all file bench workloads used, by up to a factor of 6. Our experiments show that a flash-friendly file system that generates long streams of sequential writes delivers performance that is similar to a conventional file system mounted on LSDM. The high complexity of a completely new file system, relative to the simplicity of LSDM, favors our solution.
This thesis presents the design and implementation of the AT LAS localization system, a system for tracking wildlife using Reverse GPS pri ncipals. The main advantages of a Reverse GPS system relative to other wildlif e ocalization systems are energy efficiency, low cost, lightweight transmitter ta gs nd high data throughput. Reverse GPS localization is also very challenging from the engineering and computing aspects, because the system is distributed, with sop isticated receiving basestations at multiple locations, servers, and transmit ting tags, and because the system uses of several sophisticated algorithms. Some of th e algorithms are sophisticated and complex but not new (e.g., arrival time esti ma ion and nonlinear minimization to estimate locations), but scheduling algor ithms and data structures in ATLAS are novel. The system has been deployed in the Hula Va l ey in northern Israel, currently with 5 receiving stations and has been tes ted with transmitter tags attached to several different species of wild animals. Loca lization results have been delivered to the consumers of the system, a group of wild life biologists.