Yo all,

Looks like I've jumped on this band wagon a little late but allow me
to throw in my thoughts. Firstly, I'm totally against item-level
authentication.

I see KaiGai Kohei's motivation to want this but in the context of
memcached, this is the applications job. I think it could upset mid to
large scale memcached users if we added this. They're using it because
they love the simplicity and the high throughput of memcached. They
can take care of security themselves. I guess things are different in
a hosting environment but there are different solutions for this which
Dustin has been looking into.

So the question is, is it worth the effort for the memcached project?

> One question. Is the storage engine an appropriate layer for access
> controls on item level?

Yes. This wouldn't be too difficult to pull off with  Binary Protocol
+ Engine API. You could create a scramle buffer and send that with the
most appropriate binary protocol field (worst case, use the reserve
field). This scramble buffer can be appended into the key of the item
inside your engine. So you could pull this off with keys with the
following structure:

  <key_value><scramble_buffer> (or vice versa).

Pretty much you're free to do anything in the engine. Memcached is
only a darn efficient network interface and protocol parser in the
context of Engine API.

Cheers,
Toru

2010/1/7 KaiGai Kohei <[email protected]>:
> (2010/01/07 13:02), Matt Ingenthron wrote:
>> dormando wrote:
>>>> Getting down to the item level would be tough to accept due to the
>>>> overhead
>>>> involved, one would think though. There may be some ways of getting
>>>> closer to
>>>> access control though without going down to the item level.
>>>
>>> This seems like it'll be solved by an engine dealio. Mapping a user to an
>>> internal instance of the storage system. Sort of like running multiple
>>> instances, *cough*. Getting super granular access levels for a web cache
>>> (more than a few dozen users) would be insane, but if someone really
>>> wants
>>> to they could implement a storage engine for it.
>>
>> My thoughts exactly. That's what engine is for!
>
> Does the engine mean something pluggable or modular?
> If so, it is similar to what I think.
>
> One question. Is the storage engine an appropriate layer for access
> controls on item level?
>
> It might be possible to provide strict separation between users.
> Is it possible to provide read-only or append-only rules for a certain
> users in the item level granularity?
>
>>> It'd be incredibly inefficient on memory, compared to keeping the number
>>> of users down or even running multiple instances.
>>
>> Only if you were trying to go all the way down to the item level. It's
>> possible to have groups of slabs that are dedicated to one label/auth or
>> something like that, right?
>
> It may be possible. However, if the usage of slabs are not balanced,
> it may remove cached object, although we have unallocated cache in
> the slab owned by other label/auth. right?
>
> Thanks,
> --
> OSS Platform Development Division, NEC
> KaiGai Kohei <[email protected]>
>



-- 
Toru Maesaka <[email protected]>

Reply via email to