7 Replies Latest reply on Aug 24, 2007 10:08 AM by brian.stansberry

    Passivation false?

    brucespringfield

      In the config file, for the attribute CacheLoaderConfiguration, why would someone set passivation to false?

      What would JBoss Cache do?

        • 1. Re: Passivation false?
          brian.stansberry

          See the first few sentences of http://labs.jboss.com/file-access/default/members/jbosscache/freezone/docs/2.0.0.GA/JBossCache-UserGuide/en/html/cache_loaders.html for an explanation of what happens when passivation=false. Section 8.4 covers the passivation=true case.

          • 2. Re: Passivation false?
            brucespringfield

            Yes, I understand the true case, but I didn't find information about the false case. I couldn't derive the information from the first few sentences of the section. I would assume passivation doesn't take place. So, I guess it is just a switch to turn passivation on and off. It is for convenience?

            • 3. Re: Passivation false?
              brucespringfield

              Okay, I think I understand. When passivation is false, passivation doesn't take place, but activation does . . . ? So, elements are prestored in the data store and activated as accessed?

              • 4. Re: Passivation false?
                brian.stansberry

                For passivation=false, key sentence in the doc is "Whenever an element is modified, added or removed, then that modification is persisted in the backend store via the cache loader." There's no direct relationship between eviction and cache loading. If you don't use eviction, what's in the persistent store is basically a copy of what's in memory. If you do use eviction, what's in the persistent store is basically a superset of what's in memory (includes nodes that have been evicted).

                For passivation=true, there is a direct relationship between eviction and the cache loader. Writes to the persistent store via the cache loader only occur as part of the eviction process. In this case, what's in memory and what's in the persistent store are two subsets of the total information set, with no intersection between the subsets.

                • 5. Re: Passivation false?
                  brian.stansberry

                  Quick example, showing what state is in RAM and in the persistent store after each step of a 6 step process:

                  1) Insert /A
                  2) Insert /B
                  3) Eviction thread runs, evicts /A
                  4) Read /A
                  5) Eviction thread runs, evicts /B
                  6) Remove /B

                  Passivation=false

                  1) RAM: /A Disk: /A
                  2) RAM: /A, /B Disk: /A, /B
                  3) RAM: /B Disk: /A, /B
                  4) RAM: /A, /B Disk: /A, /B
                  5) RAM: /A Disk: /A, /B
                  6) RAM: /A Disk: /A

                  Passivation=true

                  1) RAM: /A Disk:
                  2) RAM: /A, /B Disk:
                  3) RAM: /B Disk: /A
                  4) RAM: /A, /B Disk:
                  5) RAM: /A Disk: /B
                  6) RAM: /A Disk:

                  • 6. Re: Passivation false?
                    brucespringfield

                    That's very clear now!! I'm glad I asked! I just didn't get this information from the documentation. Thank you very much for the clear explanation!

                    • 7. Re: Passivation false?
                      brian.stansberry

                      No problem; glad you asked. :-) When I sent you to the docs, it wasn't a polite way to say "RTFM"; I was more curious to see if the docs were clear enough. They weren't; I'll add some of the stuff from this thread to them.