Repository navigation
Conversation
Add an external tablet file type and persist its marker in tablet metadata while preserving compatibility with existing file references. Modified GC to track external candidates, retain files with live tablet or scan references, and delete them when unreferenced. Updated Volume replacement and disk usage for external paths. Added unit and integration coverage for metadata, GC, scans, compactions, and volume replacement. This change is related to apache#6570. Follow-on changes will modify bulk import to use this feature.
|
This change could allow a user to reuse file paths over time. When Accumulo moves files it also selects a unique name that it will never reuse. This is important for caching file data as we use a cache key of |
Agreed. I think the pattern here would be for the user to write their rfiles to a directory, bulk import the directory, and never reuse it. The rfiles in that directory would get compacted and removed over time. Edit: We could also prioritize external files for compaction |
|
Requiring the user to remember to never reuse a directory over long periods of time would be very easy overlooked and if it is overlooked the consequences could be catastrophic. Maybe another approach we could take is to add a new API to allocate a bulk dir for a table, then users could write files to this bulk dir and import it. Then there is more assurance that the uri is unique. |
|
Even if a file is compacted, its blocks can still live in the caches of tablet and scan servers for an indeterminate amount of time. |
That still leave a time window for chaos if the file gets in the cache. Also we want to use compaction ratio for compaction selection as much as possible to get the benefit of logarithmic compaction work. |
Ok, so I can look at that in the follow-on PR that modifies the bulk import code to take advantage of these external files. |
We would not necessarily need external files if the new API to allocate a dir creates a dir in the table dir. |
|
The absolute paths feature should make it so that we already support external tablet files outside of our volume path conventions. If there's code that doesn't properly handle this, and makes assumptions about paths, I'd consider that a bug in the absolute path feature. I think that's the whole point of having absolute paths, isn't it? Scenario 1:
Scenario 2:
|
I pushed some other changes because I had them locally. But, if I can validate your assumptions that the current code should work with absolute file URLs once they are created, then we can just close this PR. |
Created PR #6611 to make changes to existing code and add tests to ensure that absolute file URLs should just be honored in the existing code paths. |
Add an external tablet file type and persist its marker in tablet metadata while preserving compatibility with existing file references. Modified GC to track external candidates, retain files with live tablet or scan references, and delete them when unreferenced. Updated Volume replacement and disk usage for external paths. Added unit and integration coverage for metadata, GC, scans, compactions, and volume replacement.
This change is related to #6570. Follow-on changes will modify bulk import to use this feature.
Assisted-By: OpenAI GPT-6 Sol
Assisted-By: OpenAI GPT-6 Luna