Bug 510212 - [newindex] Make use of change deltas in incremental indexing
Summary: [newindex] Make use of change deltas in incremental indexing
Status: CLOSED WONTFIX
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 4.6   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords:
Depends on: 510600
Blocks: 509558
  Show dependency tree
 
Reported: 2017-01-10 13:28 EST by Stefan Xenos CLA
Modified: 2020-11-22 07:41 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Xenos CLA 2017-01-10 13:28:17 EST
Currently, the (new) indexer makes no use of change deltas when performing indexing. The indexer rescans the entire workspace to determine what changed when processing any change. This is fairly fast, but we could still make it a lot faster if we made use of the content of change deltas (since we wouldn't have to check the fingerprints of the remaining files).

There are several objectives of this change.

1. Allow the indexer to run faster for incremental changes.
2. Move the responsibility for computing the set of files to scan out of the indexer thread and into the thread that requested re-indexing (in order to address bug 509558).
3. Provide a more selective blocking mechanism - such that a caller can wait for a specific file to be reindexed instead of just waiting for the entire workspace, as it does now.

Item 3 may be moved to another bug if it doesn't fit.

The plan is to provide the indexer with a work queue data structure containing the list of outstanding files to be rescanned, which is populated by the APIs that trigger re-indexing. The data structure would also contain some mechanism for prioritizing elements that other threads are waiting on and for enqueuing other tertiary tasks (like updating last-used timestamps and workspace mappings).

The current responsibilities of the indexer will be broken up into various tasks enqueued in the work queue, the APIs that enqueue new work, and the indexer itself.
Comment 1 Manoj N Palat CLA 2018-04-16 09:40:36 EDT
bulk move out of 4.8
Comment 2 Eclipse Genie CLA 2020-05-19 03:46:29 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.
Comment 3 Carsten Hammer CLA 2020-11-22 07:41:58 EST
Is it really OK to close this issue? It looks like it can have a lot of impact on the performance.
And looking at 
https://wiki.eclipse.org/JDT_Core_Index_Programmer_Guide
it highlights quite a lot of limitations with the current implementation.