I realize that I always get the same cache. I am just wondering if it
creates an overhead to always call the factory or not.

Viðar

On Wed, May 26, 2010 at 1:27 PM, Rahul Juneja <[email protected]> wrote:
> You can call the factory any times it doesn't matter it will return you the
> same cache.
> Thanks,
> Rahul
> ----------------------------------------------------------
> Rahul Juneja
> http://techlabs.thoughtclicks.com
>
>
> 2010/5/26 Viðar Svansson <[email protected]>
>>
>> I am curious, does it matter if I call the factory each time I need an
>> instance of MemcacheService? I am trying to keep the startup time to
>> minimum so it would be good to know. Currently I create a global
>> instance on startup which may or may not be used by the request.
>>
>> Cheers,
>> Viðar
>>
>> On Wed, May 26, 2010 at 3:15 AM, Rahul <[email protected]> wrote:
>> > A Quick update, I tried this with low level google api and that seems
>> > to work perfectly fine and i am able to retrieve values from the
>> > existing cache and don't load it from db everytime hence reduces my
>> > jvm restart load time by 3-4 seconds.
>> >
>> > Not sure what jsr 107 was not working.
>> >
>> > Thanks,
>> > Rahul
>> >
>> >
>> > On May 25, 10:24 pm, Rahul <[email protected]> wrote:
>> >> Ikai,
>> >>
>> >> I am guessing i am wrong somewhere in designing this cache solution.
>> >> Would appreciate if you can tell me where am i going wrong on this.
>> >> Let me try to explain it once again.
>> >>
>> >> I have a set of properties which i load on first call to the service.
>> >> and the code I call in the service is as follows.
>> >>
>> >> PropertiesCache _cache = PropertiesCache.getInstance();
>> >>
>> >> My PropertiesCache is as follows.
>> >> -------------------------------------------------------------------
>> >> public class PropertiesCache {
>> >>         private static final Logger log =
>> >> Logger.getLogger(PropertiesCache.class.getName());
>> >>
>> >>         private static PropertiesCache _instance;
>> >>         private Cache cache;
>> >>         private PropertiesCache() {
>> >>                 try {
>> >>                         log.info("In the PropertiesCache constructor");
>> >>                         cache =
>> >>
>> >> CacheManager.getInstance().getCacheFactory().createCache(Collections.emptyMap());
>> >>                         //Loading the cache from the database.
>> >>                         //cache.put(Object, Object);
>> >>                 } catch (CacheException e) {
>> >>                         log.severe("Error in creating the Loading
>> >> Cache");
>> >>                 }
>> >>
>> >>         public static synchronized PropertiesCache getInstance() {
>> >>                 if (_instance == null) {
>> >>                         _instance = new PropertiesCache();
>> >>                 }else{
>> >>                         log.info("Using existing cache instance and NO
>> >> NEW Instance is
>> >> created");
>> >>                 }
>> >>
>> >>                 return _instance;
>> >>         }
>> >>
>> >> Also, Let me re-iterate what you said, you are suggesting me not to
>> >> play around with instance variable instead use the cache variable and
>> >> is there any way i can fetch the cache variable once the jvm restarts.
>> >>
>> >> Appreciate all the efforts.
>> >>
>> >> Thanks,
>> >> Rahul
>> >> On May 25, 5:08 pm, "Ikai L (Google)" <[email protected]> wrote:
>> >>
>> >> > The instance itself will be recreated. If you store a value into
>> >> > Memcache,
>> >> > it will likely be there the next time you retrieve it. Try this out.
>> >>
>> >> > It's not necessary to do what you've done here. When you create a
>> >> > Cache
>> >> > instance, you're really just creating a client to the cache, and you
>> >> > can do
>> >> > this each time you need it. There's no need to create a global,
>> >> > long-lived
>> >> > instance. What you're seeing is perfectly normal - Java objects will
>> >> > not
>> >> > have a longer lifespan than the JVM. If the JVM dies, so will all the
>> >> > instantiated objects.
>> >>
>> >> > On Tue, May 25, 2010 at 1:28 PM, Rahul <[email protected]>
>> >> > wrote:
>> >> > > Toby,
>> >>
>> >> > > I also had the same opinion but as you can see the previous code i
>> >> > > have given populates the cache again. I guess i am doing something
>> >> > > wrong. Appreciate if you can look at that and let me know if i have
>> >> > > to
>> >> > > do something which i missing.
>> >>
>> >> > > Thanks,
>> >> > > Rahul
>> >>
>> >> > > On May 25, 4:00 pm, Toby Reyelts <[email protected]> wrote:
>> >> > > > Rahul,
>> >>
>> >> > > > If you're using App Engine's MemcacheService directly (or
>> >> > > > indirectly, for
>> >> > > > example through our JSR 107 support), then you are talking to
>> >> > > > backend
>> >> > > > memcache instances that have lifetimes separate from your JVMs.
>> >>
>> >> > > > I.E. MemcacheServiceFactory.getMemcacheService<
>> >> >
>> >> > > >http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...()
>> >>
>> >> > > > does
>> >> > > > not create a new memcache backend - it just "connects" to an
>> >> > > > existing
>> >> > > one.
>> >> > > > You have one logical memcache backend that is shared between all
>> >> > > > of your
>> >> > > > application's JVMs.
>> >>
>> >> > > > On Tue, May 25, 2010 at 3:12 PM, Rahul <[email protected]>
>> >> > > > wrote:
>> >> > > > > Ikai,
>> >>
>> >> > > > > I am not sure what you mean by Memcache instances stays up
>> >> > > > > because i
>> >> > > > > tried the following code and everytime when a new jvm instance
>> >> > > > > is
>> >> > > > > created, the cache instance is also created again. Below is the
>> >> > > > > code i
>> >> > > > > am using, let me know if i am missing anything or not doing
>> >> > > > > anything
>> >> > > > > correct.
>> >>
>> >> > > > > Request comes from the following code:
>> >>
>> >> > > > > MyCache _cache = MyCache.getInstance();
>> >> > > > > redirectUrl = _cache.findInCache(requestedURI);
>> >>
>> >> > > > > MyCache Class:
>> >>
>> >> > > > >        private static MyCache _instance;
>> >> > > > >        private Cache cache;
>> >>
>> >> > > > >        public static synchronized MyCache getInstance() {
>> >> > > > >                if (_instance == null) {
>> >> > > > >                        _instance = new MyCache();
>> >> > > > >                }else{
>> >> > > > >                        log.info("Using existing cache instance
>> >> > > > > and NO
>> >> > > NEW
>> >> > > > > Instance is
>> >> > > > > created");
>> >> > > > >                }
>> >>
>> >> > > > >                return _instance;
>> >> > > > >        }
>> >>
>> >> > > > > and in the constructor i am creating new cache fetching
>> >> > > > > everything
>> >> > > > > from the database.
>> >>
>> >> > > > > Also, i have a listener in place which tells me when the new
>> >> > > > > jvm
>> >> > > > > instance is started.
>> >>
>> >> > > > > Thanks,
>> >> > > > > Rahul
>> >>
>> >> > > > > On May 24, 3:56 pm, "Ikai L (Google)" <[email protected]>
>> >> > > > > wrote:
>> >> > > > > > Memcache instances stay up. They're shared, namespaced
>> >> > > > > > (security)
>> >> > > > > instances
>> >> > > > > > and will more likely than not outlive the lifecycles of your
>> >> > > application
>> >> > > > > > instances.
>> >>
>> >> > > > > > On Sun, May 23, 2010 at 11:17 PM, Tristan <
>> >> > > [email protected]
>> >> > > > > >wrote:
>> >>
>> >> > > > > > > Does anyone know the answer to this:
>> >>
>> >> > > > > > > If all the JVMs are killed, does the memcache stick around
>> >> > > > > > > or is it
>> >> > > > > > > recycled? (I know memcache expires eventually, just curious
>> >> > > > > > > if it
>> >> > > is
>> >> > > > > > > possible for it to carry data across JVM valley of death)
>> >>
>> >> > > > > > > Cheers,
>> >>
>> >> > > > > > > Tristan
>> >>
>> >> > > > > > > --
>> >> > > > > > > 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
>> >> > > > > > > [email protected].
>> >> > > > > > > To unsubscribe from this group, send email to
>> >> > > > > > >
>> >> > > > > > > [email protected]<google-appengine-java%[email protected]><google-appengine-java%2B
>> >> > > [email protected]><google-appengine-java%2B
>> >> > > > > [email protected]>
>> >> > > > > > > .
>> >> > > > > > > For more options, visit this group at
>> >> > > > > > >http://groups.google.com/group/google-appengine-java?hl=en.
>> >>
>> >> > > > > > --
>> >> > > > > > Ikai Lan
>> >> > > > > > Developer Relations, Google App Engine
>> >> > > > > > Twitter:http://twitter.com/ikai
>> >> > > > > > Delicious:http://delicious.com/ikailan
>> >>
>> >> > > > > > ----------------
>> >> > > > > > Google App Engine links:
>> >> > > > > > 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
>> >> > > > > [email protected].
>> >> > > > > > To unsubscribe from this group, send email to
>> >> > > > >
>> >> > > > > [email protected]<google-appengine-java%[email protected]><google-appengine-java%2B
>> >> > > [email protected]>
>> >> > > > > .
>> >> > > > > > For more options, visit this group athttp://
>> >> > > > > groups.google.com/group/google-appengine-java?hl=en.
>> >>
>> >> > > > > --
>> >> > > > > 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
>> >> > > > > [email protected].
>> >> > > > > To unsubscribe from this group, send email to
>> >> > > > >
>> >> > > > > [email protected]<google-appengine-java%[email protected]><google-appengine-java%2B
>> >> > > [email protected]>
>> >> > > > > .
>> >> > > > > For more options, visit this group at
>> >> > > > >http://groups.google.com/group/google-appengine-java?hl=en.
>> >>
>> >> > > --
>> >> > > 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
>> >> > > [email protected].
>> >> > > To unsubscribe from this group, send email to
>> >> > >
>> >> > > [email protected]<google-appengine-java%[email protected]>
>> >> > > .
>> >> > > 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
>> >> > Twitter:http://twitter.com/ikai
>> >> > Delicious:http://delicious.com/ikailan
>> >>
>> >> > ----------------
>> >> > Google App Engine links:
>> >> > 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
>> > [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-java?hl=en.
>> >
>> >
>>
>> --
>> 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
>> [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-java?hl=en.
>>
>
> --
> 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 [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-java?hl=en.
>

-- 
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 [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-java?hl=en.

Reply via email to