Hi everybody , I am trying to integrate the Jboss cache with a big stand alone environment the main problem with this program we need a huge data to process with amount reach to 7 GB so the idea is to use a cache system to evict some of the data and retrieve it when we want any way i will get in the problem right away my question is the Jboss cache sensitive to memory ? and any one have some suggestion . I tried to create a test before integrate the jboss cache with the system but i could not make it run so anybody can figure the problem
-------------------------------- i make the ram for the virtual , the idea behind the test frame work is to create dummy data and add it to the cache tree and check if it evict it but it did not worked . sorry i post this code but i want to show all the evolution process on it i used to debug and check and come up with ideas and test them on the same code import java.util.HashMap; | import java.util.Map; | import java.util.Scanner; | | import org.jboss.cache.Cache; | import org.jboss.cache.CacheFactory; | import org.jboss.cache.DefaultCacheFactory; | import org.jboss.cache.Fqn; | import org.jboss.cache.Node; | import org.jboss.cache.Region; | import org.jboss.cache.RegionManagerImpl; | import org.jboss.cache.config.Configuration; | import org.jboss.cache.config.EvictionAlgorithmConfig; | import org.jboss.cache.config.EvictionConfig; | import org.jboss.cache.config.EvictionRegionConfig; | import org.jboss.cache.config.Configuration.CacheMode; | import org.jboss.cache.eviction.EvictionEvent; | import org.jboss.cache.eviction.EvictionQueueList; | import org.jboss.cache.eviction.LRUAlgorithm; | import org.jboss.cache.eviction.LRUAlgorithmConfig; | import org.jboss.cache.interceptors.EvictionInterceptor; | import org.jboss.cache.transaction.GenericTransactionManagerLookup; | import org.jboss.util.LRUCachePolicy; | import org.jgroups.tests.PullPushTestMux.MyListener; | | | public class JBossTest { | | | private static Node<Object, Object> newNode; | private Node<Object, Object> lastNode ; | // private Object watcher = new myListener(); | Object watcher = new myListener(); | | | | /** | * @param args | */ | public static void getMemorySize() | { | long size = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); | System.out.println("The size of the memory at the current time is : " + size); | } | public static double[] getDummyData() | { | return new double[(int)(1000*Math.random()) + 1]; | } | | // private void orderChildren(Node node) | // { | // if (node == null) return; | // | // if (node instanceof root) | // { | // FqnTreeNode node = (FqnTreeNode) parent; | // ArrayList children = Collections.list(node.children()); | // Collections.sort(children); | // node.removeAllChildren(); | // Iterator childrenIterator = children.iterator(); | // while (childrenIterator.hasNext()) node.add((FqnTreeNode) childrenIterator.next()); | // } | // } | @SuppressWarnings("null") | public void startUpTest() | { | /* | * the configuration for the cache object | */ | | CacheFactory<Object, Object> factory = new DefaultCacheFactory<Object, Object>(); | | | // Cache cache = factory.createCache("/home/ecc_8/shamah0s/Desktop/SerialDemo/config.xml", false); | Cache<Object, Object> cache = factory.createCache(); | | Configuration config = new Configuration(); | | // config.setTransactionManagerLookupClass(GenericTransactionManagerLookup.class.getName()); | // config.setIsolationLevel(IsolationLevel.READ_COMMITTED); | config.setCacheMode(CacheMode.LOCAL); | // config.setCacheMode(CacheMode.INVALIDATION_SYNC); | config.setLockAcquisitionTimeout(15000); | | | Node<Object, Object> root = cache.getRoot(); | Fqn<String> fqnNode = Fqn.fromString("root/arrayPath"); | | // newNode = root.addChild(fqnNode); | // newNode.setResident(true); | | Fqn<String> fqnNode1 = Fqn.fromString("root/hi"); | Fqn<String> fqnNode2 = Fqn.fromString("root/meToo"); | Fqn<String> fqnNode3 = Fqn.fromString("root/arrayPath/what"); | Fqn<String> fqnNode4 = Fqn.fromString("root/arrayPath/what/is"); | Fqn<String> fqnNode5 = Fqn.fromString("root/arrayPath/what/is/he"); | setNode(root); | | | root.addChild(fqnNode2); | root.addChild(fqnNode3); | root.addChild(fqnNode4); | root.addChild(fqnNode5); | | | | LRUAlgorithmConfig lru = new LRUAlgorithmConfig(); | | lru.setMaxNodes(1000); | lru.setMaxAge(15000); | lru.setMinTimeToLive(2000); | lru.setMinTimeToLive(1000); | | // EvictionRegionConfig ring = new EvictionRegionConfig(fqnNode5,lru); | EvictionRegionConfig ring = new EvictionRegionConfig(); | ring.setRegionFqn(RegionManagerImpl.DEFAULT_REGION); | | EvictionAlgorithmConfig algoCon = new LRUAlgorithmConfig(); | | // algoCon.validate(); | | ring.setEvictionActionPolicyClassName(LRUAlgorithm.class.getName()); | // ring.setRegionFqn(fqnNode); | ring.passCacheToChildConfig(config); | ring.setEvictionAlgorithmConfig(lru); | config.setUseLazyDeserialization(true); | | Region region = cache.getRegion(fqnNode5, true); | // region.setEvictionRegionConfig(ring); | | // region.setActive(true); | EvictionConfig evict = new EvictionConfig(); | ring.setRegionFqn(RegionManagerImpl.DEFAULT_REGION); | // evict.applyDefaults(ring); | evict.addEvictionRegionConfig(ring); | // cache.evict(fqnNode, true); | | cache.evict(fqnNode5); | System.out.println(evict.isValidConfig()); | // evict.createDefaultEvictionRegionConfig(); | config.setEvictionConfig(evict); | // config.setReplQueueMaxElements(15000); | // evict.setDefaultEvictionPolicyClass(LRUPolicy.class.getName()); | | | // start the cache | | System.out.println("start the cache before enter the while loop "); | | getMemorySize(); | | // adding a listener | cache.addCacheListener( watcher); | // region.getCacheConfiguration(); | // region.processEvictionQueues(); | // region.setEvictionPolicy( LRUCachePolicy.class.); | // region.setActive(true); | //evict. | // EvictionInterceptor interapter =new EvictionInterceptor(); | // EvictionEvent evictEvent = new EvictionEvent(); | // evictEvent.copy(fqnNode); | // evictEvent. | //cache.evict(fqnNode); | | // EvictionQueueList evictQeue = new EvictionQueueList(); | | //System.out.println(region.getEvictionPolicyConfig().toString()); | | | Scanner scanner = new Scanner(System.in); | // double[] dummyData = new double[(int)(1000*Math.random()) + 1]; | boolean abort = true; | int i = 0; | | Map< Object, Object> data = new HashMap<Object, Object>(); | | | | cache.create(); | cache.start(); | | while(abort) | { | | i++; | if (i == 10000 || i == 100000 || i == 1000000) | { | getMemorySize(); | cache.toString(); | // cache.evict( | System.out.println(cache.getChildrenNames(fqnNode5)); | // cache.evict(fqnNode5); | // cache.evict(fqnNode1); | System.out.println(cache.getData(fqnNode)); | cache.evict(fqnNode); | System.out.println(cache.getData(fqnNode)); | System.out.println(cache.getChildrenNames("***************************************************")); | System.out.println(fqnNode1.toString()); | System.out.println(fqnNode5.toString()); | System.out.println(cache.getChildrenNames(fqnNode5)); | System.out.println(cache.toString()); | System.out.println(fqnNode1.toString()); | System.out.println(fqnNode5.toString()); | System.out.println(fqnNode1.toString()); | System.out.println(fqnNode5.peekElements().toString()); | System.out.println("we reach 1000 do you want to exist type (y/n): "); | String checkName = scanner.next(); | if (checkName.equalsIgnoreCase("y")) | { | //System.exit(0); | abort = false; | } | | } | | String dummyKey =(Integer.toString(i)); | // newNode.put(dummyKey, getDummyData()); | // data.put(dummyKey, getDummyData()); | //fqnNode. | // Node <Object, Object> filledNode= getNode().addChild(getNode().getFqn()); | // filledNode.put(dummyKey, getDummyData()); | | // Node<Object, Object> updated = getNode(); | // Fqn<String> newFqn = getNode().getFqn(); | // getNode().addChild(fqnNode2); | // cache.getNode(fqn) | // setNode(updated); | | | // cache.put(getNode().getFqn()); | cache.put(fqnNode, dummyKey, getDummyData()); | // getNode().addChild(dummyKey, getDummyData()); | // cache.put(fqnNode, data); | cache.toString(); | // cache.evict(fqnNode); | | | } | | System.out.println(cache.getConfiguration().toString()); | // System.out.println(cache.getKeys(fqnNode)); | System.out.println(cache.getData(fqnNode)); | // System.out.println(cache.getKeys(fqnNode5)); | System.out.println(cache.getData(fqnNode5)); | // System.out.println(cache.getCacheListeners()); | // System.out.println(cache.getChildrenNames(fqnNode)); | System.out.println(cache.getChildrenNames(fqnNode5)); | System.out.println(cache.toString()); | // System.out.println(newNode.toString()); | } | | private Node<Object, Object> getNode() | { | return lastNode; | } | private void setNode(Node<Object, Object> node) | { | lastNode = node ; | } | | public static void main(String[] args) { | JBossTest test = new JBossTest(); | test.startUpTest(); | | } | | } | | | | please some one help me | import org.jboss.cache.notifications.annotation.CacheListener; | import org.jboss.cache.notifications.annotation.CacheStarted; | import org.jboss.cache.notifications.annotation.NodeEvicted; | import org.jboss.cache.notifications.event.Event; | | @CacheListener | public class myListener | { | private int i = 0; | @CacheStarted | @NodeEvicted | public void cacheNodeEvict(Event e) | { | switch(e.getType()) | { | case NODE_EVICTED: | System.out.println("node evicted"); | case CACHE_STARTED: | System.out.println("--------------------------------------------------------------------"); | case TRANSACTION_COMPLETED: | System.out.println("node transection"); | case NODE_VISITED: | // System.out.print(i++); | System.out.println(""); | System.out.println("node visited "+ i++); | case NODE_MODIFIED: | System.out.println("node modified"); | } | } | } View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4249748#4249748 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4249748 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user