Hello Ikai,

Sorry but I might have worded my post incorrectly. I do not doubt
memcache, in fact I use it very heavily and it is great.

On Google I/O I learned that memcache is actually hosted on another
machine and that for each request a significant network overhead is
involved. In appstats I see about 20ms for a single request. Simple
data-store requests are also between 20-50ms. So in fact memcache is
good as second level cache but shows to be a bottleneck for data that
I heavily use over and over again (plus it costs valuable API time).

So the idea was to have some "first level" in-memory cache living on
the same machine that is holding heavily used data to prevent the
server round trip to the cache machine. Now you might tell me that my
application is designed wrong. And indeed I could just put this in by
myself. But as you also pointed out there are tricky parts like memory
boundaries and other things to take care of. This is why I started
this thread to see if someone has come up with a good solution.

I think multiple cache layers are kind of a standard approach that has
shown its usefulness in many places.  It would be good to have that as
part of GAE. Of course this is not the most urgent issue.

Cheers,
Toby


On Jun 17, 6:46 pm, "Ikai L (Google)" <ika...@google.com> wrote:
> What aspect of Memcache is too slow? Have you run AppStats yet?
>
> The overhead of Memcache is low enough for many of the top sites on the
> internet to use. Some sites are listed on the main page here:
>
> http://memcached.org/
>
> As you move closer and closer to local memory, the volatility of your cache
> will increase, so the only items I would store in local memory are items
> that are okay to lose. If you want, you can probably layer your application
> to fetch from memcache -> fetch from authoritative source and place into
> local memory on a cache miss. Just be aware that there are process memory
> limits, and exceeding these will force a restart.
>
>
>
> On Thu, Jun 17, 2010 at 2:30 AM, Toby <toby.ro...@gmail.com> wrote:
> > Hello,
>
> > I wonder if there is a framework (such as Objectify) also for
> > memcache.  As memcache is not on the local machine it is rather slow,
> > especially for reoccurring requests. So on Google I/O they suggested
> > to build your own in-memory layer around that. I know that is an easy
> > task, still I wonder if there might already be a framework for
> > that :-)
>
> > Also I wonder if someone can give me some ideas about how to build an
> > in-memory cache. I guess it is just a static hashmap. But will it
> > survive multiple requests? How much can I put in there?
>
> > As the problem of memcache is apparently the high latency for the
> > network traffic to the server I had the idea to store the in-memory
> > cache in the memcache, de-serialize it and then use it?
>
> > Do you have other ideas how to speed up caching?
>
> > Thank you for your advice,
>
> > Toby
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine for Java" group.
> > To post to this group, send email to
> > google-appengine-j...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blog:http://googleappengine.blogspot.com
> Twitter:http://twitter.com/app_engine
> Reddit:http://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to