Comments (6)
@jodydonetti you might be interested in this; am I on entirely the wrong path here? would any of this be useful to you? is any of it "that's so close to being useful, but not quite" ?
from aspnetcore.
@sebastienros might also be of interest to you
from aspnetcore.
Hi @mgravell , I'll look into this later today, can't wait to see the details of this 😬
Will update asap.
from aspnetcore.
I understand this proposal is to receive invalidations from the distributed cache layer (aka L2) and would not support invalidations through Kafka or "SQL polling". That's an available feature on Redis but is that a common feature from other NoSQL database systems? With the HybridCache proposal (#53255), what exactly would be the blocker to implement a Redis channel-based invalidation mechanism?
from aspnetcore.
@verdie-g the entire point is to provide an abstraction upon which any L2 could provide invalidations, if it is so capable. The same thing would be possible in SQL polling by adding a couple of tables - one for the tag last-known expiration state, and one for some backlog of invalidations (the latter could be fed via a trigger or explicit code), and having a periodic timer that simply checks for new data (using an incrementing counter) - that could be every N seconds, configurable. There may also be some SQL mechanism involving SQL service-broker queues, but I don't think (from memory) that this has the correct multi-receiver semantics.
I'm not a Kafka expert (I've simply never had cause to dabble), but assuming that Kafka queues support a mode that allows multiple recipients to receive the same message, such a queue could absolutely be used as the backbone for invalidation for an L2 backend that wanted to do so. For comparison, the same intent could also probably be described by Redis "streams", which are, IIRC, broadly similar to Kafka queues.
With the HybridCache proposal (#53255), what exactly would be the blocker to implement a Redis channel-based invalidation mechanism?
Not fully sure I understand the question, but the biggest blocker is the lack of an abstraction API that allows the L2 backend (currently described by IDistributedCache
) to communicate the intent of a channel-based invalidation mechanism that HybridCache
can then consume. Which is exactly the gap that this proposal is trying to plug ;p
from aspnetcore.
Thank you for submitting this for API review. This will be reviewed by @dotnet/aspnet-api-review at the next meeting of the ASP.NET Core API Review group. Please ensure you take a look at the API review process documentation and ensure that:
- The PR contains changes to the reference-assembly that describe the API change. Or, you have included a snippet of reference-assembly-style code that illustrates the API change.
- The PR describes the impact to users, both positive (useful new APIs) and negative (breaking changes).
- Someone is assigned to "champion" this change in the meeting, and they understand the impact and design of the change.
from aspnetcore.
Related Issues (20)
- Allow BL0005 warning suppression
- Blazor InputDate does not work properly HOT 3
- ArgumentException while OutputCache is cached HOT 3
- Perf improvement: connectionclose
- Perf regression: fortunes_ef, plaintext
- Blazor hybrid with WPF, memory leak. HOT 5
- The � symbol "replacement character issue" HOT 2
- Better UX - show "loading" (anything) while app is starting up the .NET WebAssembly runtime (for AutoRender, prerender false) HOT 4
- Blazor: Error on adding new scoped CSS since last update HOT 3
- Validation Model not compiling HOT 2
- Perf improvement: json
- Perf regression: fortunes
- Perf improvement: ApiCrudUpdateProduct
- Un-serious Bug?? HOT 6
- [Perf] Slow E2E tests due to unrecycled chrome instances
- Large remote videos fail to load in Blazor
- ee84ffdd685e0b8ebe1e61e44d47ac7e69d0d146
- Perf improvement: fortunes, fortunes_ef
- Perf regression: plaintext
- Adding WebAssembly to Blazor Web App template fails: dotnet.js not found HOT 3
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 aspnetcore.