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.
