Search on IndexWriter's RAM Buffer [LUCENE-2312]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
In order to offer user's near realtime search, without incurring
an indexing performance penalty, we can implement search on
IndexWriter's RAM buffer. This is the buffer that is filled in
RAM as documents are indexed. Currently the RAM buffer is
flushed to the underlying directory (usually disk) before being
made searchable.
Todays Lucene based NRT systems must incur the cost of merging
segments, which can slow indexing.
Michael Busch has good suggestions regarding how to handle deletes using max doc ids.
https://issues.apache.org/jira/browse/LUCENE-2293?focusedCommentId=12841923&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12841923
The area that isn't fully fleshed out is the terms dictionary,
which needs to be sorted prior to queries executing. Currently
IW implements a specialized hash table. Michael B has a
suggestion here:
https://issues.apache.org/jira/browse/LUCENE-2293?focusedCommentId=12841915&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12841915
---
Migrated from [LUCENE-2312](https://issues.apache.org/jira/browse/LUCENE-2312) by Jason Rutherglen, updated Sep 09 2011
Attachments: [LUCENE-2312.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-2312/LUCENE-2312.patch) (versions: 3), [LUCENE-2312-FC.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-2312/LUCENE-2312-FC.patch)
Linked issues:
- #3400
- #3649
- #4272
- #4472
- #3422
- [CASSANDRA-2915](https://issues.apache.org/jira/browse/CASSANDRA-2915)
Contributor guide
Research direction
Start with IndexWriter's RAM buffer and review the linked LUCENE-2293 discussion for the proposed handling of deletes and the terms dictionary. The attached LUCENE-2312 patches and linked issues provide historical context. Done means documents in the RAM buffer can be searched before the buffer is flushed without the described indexing penalty.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100