[359] remove use of plugin-driven access time tracking#361
[359] remove use of plugin-driven access time tracking#361trel wants to merge 7 commits intoirods:mainfrom
Conversation
alanking
left a comment
There was a problem hiding this comment.
According to semantic versioning, I believe that removal of the access_time AVU constitutes a major release as existing deployments may be relying on it in custom violating queries. That would mean that this change moves the plugin to 6.0.0. Just saying that out loud.
That's correct. @trel Have you thought about whether iRODS 5's atime implementation aligns with storage tiering's original behavior and requirements? How do the various atime grid configuration options affect storage tiering? Are we losing anything by switching to the atime information managed by the server? The server manages atime on the replica level, but storage tiering manages atime on the logical level. How does that affect the plugin? |
|
good questions... the most relevant option appears to be the logical/physical distinction... i think shouldn't matter... but we should probably think through that out loud a bit more together. |
|
local tests are NOT green. apologies. need to discuss the move from a migration flag on an existing AVU to not being able to assume any AVUs... might have to move to genquery2 for the use of NOT or perhaps EXCEPT... |
|
the problem was a comparison of our zero-padded timestamps in the catalog to the non-zero-padded timestamps in this plugin. padding consistently made the comparison correct and the tests pass again. |
|
added the mtime check. clang-format unhappy, i think irrationally. not sure where the other checks went. |
|
i removed the offending whitespace, and now it's MORE angry... the rest is green. |
It seems that file got the tab treatment a little prematurely (my bad). Just make it all tabs and ignore clang-format for that file. |
|
that's the fun part... i believe it is already all tabs. |
Right, that's what I mean. Seeing as the diff in |
|
confirmed my test was working, but because i had tweaked the tier time, the other tests in the same class failed. have now gone back to the original tier time and adjusted my test edits... passing at bench... awaiting greens... |
|
have reviewed all threads....
so, needing some documentation and then this is ready. |
|
I think it's worth going through the training slides to see how things have changed. It might reveal something which isn't captured by this work. |
|
auditing the ugm2025 storage tiering training slides... i see five that need updates...
|
|
ready to squash? |
|
Sure, let's squash |
|
squashed for high-quality minus. |
alanking
left a comment
There was a problem hiding this comment.
Please let @korydraughn have another look and then I think this is good to go.
korydraughn
left a comment
There was a problem hiding this comment.
Didn't spot anything unusual.
Let's hold on merging this until after UGM.
There was a problem hiding this comment.
The README does not highlight that writing to a data object no longer triggers a restage.
The admin now has to think about mtime if they care about writes. Keep in mind that only applies to tiering out.
Consider linking to the 5.0.0 documentation for atime at docs.irods.org.
| fmt::format("select DATA_NAME, COLL_NAME, USER_NAME, USER_ZONE, DATA_REPL_NUM where " | ||
| "DATA_ACCESS_TIME < '{}' and DATA_MODIFY_TIME < '{}' and DATA_RESC_ID in ({})", |
There was a problem hiding this comment.
This is unrelated to the work in this PR, but we might need to revisit this catch-block. If an exception is caught by this block, the plugin uses a backup/fallback violating query. What if the admin uses criteria that is significantly different from the fallback?
That doesn't seem correct. Thoughts?
iRODS 5.0.0 introduced server-tracked access time for every replica. The access time tracking provided by this repository is no longer needed and has been removed. If a deployment had a custom query defined that checked this AVU-based access time, it will need to be updated as any new objects will not have that metadata added and available for matching. Check the README.md for an example. This commit removes the access_time_attribute from the plugin configuration.
saw a complete local run pass. <-- edit: this was not true. reading is important.
removed lots of tests, no new tests, updated some tests.
haven't seen it green in GHA, yet.