bp-wrapper · research · also Batching and prefetching wrapper

BP-Wrapper

BP-Wrapper is a buffer-management framework that batches replacement-policy updates and prefetches their metadata to reduce lock contention.

Related Observatory article: BP-Wrapper on hesela.com

The ICDE 2009 design records hits in per-thread FIFO queues. At the batch threshold it tries the policy lock without blocking; a full queue requires acquiring the lock. A miss commits the thread's pending hits before its miss operation. Per-thread order is preserved, not a single immediate global recency order. [1]

Prefetching brings replacement metadata into the processor cache before the critical section; database-page read-ahead is a separate operation. Evaluation used modified PostgreSQL 8.2.3 on two multiprocessor systems, not current PostgreSQL or SSD firmware. [1]

Caffeine cites this work but has a different buffering contract. Its read buffer may reject events under contention or when full. Batching therefore does not, by itself, specify whether observations are retained. [2]

Relations

related
TinyLFU, Least recently used replacement, Cache admission, 2Q replacement

Limitations

  • Delaying policy bookkeeping can change victim choices without changing the correctness of the buffered data. [1]

Citations

  1. Ding, Jiang and Zhang. BP-Wrapper. ICDE 2009, pp. 369-380, sections III-IV; DOI 10.1109/ICDE.2009.96. (accessed 2026-11-12)
  2. Caffeine v3.2.3, BoundedLocalCache.java: concurrency contract, afterRead, drainReadBuffer and onAccess. Commit 5227a98b51e02b4d4fbfc2b0e33c362a138f51b1. (accessed 2026-11-12)
Sources & caveats
  • Primary-source review of the original paper and pinned library implementation; no new throughput measurement or implementation replication.

JSON: /data/terms/bp-wrapper.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. BP-Wrapper. Hesela. 2026-11-12. https://hesela.dev/terms/bp-wrapper/