[Bug debuginfod/30221] Negative cache should differentiate failure types

2023-03-13 Thread fche at redhat dot com via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=30221

Frank Ch. Eigler  changed:

   What|Removed |Added

 CC||fche at redhat dot com

--- Comment #1 from Frank Ch. Eigler  ---
Even a 404 error may be transient, as a server may just not have gotten around
to indexing new content yet.  Other transient errors may persist awhile.  I
don't know of any unambiguous winning policy here.

As to the question that, if such a policy were formulated, how could the
results be represented in the filesystem:  xattrs, yeah maybe.  But even
simpler would be to have the code set the mtime or ctime of the 0-length file
to a cause-related artificial timestamp that will inform the "cache_miss_s"
expiry calculations.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug debuginfod/30221] Negative cache should differentiate failure types

2023-03-13 Thread vi at endrift dot com via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=30221

--- Comment #2 from Vicki Pfau  ---
404 and the like *may* be transient, but the fact of the matter is that *most*
of the time it won't be And it's a cache, not a definitive answer saying this
will never exist. Having a 404 cache for 10x the amount of time as a Ctrl-C
would be a benefit to users 99% of the time, if not more. You don't need to
overgeneralize to a surefire 100% of the time for something that's already
"soft" like a cache. I'm already dealing with gdb taking well over 30 seconds
to start running a program with a bunch of shared object dependencies that
aren't in debuginfod...only to have to do that again in 10 minutes because
there's no way for the cache to say "this probably won't appear in the short
term." Setting cache_miss_s higher works, but is a workaround.

Using an artificial timestamp to fake out the cache_miss_s expiry is a hack.
There's no other way of describing it. You're trying to wedge down additional
information to a dumber system instead of making the system smarter if you go
for that approach. Your filesystem representation works for the small, simple
case you have here, but it won't scale if you try and extend the system with
any metadata at all. You have one inode per negative cache file instead of one
entry in, e.g. a SQLite database, which you can add additional columns to.
xattrs are still a bit of a kludge but at least aren't trying to spoof
information to fool a system unaware of complexity existing.

-- 
You are receiving this mail because:
You are on the CC list for the bug.