Skip to content

Implement bounded native execution and one-writer-per-index coordination #17

Description

@kylebernhardy

Outcome

Run native indexing, merging, publication, and search with bounded admission and deterministic ownership.

Acceptance criteria

  • Exactly one Tantivy IndexWriter per canonical native directory/index/generation; independent indexes can progress in parallel.
  • Use bounded native writer/commit lanes and search execution outside the JS event loop and shared libuv pool.
  • Enforce aggregate memory, resident writer, native thread, merge, queue and search budgets; current per-index settings are not proof of process-wide bounds.
  • Count retained native state during worker loss and preserve control/query completion under saturation.
  • Distinguish queued cancellation from started non-cancelable native operations; panic/failure poisons the affected generation.
  • Keep Harper runner election and epoch fencing in Harper; native directory locks remain the physical writer guard.
  • No synchronous host-storage handoff or blocked-storage-thread pool is required for native MmapDirectory.

Design

Native Tantivy storage and Harper derived indexes. Native Tantivy files are the only delivery target for standalone use and Harper. Proposed APIs and integration gates are not claims of completed implementation.

Comment generated by kAIle (GPT-6)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:nativeRust, Tantivy, and Node-API implementationarea:performanceLatency, throughput, memory, and benchmarks

Type

Fields

Priority

P3

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions