Everything.db - How Why When

General discussion related to "Everything".
Post Reply
therube
Posts: 4979
Joined: Thu Sep 03, 2009 6:48 pm

Everything.db - How Why When

Post by therube »

Everything.db - How Why When

Curious.

Obviously the .db is updated in (near) realtime.
Yet if you were to check the .db file date/time, it is almost always not current, very often days old.

So how is it updated, when is it updated, why is the file date/time not as expected?

(I thought perhaps ADS, but that is not it.)

Some other data stream that is only sync'd at certain intervals?
void
Developer
Posts: 16756
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything.db - How Why When

Post by void »

The "Everything" database is a cache of all your NTFS Master File Tables (MFTs).
It is not a vital file and can be deleted.
So how is it updated
When you run "Everything", it reads the database from disk into memory.
If the database does not exist, or is out of date "Everything" will create a new one.
Once the database is loaded into memory, "Everything" no longer requires the Everything.db on the disk.

While "Everything" is running it will maintain the database in memory.

When you Exit "Everything", the entire database is recreated on the disk from the database in "Everything"'s memory.
"Everything" will save the new database to Everything.db.tmp before overwriting Everything.db.
when is it updated
When you run "Everything" and the database does not exist, or was out of date a new database is created on the disk.
When you exit "Everything" the database in memory is saved to the database on disk.
why is the file date/time not as expected?
Exit "Everything" and check if the Everything.db creation/modified date is updated.
With "Everything" 1.2.1.451a the database filename is Everything.ComputerName.UserName.db.

"Everything" does not use ADS.

Notes:

Future versions will not save the database to disk after rescanning all volumes. The database on disk will only be updated after exiting "Everything".

If you run "Everything" from a removable volume the database uses the Everything.ComputerName.UserName.db filename, otherwise the Everything.db filename is used.

In future releases you will be able to disable the database on disk, "Everything" will need to recreate the database in memory every time you run it.

If you shutdown Windows with "Everything" running in debug mode the database is not saved.
therube
Posts: 4979
Joined: Thu Sep 03, 2009 6:48 pm

Re: Everything.db - How Why When

Post by therube »

Informative, thanks.

I would think that some would want a "Sync .db to disk" option, so that they can then (physically) backup the .db (& without physically exiting Everything), with the ability to then read its contents "non-live", no update - like when using with v1.2.1.389b of Everything.
redhab
Posts: 3
Joined: Wed Dec 30, 2009 3:56 am

Re: Everything.db - How Why When

Post by redhab »

The "Everything" database is a cache of all your NTFS Master File Tables (MFTs).
It is not a vital file and can be deleted.
Is there any way to read the list of files in this database with another program? Is it a generic database file or is it a specific binary format for everything.

The reason I ask is I am trying to recover the file list of a system that had external drives that were stolen. These drives were indexed by everything.
therube
Posts: 4979
Joined: Thu Sep 03, 2009 6:48 pm

Re: Everything.db - How Why When

Post by therube »

Post Reply