Airphant: Cloud-oriented Document Indexing
This addresses the issue of slow search engine performance in cloud environments for users of scalable data systems, representing a novel method rather than an incremental improvement.
The paper tackled the problem of high query latencies when using existing search engines like Apache Lucene on cloud storage, which incurred over 6 seconds on average due to network round-trips from hierarchical indexes. They developed Airphant with a new statistical index called IoU Sketch that uses parallel asynchronous requests, achieving average latencies between 13 ms and 300 ms, up to 8.97x faster than Apache Lucene and 113.39x faster than Elasticsearch.
Modern data warehouses can scale compute nodes independently of storage. These systems persist their data on cloud storage, which is always available and cost-efficient. Ad-hoc compute nodes then fetch necessary data on-demand from cloud storage. This ability to quickly scale or shrink data systems is highly beneficial if query workloads may change over time. We apply this new architecture to search engines with a focus on optimizing their latencies in cloud environments. However, simply placing existing search engines (e.g., Apache Lucene) on top of cloud storage significantly increases their end-to-end query latencies (i.e., more than 6 seconds on average in one of our studies). This is because their indexes can incur multiple network round-trips due to their hierarchical structure (e.g., skip lists, B-trees, learned indexes). To address this issue, we develop a new statistical index (called IoU Sketch). For lookup, IoU Sketch makes multiple asynchronous network requests in parallel. While IoU Sketch may fetch more bytes than existing indexes, it significantly reduces the index lookup time because parallel requests do not block each other. Based on IoU Sketch, we build an end-to-end search engine, called Airphant; we describe how Airphant builds, optimizes, and manages IoU Sketch; and ultimately, supports keyword-based querying. In our experiments with four real datasets, Airphant's average end-to-end latencies are between 13 milliseconds and 300 milliseconds, being up to 8.97x faster than Apache Lucence and 113.39x faster than Elasticsearch.