The z-order curve is a space-filling curve and is now attracting the interest of developers because of its simple and useful features. In the case of key-value stores, because the z-order curve achieves multi-dimensional range queries in one-dimensional z-ordered space, its use has been proposed for both academic and industrial purposes. However, z-ordered range queries suffer from wasteful query regions due to the properties of the z-order curve. Although previous studies have proposed refining z-ordered ranges, doing so is computationally expensive. In this paper, we propose z-ordered range refinement based on jump-in/out algorithms, and then we approximate z-ordered query regions to achieve efficient range refinement. Because the proposed method is lightweight and pluggable, it can be applied to various databases. We implemented our approach using PL/pgSQL in PostgreSQL and evaluated the performance of range refinement and multi-dimensional range queries. The experimental results demonstrate the effectiveness and efficiency of the proposed method.
翻译:Z序曲线作为一种空间填充曲线,因其简洁高效的特性正引起开发者的广泛关注。在键值存储场景中,由于Z序曲线能在一维Z序空间中实现多维范围查询,其应用已被学术界和工业界广泛提出。然而,受Z序曲线固有性质影响,Z序范围查询存在大量无效查询区域的问题。尽管既有研究提出了Z序范围精化方法,但这类方法计算开销较高。本文提出基于跳跃进入/跳出算法的Z序范围精化方案,通过近似Z序查询区域实现高效范围精化。由于所提方法轻量且可插拔,能适用于多种数据库系统。我们采用PostgreSQL的PL/pgSQL实现了该方案,并评估了范围精化与多维范围查询的性能。实验结果表明了该方法的有效性与高效性。