Memoization trades compute time for memory: you reduce CPU cost by 90% _at the cost_ of some memory. The author measured one, but it doesn't look like they measured the other.
It's an important detail to take into account. I'm sure this optimization makes sense, and the size of additional memory is not that big, but I believe it's good to "measure, not assume" as some load bearing model might say.
danudey
Very confused by the article. Is memoization new to the eBPF world? Did the author only just learn about it and wanted to use it?
In reality, the article is about correctly caching a path:policy mapping while working within the limitations of eBPF and Linux filesystem semantics. If you read the article in that context rather than wondering 'what is new and interesting about memoization in eBPF?' it's a lot more interesting.
I probably would have titled this 'Calculating cache keys for filesystem paths in eBPF' or something, since that's the cool and interesting problem that was solved.
show comments
Allybag
Seems like the 90% faster case is opening the same exact file every single time, which seems like a not super standard use case that will benefit the most from this caching. On an example where you never open the same file twice this will presumably be slightly slower than before, as you’re doing the same thing but writing to a cache.
So you can make the headline “Drop performance cost by 90%!” or “Modestly increase performance cost” and be correct but I don’t think either is really a reasonable description of the change.
brookman64k
How is the cache invalidated when:
- The permissions change?
- Directories are moved?
- Hard-links are added?
- Things are deleted?
Also: Is the cache limited in size?
show comments
ComputerGuru
How do your path-only rules handle the many approaches for loading a file but making it appear to have a different path, such as bind mounts for one example?
bawolff
Umm, wouldn't this break if you moved a directory that is somewhere up the path? Seems like a security issue if you cache what policy applies but the policy could change by user action.
show comments
mrbluecoat
So you highlight "Not AI Gen" but you call the solution "Agent"? :D
show comments
youngtaff
OT but… it’s nice to see someone use a legible font with good character height and line spacing
Makes the post a joy to read
yxhuvud
And uh, what happens if the active user permission changes?
self_awareness
TL;DR - use in-memory cache instead of expensive database lookups on every iteration
asdfman123
I don't know what any of these acronyms mean. With just a little more explanation the article could be accessible to a wider developer audience.
show comments
visarga
> Not AI Gen
I am not sure how to react ... of course good thing it's human-gen, but I still like a few AI passes over it to tighten it up. LOL
Memoization trades compute time for memory: you reduce CPU cost by 90% _at the cost_ of some memory. The author measured one, but it doesn't look like they measured the other.
It's an important detail to take into account. I'm sure this optimization makes sense, and the size of additional memory is not that big, but I believe it's good to "measure, not assume" as some load bearing model might say.
Very confused by the article. Is memoization new to the eBPF world? Did the author only just learn about it and wanted to use it?
In reality, the article is about correctly caching a path:policy mapping while working within the limitations of eBPF and Linux filesystem semantics. If you read the article in that context rather than wondering 'what is new and interesting about memoization in eBPF?' it's a lot more interesting.
I probably would have titled this 'Calculating cache keys for filesystem paths in eBPF' or something, since that's the cool and interesting problem that was solved.
Seems like the 90% faster case is opening the same exact file every single time, which seems like a not super standard use case that will benefit the most from this caching. On an example where you never open the same file twice this will presumably be slightly slower than before, as you’re doing the same thing but writing to a cache. So you can make the headline “Drop performance cost by 90%!” or “Modestly increase performance cost” and be correct but I don’t think either is really a reasonable description of the change.
How is the cache invalidated when: - The permissions change? - Directories are moved? - Hard-links are added? - Things are deleted? Also: Is the cache limited in size?
How do your path-only rules handle the many approaches for loading a file but making it appear to have a different path, such as bind mounts for one example?
Umm, wouldn't this break if you moved a directory that is somewhere up the path? Seems like a security issue if you cache what policy applies but the policy could change by user action.
So you highlight "Not AI Gen" but you call the solution "Agent"? :D
OT but… it’s nice to see someone use a legible font with good character height and line spacing
Makes the post a joy to read
And uh, what happens if the active user permission changes?
TL;DR - use in-memory cache instead of expensive database lookups on every iteration
I don't know what any of these acronyms mean. With just a little more explanation the article could be accessible to a wider developer audience.
> Not AI Gen
I am not sure how to react ... of course good thing it's human-gen, but I still like a few AI passes over it to tighten it up. LOL