[jboss-user] [JBossCache] - Problem using FileCacheLoader

bruce_zhang do-not-reply at jboss.com
Thu Jul 13 11:40:31 EDT 2006


Hi, 

I am setting up a prototype to evaluate our re-engineering project. 
I need a cache system to hold the transaction data and I've choose JBoss Cache after browsing the website. So I am new to JBoss Cache and I meet a problem in setting up using the FileCacheLoader.

My intension is to first setup a simple Cache with file persist for fail over recovery.  Everything seems working fine untill I set up a FileCacheLoder.
The problem is it becomes SO SLOW for putting entries after set up the FileCacheLoader. I have a testing program that simply write and read
some objects to the same cache node in a loop. Before I set up the FileCacheLoader, it take only about 1-2ms to read/write an object. 
But after using the FileCacheLoader,  it takes 100ms to write an entry in the beginning and the time keeps growing and finally reach about 1000ms per write.  I know there must be some performance degrade after using cacheLoader but this kind of degrade seems not right . Can somebody take a look at my configuration file as following, Thanks a lot !

Besides, will a JDBCCacheLoader provide  better performance ? It will be greatly appreciated if somebody can provide samples for that .

=========== jbosscache-config.xml ==========
  | 
  | <server>
  | 
  | <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
  | 
  |  <mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=TreeCache">
  | 
  |    <depends>jboss:service=Naming</depends>
  |    <depends>jboss:service=TransactionManager</depends>
  | 
  |   <attribute name="TransactionManagerLookupClass">org.jboss.cache.DummyTransactionManagerLookup</attribute>
  | 
  |   <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
  | 
  |   <attribute name="CacheMode">LOCAL</attribute>
  | 
  |    <attribute name="ClusterName">TreeCache-Cluster</attribute>
  | 
  |    <attribute name="ClusterConfig">
  |                  <config>
  | 			<!-- UDP: if you have a multihomed machine,
  | 					set the bind_addr attribute to the appropriate NIC IP address
  | 			-->
  | 			<!-- UDP: On Windows machines, because of the media sense feature
  | 					 being broken with multicast (even after disabling media sense)
  | 					 set the loopback attribute to true
  | 			-->
  | 			<UDP mcast_addr="228.1.2.3" mcast_port="45566" ip_ttl="64" ip_mcast="true"
  | 			   mcast_send_buf_size="150000" mcast_recv_buf_size="80000" ucast_send_buf_size="150000"
  | 			   ucast_recv_buf_size="80000" loopback="false" />
  | 			<PING timeout="2000" num_initial_members="3" up_thread="false" down_thread="false" />
  | 			<MERGE2 min_interval="10000" max_interval="20000" />
  | 			<FD shun="true" up_thread="true" down_thread="true" />
  | 			<VERIFY_SUSPECT timeout="1500" up_thread="false" down_thread="false" />
  | 			<pbcast.NAKACK gc_lag="50" max_xmit_size="8192" retransmit_timeout="600,1200,2400,4800" up_thread="false"
  | 			   down_thread="false" />
  | 			<UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10" down_thread="false" />
  | 			<pbcast.STABLE desired_avg_gossip="20000" up_thread="false" down_thread="false" />
  | 			<FRAG frag_size="8192" down_thread="false" up_thread="false" />
  | 			<pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="true" print_local_addr="true" />
  | 			<pbcast.STATE_TRANSFER up_thread="false" down_thread="false" />
  | 		  </config>
  | 		</attribute>
  | 
  |    <attribute name="SyncReplTimeout">10000</attribute> 
  | 
  |     <attribute name="LockAcquisitionTimeout">15000</attribute>
  | 
  |    <attribute name="EvictionPolicyClass"></attribute>
  | 
  |    <attribute name="CacheLoaderConfiguration">
  |             <config>
  |                 <passivation>false</passivation>
  |                 <preload>/test</preload>
  | 	 <shared>false</shared>
  |                 
  |                 <cacheloader>
  |                     <class>org.jboss.cache.loader.FileCacheLoader</class>
  |                      <properties>
  |                         location=/tmp/filetore
  |                     </properties>
  |                     <async>true</async>
  |                     
  |                     <fetchPersistentState>true</fetchPersistentState>
  |                     <ignoreModifications>false</ignoreModifications>
  |                      <purgeOnStartup>false</purgeOnStartup>
  |                 </cacheloader>
  |                 
  |          </config>
  |     </attribute>
  |     
  |     </mbean>
  | </server>


===== Testing Program =====
  | 
  | TreeCache cache = new TreeCache();
  | PropertyConfigurator pc = new PropertyConfigurator();
  | pc.configure(cache, "jbosscache-config.xml");
  | 	        
  | cache.createService();
  | cache.startService();
  | 
  | cache.put("/test", key, obj );
  | 
  | ....



 [img][/img][img][/img]

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957787#3957787

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957787



More information about the jboss-user mailing list