-
Notifications
You must be signed in to change notification settings - Fork 752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking issue for Cache-service #6786
Comments
beside to accelerating block retrieve from s3, the cache service may also plays a good place to store the spilled data from join statemets's shuffle, thus can reduce the OOM caused by skewed joins. |
AFAIK, the latest decision about the temp data generated by a To support such a requirement, the cache server has to be able to let an application explicitly disable auto eviction for some data. And the application has to purge these caches explicitly when the Maybe it can be a future feature that objects have durability configuration? |
I think
Should databend have special knowledge for caching services? Maybe they should be handled inside opendal client? |
Based on the current design, this feature will be resolved by
|
Do you mean that
I agree:D |
OpenDAL's opencache client can handle the load balancing job and accept some options: [cache]
type = "opencache"
[cache.opencache]
endpoints = ["192.168.0.2", "192.168.0.3"]
hash_methods = "ConsistentHash"
|
adding a namespace-like configuration may make operations on a multi-tenant deployment easier:
|
This tracking issue is composing two things:
I split them into #6803 |
I created a feature request for opencache: databendlabs/opencache#3 |
I'd prefer not to introduce namespace into the server side:
Maybe it's better to be done on the client side. |
oh, do not really need split the storage physically, it can be just a builtin key prefix in the internal storage, like the bucket in boltdb: https://github.com/boltdb/bolt#using-buckets the operational functionality like quota do not need to be built in the 1st phase, but a design with namespace built-in would make the life easier when multi-tenant workload get into place. |
It's different from a db such as bolt: the access load pattern affects the internal data layout. A tenant who reads a lot from the cache server will aggressively evict every piece of other user's data. It's not difficult to have a namespace inside the cache server, but it can not be used for throttling without physical isolation. |
do our cache service planned to have a proxy layer like twemproxy ? if it is, I guess we can do something in the proxy layer to take some control. it'd be easy to rate limit or restrict memory size in the proxy layer. if not, it's hard to maintain the namespace concept in server side IMHO, there'd be no such a central "server side" but many peers in a distributed manner q.q |
IMHO a proxy layer do have its complexities (especially in HA) and need not to be a top priority work. another way we may consider is a sidecar proxy to coordinate the multi tenant usages, which works more likes a client, it encapsulates the complex parts like distributed coordination & billing logic, just offering a simple GET/SET rpc interface. maybe likes this: https://github.com/facebook/mcrouter , I remember it's deployed on each host machine to forward mc requests to a big mc pool, and have some additional features like failover, local cache, stats, etc. |
Hmm... no such plan yet. Meanwhile the proxy job is done by the opendal. |
I agree that Let's implement the cache service and databend's cache mechanism first. After that, we can have a more profound and solid code base for improvement. What do you think? @flaneur2020 @drmingdrmer |
Not used so far. Feel free to re-open it when needed. |
Cache service will be a cluster of data block cache servers sitting in mid of databend-query and underlying storage service to provide fast data block retrieving.
Server-side tasks
The following are still some tracking-issue level tasks:(
Chunk
store. See archObject
store. See archAccess
store. See archManifest
store. See archDatabend side tasks could be found at: #6803
The text was updated successfully, but these errors were encountered: