Hi,

Yeah I was exploring a more complex functionality in memcached which I
believe is not there. And I may have to write some engine  for my work
as suggested. Thanks for your replies.

Yours sincerely,
Vishal Garg
Undergraduate
IIIT-Hyderabad
India

On Sun, Jun 5, 2011 at 1:00 AM, Dustin <dsalli...@gmail.com> wrote:
>
> On Jun 4, 12:25 pm, vishal garg <vishal17g...@gmail.com> wrote:
>
>> Thanks for the solution. But I was looking for something more
>> efficient. Suppose you have an object which you need very frequently,
>> so you store it into memcached. But that object may change, so you may
>> need to update. Now there are two possible approaches:
>>
>> 1)You update the database accordingly and store the newly formed
>> object in the memcached.//I think this has been suggested
>>
>> 2)You update the object in the cache and leave the database untouched.
>> But here you update the database whenever the object is removed from
>> cache incase the object changed. //you may require flags here
>>
>> The (2) is more efficient to implement which I perceive since the
>> database is seldom touched. And infact is the core of the dirty bit in
>> cache of OS as I mentioned before.
>> I rephrase my question to - is there any way we can set flags to the
>> key:value pair which can be detected by the memcached when it removes
>> data from memory? Please reply incase you find something related.
>
>  If you update the cache, but not the primary store, you lose data.
> Memcached doesn't know *why* you gave it data and has no way to decide
> what's important.
>
>  *or*
>
>  If you update the cache and have cache operations block on writing
> data out the other side, you lose absolute predictability of cache
> behavior.  This is exactly what membase does.  If you write fast
> enough, you can't update the underlying store and you hit memory
> limits and have to slow down (or add nodes to compensate for the
> increased write volume).
>
>  You can, of course, write another engine that fits your semantics
> better, but the core engine is designed to add speed to unobtrusively
> add speed to something that's already working.  At the point where you
> need reliability of the data you're storing in it, you're doing
> something else.

Reply via email to