Comments (10)
the PR #35 would actually also make my life manageable :)
from ccache.
LayeredCache isn't otherwise convenient? (I could imagine a lot of cases where it isn't, just double checking).
If you specifically want a prefix delete, I think I'd like to add a DeletePrefix() method since we could do that a lot more efficiently (don't have to collect all the keys). Thoughts?
from ccache.
Hi,
I've looked at LayeredCache, but I'm sure how it could help me in that particular case, but maybe I'm missing something
Adding DeletePrefix() would be absolutely wonderful
from ccache.
I should have looked more into this before commenting. Only way to avoid collection is to hold a long-lived write lock on the bucket.
What do you think of this implementation:
356e164
I went for a shorter-lived write lock in exchange for more memory (collecting) and cpu (double iteration).
Doesn't support the onDelete callback right now, not sure if it should or not.
from ccache.
woh! that was fast :) For my very use case your implementation seems fine since I don't have millions of items and I prefer sucking a bit more on cpu rather than longer locking.
Let me give it a try on our product
from ccache.
I'll polish it up (documentation + merge) in the next couple days
from ccache.
Would it be possible to make that api DeletePrefixes(key ...string)? If i need to delete multiple prefixes, we would collect all the keys at once
from ccache.
I believe I can close my pr since this is a way more elegant way to achieve what we need. What do you think?
from ccache.
Sounds good :)
from ccache.
I just tried this patch in our app it works perfectly and I removed half of my code. I like that :)
from ccache.
Related Issues (20)
- Fetch() is not atomic HOT 2
- ability to set an item that never expires HOT 2
- would like a version of Fetch that doesn't require a closure HOT 4
- Stop can cause race detector errors in testing HOT 14
- Bug report: item leak when c.promotables is busy HOT 1
- Bug report: TrackingGet goroutine unsafe with onDelete func HOT 1
- How to get the max performance? HOT 3
- Not Promote on Get HOT 2
- How to promote directly saved item? HOT 1
- OnDelete not called in LayeredCache.gc
- High lock contention in LayeredCache.set with few primary keys HOT 1
- memory leak HOT 3
- New release implemented via generics? HOT 1
- Bug Report: v3.0.0 gc may failed HOT 5
- Bug Report: v3.0.1 gc may failed
- When max size is 3, set() not delete superfluous data HOT 4
- Memory leak during cleanup
- Generic key type HOT 2
- ttl not working HOT 4
- Fix flaky test HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ccache.