  Prefetching is a crucial technique employed in traditional databases to
enhance interactivity, particularly in the context of data exploitation. Data
exploration is a query processing paradigm in which users search for insights
buried in the data, often not knowing what exactly they are looking for. Data
exploratory tools deal with multiple challenges such as the need for
interactivity with no a priori knowledge being present to help with the system
tuning. The state-of-the-art prefetchers are specifically designed for
navigational workloads only, where the number of possible actions is limited.
The prefetchers that work with SQL-based workloads, on the other hand, mainly
rely on data logical addresses rather than the data semantics. They fail to
predict complex access patterns in cases where the database size is
substantial, resulting in an extensive address space, or when there is frequent
co-accessing of data. In this paper, we propose SeLeP, a semantic prefetcher
that makes prefetching decisions for both types of workloads, based on the
encoding of the data values contained inside the accessed blocks. Following the
popular path of using machine learning approaches to automatically learn the
hidden patterns, we formulate the prefetching task as a time-series forecasting
problem and use an encoder-decoder LSTM architecture to learn the data access
pattern. Our extensive experiments, across real-life exploratory workloads,
demonstrate that SeLeP improves the hit ratio up to 40% and reduces I/O time up
to 45% compared to the state-of-the-art, attaining impressive 95% hit ratio and
80% I/O reduction on average.
