Directory-global metadata information (everything needed for the list target, both simple and detailed) is encoded via custom string-compression (OS-directory name and length restriction safe, probably would even work under Windows 95 :rofl:), e.g. (first one without metadata, second one with):
└─ $ ▶ ls -al testdb/eth1/2016/02/
total 0
drwxr-xr-x 1 fako fako 192 Feb 24 14:28 1456358400
drwxr-xr-x 1 fako fako 192 May 9 13:17 1456444800_oX-1-aVB1-8PILs4-AK9rM2-0Gt8-05he
100% backwards-compatible reading (with one small caveat for local queries: the goQuery version has to be at least the same as the goProbe version since the old goQuery version isn't aware of the suffix (and will not ignore it). This will not affect global-query or the API though since that one the DBWorkManager inside goProbe itself to read from the DB and hence will automatically receive valid data no matter what format the respective local DB will be in. So this in reality isn't a restriction, because it's rather unlikely that you update goProbe on your local system but not goQuery...
Zero-conversion transition for goProbe: Once updated, the DB writer will simply write the metadata for the current directory - old ones are untouched by default. Manual conversion can be done with the analyze-meta tool for now (not the final solution, but it was a simple addition, so I opted for not writing yet another tool) in case someone wants to benefit from the additional performance for the whole history.
Performance for the list target is 10-15 fold, depending on the storage / partition type.
Drive-By: Added list target query log in this commit.
Features:
list
target, both simple and detailed) is encoded via custom string-compression (OS-directory name and length restriction safe, probably would even work under Windows 95 :rofl:), e.g. (first one without metadata, second one with):goQuery
version has to be at least the same as thegoProbe
version since the old goQuery version isn't aware of the suffix (and will not ignore it). This will not affectglobal-query
or the API though since that one theDBWorkManager
insidegoProbe
itself to read from the DB and hence will automatically receive valid data no matter what format the respective local DB will be in. So this in reality isn't a restriction, because it's rather unlikely that you updategoProbe
on your local system but notgoQuery
...goProbe
: Once updated, the DB writer will simply write the metadata for the current directory - old ones are untouched by default. Manual conversion can be done with theanalyze-meta
tool for now (not the final solution, but it was a simple addition, so I opted for not writing yet another tool) in case someone wants to benefit from the additional performance for the whole history.list
target is 10-15 fold, depending on the storage / partition type.list
target query log in this commit.Closes #282