Hi Stephen,

yes I switched to threadsafe on Sept 12th, because of the new billing
policy, but that issue already happened before.

I'll change my code to use the low-level MemcacheService instead of
JCache immediately. With JCache I tried both: saving the instance in a
static variable for reuse and creating the cache object on every
request. I can tell you that there is no difference (at least with
JCache) in cpu usage and servlet execution time.

Thank you very much for your suggestion!!



On 2 Okt., 23:24, Stephen Johnson <[email protected]> wrote:
> You don't mention if you have threadsafe on. If so, you might be
> experiencing some sort of deadlock or something with the way you are
> creating your JCache on every request. I'd try moving away from JCache and
> accessing the MemcacheService directly. I create a MemcacheService object
> for each thread and reuse that object. I've had no problems/issues like
> you've described but my QPS are probably not as much as yours. Here's some
> sample code
>
>     private static ThreadLocal<MemcacheService> memcacheService =
> newThreadLocal<MemcacheService>() {
>
>         protected synchronized MemcacheService initialValue() {
>
>             return MemcacheServiceFactory.getMemcacheService();
>
>         }
>
>     };
>
>     public static MemcacheService getService() {
>
>        return memcacheService.get();
>
>     }
>
> If you try switching to MemcacheService directly, please let us know if it
> helps or not.
>
> Stephen
>
> CortexConnect.com
>
>
>
>
>
>
>
> On Sun, Oct 2, 2011 at 1:58 PM, Bernd F <[email protected]> wrote:
> > Thank you for your input Jay, at least there is something I can cling
> > to. Could you be a little bit more specific about this bad value.
>
> > What could that be? Or better said: Is that anything I can control?
>
> > Btw: After I set the Max Idle value to Automatic a few days ago it
> > happened again (earlier today).
>
> > On 2 Okt., 20:27, Jay Young <[email protected]> wrote:
> > > It sounds like you have a bad value in memcache and when a servlet hits
> > it,
> > > it blocks the instance that's executing it.  When you have multiple
> > > instances running, other requests can be served by other instances.  When
> > > you set it to 1, that one faulty instance gets backed up and requests
> > start
> > > timing out.  That's the only reason I can think of that clearing memcache
> > > AND changing your # of instances would solve the problem.  It's like your
> > > bad memcache value is a blockage in a stream.  Clearing memcache clears
> > the
> > > block.  Increasing the number of instances allows other requests to flow
> > > around the block.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to