Skip to content

Commit

Permalink
Implement SQL-level LFC prewarming through sideloading pages
Browse files Browse the repository at this point in the history
We allow extraction and loading of LFC contents through SQL-callable
functions.

The LFC sideloading is based on these principles:

- While sideloading, the page won't get evicted (e.g. through chunk recycling)
- Access to existing LFC contents won't be negatively impacted by sideloading
- New writes to LFC may block, but only while sideloading is ready to
  write to the chunk.
- prewarming/sideloading only adds data to the LFC, it won't evict pages.

Co-authored-by: Matthias van de Meent <matthias@neon.tech>
Co-authored-by: Konstantin Knizhnik <knizhnik@neon.tech>
  • Loading branch information
Konstantin Knizhnik and MMeent committed Jan 21, 2025
1 parent 624a507 commit 538c06f
Show file tree
Hide file tree
Showing 12 changed files with 1,429 additions and 207 deletions.
3 changes: 3 additions & 0 deletions pgxn/neon/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ OBJS = \
$(WIN32RES) \
extension_server.o \
file_cache.o \
file_cache_prewarm.o \
hll.o \
libpagestore.o \
logical_replication_monitor.o \
Expand Down Expand Up @@ -34,6 +35,8 @@ DATA = \
neon--1.2--1.3.sql \
neon--1.3--1.4.sql \
neon--1.4--1.5.sql \
neon--1.5--1.6.sql \
neon--1.6--1.5.sql \
neon--1.5--1.4.sql \
neon--1.4--1.3.sql \
neon--1.3--1.2.sql \
Expand Down
Loading

0 comments on commit 538c06f

Please sign in to comment.