Is property indexing multi-threaded
Is property indexing multi-threaded
Hi,
I've tried testing property indexing
Added indexing for videos - Length and total bitrate.
It seemed to go in a sequential manner even though my videos are spread in separate drives. ( some ssds, some hdds)
Took around 5 minutes for ~70k files
Is there a flag to allow multi-threaded property indexing?
( If not, I suggest it as a feature )
Thx
I've tried testing property indexing
Added indexing for videos - Length and total bitrate.
It seemed to go in a sequential manner even though my videos are spread in separate drives. ( some ssds, some hdds)
Took around 5 minutes for ~70k files
Is there a flag to allow multi-threaded property indexing?
( If not, I suggest it as a feature )
Thx
Re: Is property indexing multi-threaded
Take a look here ...
Re: Is property indexing multi-threaded
It seems /content_max_threads is responsible for the number of threads of reading props and content, not for the indexing part.
seems /no_incur_seek_penalty_multithreaded=1 is a viable option for nvme's but not for hdd's, but thanks it does help on those.
I'm unsure what's the ratio between time to seek/read a file and the time to process a property. depends on the property.
eg - Processing a word count for a document would probably take longer than seeking it, so a multithreaded parsing solution would have to be applied differently for this case than general threading per core ( maybe separate queues for seeking and processing? IDK, not an expert )
seems /no_incur_seek_penalty_multithreaded=1 is a viable option for nvme's but not for hdd's, but thanks it does help on those.
I'm unsure what's the ratio between time to seek/read a file and the time to process a property. depends on the property.
eg - Processing a word count for a document would probably take longer than seeking it, so a multithreaded parsing solution would have to be applied differently for this case than general threading per core ( maybe separate queues for seeking and processing? IDK, not an expert )
Re: Is property indexing multi-threaded
Everything supports a separate thread for each device by default.
Everything should index each separate device at the same time.
Everything should read properties from each separate device at the same time.
Please check to see if Everything supports separate device threads:
To reduce the number of properties Everything indexes:
Everything should index each separate device at the same time.
Everything should read properties from each separate device at the same time.
Please check to see if Everything supports separate device threads:
- In Everything, from the Tools menu, under the Debug submenu, click Statistics.
- For each volume at the bottom, Everything will list the current multithreaded value.
- It can be one of the follow:
- Separate device thread - Use a single separate thread for this volume
- Enabled - volume supports multiple threads.
- Disabled - volume does not support multiple threads.
- Please also check Everything is reporting a unique Disk device index for each volume. -If not, Everything will only use one thread.
To reduce the number of properties Everything indexes:
- In Everything, from the Tools menu, click Options.
- Click Properties on the left.
- Set include only folders to a semicolon delimited (;) list of folders.
For example:
c:\media;d:\media;e:\ - Set include only files to a semicolon delimited (;) list of extension.
For example:
*.mp4;*.mkv;*.webm - Click OK.
Re: Is property indexing multi-threaded
My setup ( C,H are nvme's)
Indexes are unique.
Update: my mistake - disk device index is not unique for D and F , should it disable reading other drives concurrently with either F or D?
[While property indexing] it does not seem like everything reads from multiple disks at the same time :
at this point of the scan, there are multiple unindexed files on drives j,f.
Indexes are unique.
Update: my mistake - disk device index is not unique for D and F , should it disable reading other drives concurrently with either F or D?
Code: Select all
NTFS Index
Volume Name: \\?\Volume{}
Path: C:
Root:
Include only:
Drive Type: Fixed
Label:
Index number: 0
Out of date: No
Disk device index: 3
Multithreaded: Enabled
Folder count: 470,768
File count: 2,094,182
USN Journal ID:
Next USN:
NTFS Index
Volume Name: \\?\Volume{}
Path: D:
Root:
Include only:
Drive Type: Fixed
Label:
Index number: 1
Out of date: No
Disk device index: 1
Multithreaded: Separate device thread
Folder count: 140,895
File count: 812,744
USN Journal ID:
Next USN:
NTFS Index
Volume Name: \\?\Volume{}
Path: F:
Root:
Include only:
Drive Type: Fixed
Label:
Index number: 2
Out of date: No
Disk device index: 1
Multithreaded: Separate device thread
Folder count: 13,029
File count: 39,176
USN Journal ID:
Next USN:
NTFS Index
Volume Name: \\?\Volume{}
Path: H:
Root:
Include only:
Drive Type: Fixed
Label:
Index number: 3
Out of date: No
Disk device index: 2
Multithreaded: Enabled
Folder count: 9,881
File count: 18,646
USN Journal ID:
Next USN:
NTFS Index
Volume Name: \\?\Volume{}
Path: J:
Root:
Include only:
Drive Type: Fixed
Label:
Index number: 4
Out of date: No
Disk device index: 0
Multithreaded: Separate device thread
Folder count: 327,306
File count: 1,278,235
USN Journal ID:
Next USN:
at this point of the scan, there are multiple unindexed files on drives j,f.
Last edited by void on Sun Mar 21, 2021 10:37 am, edited 1 time in total.
Re: Is property indexing multi-threaded
By default, Everything will index properties for 1024 files at a time.
This is different to searching properties (which will use multiple threads).
Indexing properties will generally only use 1 thread that runs in the background.
I've added an option indexed_property_max_request to customize the number of files to request when indexing properties in Everything 1.5.0.1248a
To request all files when indexing properties:
I'll look into making this the default without consuming any additional RAM.
This is different to searching properties (which will use multiple threads).
Indexing properties will generally only use 1 thread that runs in the background.
I've added an option indexed_property_max_request to customize the number of files to request when indexing properties in Everything 1.5.0.1248a
To request all files when indexing properties:
- In Everything, type in the following search and press ENTER:
/indexed_property_max_request=0
where 0 is the number of files to request when indexing properties.
0 = unlimited
1024 is the default.
If successful, you should see indexed_property_max_request=0 in the status bar for a few seconds.
Setting indexed_property_max_request to 0 can consume a large amount of RAM. |
Re: Is property indexing multi-threaded
The new build does seem to improve somewhat
Drives are queried concurrently while indexing properties, there seems to have a little effect though:
Previous build indexing time:17:23
New build indexing time:15:50
After indexing from the faster drives everything is bottlenecked by the slower HDD at ~3Mb/s which is in line with my HDD's bench for random seek. nothing could be done there...
However, the new build has a couple of issues:
1.With an existing database (from the previous build), shows properties only when indexing is completed, deleting the database fixes this issue.
2. Crash dump when rebuilding the index, at the point where property indexing should start. It's inconsistent though - happened 3 out of 4 times.
(dumps were sent via email) - Note: is it possible the debug log filename would have some random seed/timestamp appended? I keep overwriting those by mistake.
Thanks for the Quick response!
Drives are queried concurrently while indexing properties, there seems to have a little effect though:
Previous build indexing time:17:23
New build indexing time:15:50
After indexing from the faster drives everything is bottlenecked by the slower HDD at ~3Mb/s which is in line with my HDD's bench for random seek. nothing could be done there...
However, the new build has a couple of issues:
1.With an existing database (from the previous build), shows properties only when indexing is completed, deleting the database fixes this issue.
2. Crash dump when rebuilding the index, at the point where property indexing should start. It's inconsistent though - happened 3 out of 4 times.
(dumps were sent via email) - Note: is it possible the debug log filename would have some random seed/timestamp appended? I keep overwriting those by mistake.
Thanks for the Quick response!
-
- Posts: 192
- Joined: Fri Nov 28, 2014 3:58 pm
Re: Is property indexing multi-threaded
What is the max index request value for default indexing options in settings > indexes (ie file size, date created, etc)?
I'd like to match indexed_property_max_request with this if possible.
I'd like to match indexed_property_max_request with this if possible.
Re: Is property indexing multi-threaded
File size, date modified properties are different, these are read during the initial index. Usually from the NTFS MFT.What is the max index request value for default indexing options in settings > indexes (ie file size, date created, etc)?
File size, date modified properties are read using separate device threads (if supported).
You can use the value of 0 for indexed_property_max_request to request all properties.
The default value is 1024.
properties are indexed in "chunks".
indexed_property_max_request determines how many files are in these "chunks".
while these chunks do support multiple threads, they are usually filed with files from the same device.
Thanks for the information aviasd,
Multiple thread support for indexing properties will need a lot more work..
If you use 0 for indexed_property_max_request there is currently some oddness when you exit and restart Everything.. the property index progress will no longer be shown, although Everything will continue to index your properties.
I'll look into the issue with the properties only showing after the indexing is complete.
Thank you for the mini crash dumps.2. Crash dump when rebuilding the index, at the point where property indexing should start. It's inconsistent though - happened 3 out of 4 times.
(dumps were sent via email) - Note: is it possible the debug log filename would have some random seed/timestamp appended? I keep overwriting those by mistake.
All of the mini crash dumps showed Everything trying to access an file that is not longer in memory.
I have fixed an issue with Everything not clearing results correctly in Everything 1.5.0.1249a.
Please let me know if the issue persists.
Added to my TODO list: add timestamp to log filename.Note: is it possible the debug log filename would have some random seed/timestamp appended? I keep overwriting those by mistake.
Re: Is property indexing multi-threaded
Hi
In the new build, I'm not having the issue you are describing - "no progress is shown" - I do have progress shown.
My issue is that the property columns do not get populated ( nothing is shown in the UI for those columns) until everything completely finished indexing in the background.
When it's finished all the properties appear and I can query based on a column. E.G:
Code: Select all
width:>1
But while indexing,
Code: Select all
width:>1
( I know I've had some images indexed prior to the query since I saw some under options->properties )
Deleting the database and starting fresh, resolves this, but force rebuild has this issue
Update: Whoops missed this line there, thanks for that.
Update2: Ah, you meant progress not shown if closed while indexing, yep I do see this as wellI'll look into the issue with the properties only showing after the indexing is complete.
After two attempts I did not have a crash dump, so it seems to be working now.I'll look into the issue with the properties only showing after the indexing is complete.
Thank you for the mini crash dumps.2. Crash dump when rebuilding the index, at the point where property indexing should start. It's inconsistent though - happened 3 out of 4 times.
(dumps were sent via email) - Note: is it possible the debug log filename would have some random seed/timestamp appended? I keep overwriting those by mistake.
All of the mini crash dumps showed Everything trying to access an file that is not longer in memory.
I have fixed an issue with Everything not clearing results correctly in Everything 1.5.0.1249a.
Please let me know if the issue persists.
Thanks!
-
- Posts: 192
- Joined: Fri Nov 28, 2014 3:58 pm
Re: Is property indexing multi-threaded
Thanks for the info, but for some reason not wrapping my head around how it works. I have my files scattered around 8+ drives and was not looking to request all properties, just the few custom I have set now.void wrote: ↑Tue Mar 23, 2021 11:07 amFile size, date modified properties are different, these are read during the initial index. Usually from the NTFS MFT.What is the max index request value for default indexing options in settings > indexes (ie file size, date created, etc)?
File size, date modified properties are read using separate device threads (if supported).
You can use the value of 0 for indexed_property_max_request to request all properties.
The default value is 1024.
properties are indexed in "chunks".
indexed_property_max_request determines how many files are in these "chunks".
while these chunks do support multiple threads, they are usually filed with files from the same device.
If I set this to 0, it will read properties from all drives simultaneously, thus speeding up the process?
Re: Is property indexing multi-threaded
Thank you for your feedback JTCGiants56 and aviasd,
Yes, this will speed up your initial "Indexing Properties" at the cost of higher RAM usage.If I set this to 0, it will read properties from all drives simultaneously, thus speeding up the process?
This should be fixed in the Everything 1.5.0.1250a.My issue is that the property columns do not get populated ( nothing is shown in the UI for those columns) until everything completely finished indexing in the background.
Re: Is property indexing multi-threaded
Confirmed
Re: Is property indexing multi-threaded
Everything 1.5.0.1251a makes the following changes:
- Removed indexed_property_max_request -all indexed properties are now requested.
- Use multiple threads for SSDs by default.
- Fixed an issue with the property indexing progress being lost after exiting.
Re: Is property indexing multi-threaded
Changes in indexing performancevoid wrote: ↑Sat Mar 27, 2021 6:37 am Everything 1.5.0.1251a makes the following changes:
I will trial these settings, and if it hurts system performance too much I will revert these changes.
- Removed indexed_property_max_request -all indexed properties are requested.
- Use multiple threads for SSDs by default.
- Fixed an issue with the property indexing progress being lost after exiting.
Indexed:
Width(images+video),length(video) - 451,509 items
Updated results (Dunno what happened with the first attempts)
Everything 1.5.0.1251a = 07:14 minutes
Everything 1.5.0.1248a /indexed_property_max_request=0 = 08:06 minutes.
So, some improvement after all
Re: Is property indexing multi-threaded
Thank you for your feedback aviasd,
I still need to make some improvements to the RAM usage.
Everything will use about 100MB (for 450,000 files) to request all this information. Once all properties are indexed, this memory is returned to the system.
This is not so bad for your case. However, for users indexing millions of files this might be an issue.
I still need to make some improvements to the RAM usage.
Everything will use about 100MB (for 450,000 files) to request all this information. Once all properties are indexed, this memory is returned to the system.
This is not so bad for your case. However, for users indexing millions of files this might be an issue.
-
- Posts: 192
- Joined: Fri Nov 28, 2014 3:58 pm
Re: Is property indexing multi-threaded
I still have "/indexed_property_max_request=0" set because I wanted properties to index all my drives faster. Will this (not sure if it already is) eventually be a built in option, and I can set this property back to its normal status?
Re: Is property indexing multi-threaded
the indexed_property_max_request setting was removed in 1251a.
Everything will now request all properties for indexing by default.
Everything will use a thread for each device by default.
Everything will use multiple threads for devices that do not 'incur a seek penalty' by default.
Everything will now request all properties for indexing by default.
Everything will use a thread for each device by default.
Everything will use multiple threads for devices that do not 'incur a seek penalty' by default.
-
- Posts: 192
- Joined: Fri Nov 28, 2014 3:58 pm
Re: Is property indexing multi-threaded
Great, thanks for confirming!void wrote: ↑Sun May 23, 2021 3:25 am the indexed_property_max_request setting was removed in 1251a.
Everything will now request all properties for indexing by default.
Everything will use a thread for each device by default.
Everything will use multiple threads for devices that do not 'incur a seek penalty' by default.