On Feb 5, 2010, at 3:40 AM, KaiGai Kohei wrote:
> (2010/02/04 18:32), Toru Maesaka wrote:
>> Hi!
>>
>> Thanks for your proof of concept.
>>
>>> From observing your patch, you should be able to develop this as an
>> engine once we make changes to the modular engine subsystem based on
>> your feedback. Your feedback on get() being called inside another
>> function is a good point (thanks!) and I believe some of us have come
>> to an agreement to refactor that area. As for getting your hands on
>> the connection socket, Trond is willing to add it to the API.
>
> This is an off topic.
>
> Is the current get() interface also problematic for the original engine
> purpose? IIUC, the framework requires get() method two roles.
> 1. Ensure existence of the specified item on the storage system
> 2. Load data contents of the specified item into the local memory
>
> As long as all the items are always on local memory (like default engine),
> it is not a matter, because all the items are always on the local memory.
> However, if the engine module supports backend storage, the second job
> may require us unnecessary cost when client tries to delete an item.
>
> It is not necessary to load all the data contents when we delete an item.
I'm changing the remove call to look like:
ENGINE_ERROR_CODE (*remove)(ENGINE_HANDLE* handle,
const void* cookie,
const void* key,
const size_t nkey,
const uint64_t cas);
Cheers,
Trond