Skip to content

pagination_benchmarks

GitHub Actions edited this page Jan 2, 2026 · 1 revision

Pagination Benchmarks: Offset vs Cursor

Stand: 5. Dezember 2025
Version: 1.0.0
Kategorie: Search


Dieser Leitfaden beschreibt zwei Microbenchmarks zur Pagination-Performance:

  • Offset-basierte Pagination (ORDER BY + LIMIT offset,count mit Post-Slicing)
  • Cursor-basierte Pagination (Anchor-based Start-after mit LIMIT count+1)

Quelle: benchmarks/bench_query.cpp

Setup

Beim ersten Lauf wird eine Testdatenbank unter data/themis_bench_query erzeugt. Es werden bench_users-Entities mit Range-Index auf age angelegt.

Benchmarks

  • BM_Pagination_Offset(page_size=50, pages=50)
  • BM_Pagination_Cursor(page_size=50, pages=50)

Offset-Variante setzt orderBy.limit = offset + count und schneidet die Seite nachträglich (wie der HTTP-Pfad). Cursor-Variante nutzt (cursor_value, cursor_pk) als Anchor und LIMIT count+1 zur has_more-Erkennung.

Ausführen (optional)

# Reconfigure to ensure benchmarks are built (once)
cmake -S .. -B . -DCMAKE_BUILD_TYPE=Release -DTHEMIS_BUILD_BENCHMARKS=ON
cmake --build . --config Release --parallel

# Run only pagination benchmarks
.\Release\themis_benchmarks.exe --benchmark_filter=BM_Pagination_.*

Hinweis: Zeiten können durch I/O-Cache und Hardware variieren. Für reproduzierbare Messungen ggf. mehrfach ausführen und Mittelwerte bilden.

Interpretation

  • Offset-Pagination: Aufwand wächst mit offset (Index muss die Einträge bis zur Seite traversieren).
  • Cursor-Pagination: Konstante Arbeit pro Seite (Start-after) – stabil bei großen Datenmengen.

In Einzelfällen kann die Cursor-Variante durch zusätzliche Entity-Loads (Anchor-Ermittlung) leicht höhere CPU-Zeit zeigen; mit warmem Cache und realistischen Daten ist sie bei großen Offsets typischerweise überlegen.

ThemisDB Dokumentation

Version: 1.3.0 | Stand: Dezember 2025


📋 Schnellstart


🏗️ Architektur


🗄️ Basismodell


💾 Storage & MVCC


📇 Indexe & Statistiken


🔍 Query & AQL


💰 Caching


📦 Content Pipeline


🔎 Suche


⚡ Performance & Benchmarks


🏢 Enterprise Features


✅ Qualitätssicherung


🧮 Vektor & GNN


🌍 Geo Features


🛡️ Sicherheit & Governance

Authentication

Schlüsselverwaltung

Verschlüsselung

TLS & Certificates

PKI & Signatures

PII Detection

Vault & HSM

Audit & Compliance

Security Audits

Gap Analysis


🚀 Deployment & Betrieb

Docker

Observability

Change Data Capture

Operations


💻 Entwicklung

API Implementations

Changefeed

Security Development

Development Overviews


📄 Publikation & Ablage


🔧 Admin-Tools


🔌 APIs


📚 Client SDKs


📊 Implementierungs-Zusammenfassungen


📅 Planung & Reports


📖 Dokumentation


📝 Release Notes


📖 Styleguide & Glossar


🗺️ Roadmap & Changelog


💾 Source Code Documentation

Main Programs

Source Code Module


🗄️ Archive


🤝 Community & Support


Vollständige Dokumentation: https://makr-code.github.io/ThemisDB/

Clone this wiki locally