Ravi Nori has uploaded a new change for review. Change subject: engine : Use infinispan to cache data ......................................................................
engine : Use infinispan to cache data Use infinispan to cache data Change-Id: Ie08852607f7b27ce248564a5c36ea83b8def8ad1 Signed-off-by: Ravi Nori <[email protected]> --- M backend/manager/conf/standalone.xml M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java D backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java 9 files changed, 82 insertions(+), 52 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/14370/1 diff --git a/backend/manager/conf/standalone.xml b/backend/manager/conf/standalone.xml index f573019..b91cfd1 100644 --- a/backend/manager/conf/standalone.xml +++ b/backend/manager/conf/standalone.xml @@ -231,6 +231,21 @@ <eviction max-entries="10000"/> <expiration interval="60000"/> </local-cache> + <local-cache name="entity-multi-async-tasks"> + <transaction mode="NONE"/> + <eviction max-entries="10000"/> + <expiration interval="60000"/> + </local-cache> + <local-cache name="executionContext"> + <transaction mode="NONE"/> + <eviction max-entries="10000"/> + <expiration interval="60000"/> + </local-cache> + <local-cache name="commandMap"> + <transaction mode="NONE"/> + <eviction max-entries="10000"/> + <expiration interval="60000"/> + </local-cache> </cache-container> </subsystem> <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java index e1a7765..cda5385 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java @@ -1,7 +1,19 @@ package org.ovirt.engine.core.bll.tasks; +import java.util.Map; + public class CacheProviderFactory { - public static <K, V> CacheWrapper<K, V> getCacheWrapper(String name) { - return new MapWrapperImpl<K, V>(); + private static CacheWrapper cacheWrapper = new InfinispanCacheWrapper(); + + public static <K, V> Map<K, V> getCache(String name) { + return getCacheWrapper().getCache(name); + } + + public static void setCacheWrapper(CacheWrapper aCacheWrapper) { + cacheWrapper = aCacheWrapper; + } + + public static CacheWrapper getCacheWrapper() { + return cacheWrapper; } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java index 4ce085c..b9bc3a0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java @@ -1,12 +1,9 @@ package org.ovirt.engine.core.bll.tasks; -public interface CacheWrapper<K, V> { +import java.util.Map; - void put(K key, V value); +public interface CacheWrapper { - V get(K key); + <K, V> Map<K,V> getCache(String name); - void remove(final K key); - - public boolean containsKey(K key); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java index b4be650..b791054 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java @@ -43,18 +43,21 @@ public class CommandCoordinatorImpl extends CommandCoordinator { - private static final String EXECUTION_CONTEXT_MAP_NAME = "executionContext"; + public static final String EXECUTION_CONTEXT_MAP_NAME = "executionContext"; + public static final String ENTITY_MULTI_ASYNC_TASKS_MAP_NAME = "entity-multi-async-tasks"; private static final CommandCoordinatorImpl instance = new CommandCoordinatorImpl(); private static final Log log = LogFactory.getLog(CommandCoordinatorImpl.class); public static CommandCoordinatorImpl getInstance() { return instance; } - CacheWrapper<NGuid, ExecutionContext> executionContextMap; + private final Map<NGuid, ExecutionContext> executionContextMap; + private final Map<Object, EntityMultiAsyncTasks> multiTasksByEntities; CommandEntityDAO commandEntityDAO = new CommandEntityDAOImpl(); private CommandCoordinatorImpl() { - executionContextMap = CacheProviderFactory.<NGuid, ExecutionContext>getCacheWrapper(EXECUTION_CONTEXT_MAP_NAME); + executionContextMap = CacheProviderFactory.<NGuid, ExecutionContext>getCache(EXECUTION_CONTEXT_MAP_NAME); + multiTasksByEntities = new HashMap<>(); } @Override @@ -367,8 +370,6 @@ private AsyncTaskManager getAsyncTaskManager() { return AsyncTaskManager.getInstance(this); } - private final Map<Object, EntityMultiAsyncTasks> multiTasksByEntities = - new HashMap<Object, EntityMultiAsyncTasks>(); private static final Object _lockObject = new Object(); @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java index 96b8434..0a4db6d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityDAOImpl.java @@ -1,15 +1,16 @@ package org.ovirt.engine.core.bll.tasks; +import java.util.Map; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; public class CommandEntityDAOImpl implements CommandEntityDAO { - private static final String COMMAND_MAP_NAME = "commandMap"; - CacheWrapper<NGuid, CommandEntity> commandMap; + public static final String COMMAND_MAP_NAME = "commandMap"; + Map<NGuid, CommandEntity> commandMap; public CommandEntityDAOImpl() { - commandMap = CacheProviderFactory.<NGuid, CommandEntity>getCacheWrapper(COMMAND_MAP_NAME); + commandMap = CacheProviderFactory.<NGuid, CommandEntity>getCache(COMMAND_MAP_NAME); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java new file mode 100644 index 0000000..10394f1 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/InfinispanCacheWrapper.java @@ -0,0 +1,24 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.ovirt.engine.core.bll.tasks; + +import java.util.Map; +import org.infinispan.manager.CacheContainer; +import org.ovirt.engine.core.utils.ejb.BeanProxyType; +import org.ovirt.engine.core.utils.ejb.BeanType; +import org.ovirt.engine.core.utils.ejb.EjbUtils; + +class InfinispanCacheWrapper implements CacheWrapper { + + public InfinispanCacheWrapper() { + } + + @Override + public <K, V> Map<K, V> getCache(String name) { + CacheContainer cacheContainer = EjbUtils.findBean(BeanType.CACHE_CONTAINER, BeanProxyType.LOCAL); + return cacheContainer.getCache(name); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java new file mode 100644 index 0000000..fd99976 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapCacheWrapper.java @@ -0,0 +1,12 @@ +package org.ovirt.engine.core.bll.tasks; + +import java.util.HashMap; +import java.util.Map; + +public class MapCacheWrapper implements CacheWrapper { + + @Override + public <K, V> Map<K, V> getCache(String name) { + return new HashMap<K, V>(); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java deleted file mode 100644 index d704993..0000000 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/MapWrapperImpl.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.ovirt.engine.core.bll.tasks; - -import java.util.HashMap; -import java.util.Map; - -public class MapWrapperImpl<K, V> implements CacheWrapper<K, V> { - - private final Map<K,V> cache = new HashMap<>(); - - public MapWrapperImpl() { - } - - @Override - public void put(final K key, final V value) { - getCache().put(key, value); - } - - @Override - public V get(final K key) { - return getCache().get(key); - } - - @Override - public void remove(final K key) { - getCache().remove(key); - } - - public Map<K, V> getCache() { - return cache; - } - - @Override - public boolean containsKey(final K key) { - return getCache().containsKey(key); - } -} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java index 1f62a36..be84eb9 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java @@ -20,6 +20,8 @@ import org.junit.experimental.theories.Theories; import org.junit.experimental.theories.Theory; import org.junit.runner.RunWith; +import org.ovirt.engine.core.bll.tasks.CacheProviderFactory; +import org.ovirt.engine.core.bll.tasks.MapCacheWrapper; import org.ovirt.engine.core.bll.tasks.interfaces.SPMTask; import org.ovirt.engine.core.common.action.AddImageFromScratchParameters; import org.ovirt.engine.core.common.action.CreateCloneOfTemplateParameters; @@ -156,6 +158,7 @@ params.setParentCommand(RandomUtils.instance().nextEnum(VdcActionType.class)); params.setParentParameters(params); + CacheProviderFactory.setCacheWrapper(new MapCacheWrapper()); AsyncTaskCreationInfo info = nextAsyncTaskCreationInfo(); SPMTask spmAsyncTask = cmd.concreteCreateTask(Guid.Empty, info, cmd.getParameters().getParentCommand()); @@ -180,6 +183,7 @@ PermissionsOperationsParametes params = new PermissionsOperationsParametes(); AddPermissionCommand<PermissionsOperationsParametes> cmd = spy( new AddPermissionCommand<PermissionsOperationsParametes>(params)); + CacheProviderFactory.setCacheWrapper(new MapCacheWrapper()); cmd.concreteCreateTask(Guid.Empty, nextAsyncTaskCreationInfo(), VdcActionType.Unknown); } -- To view, visit http://gerrit.ovirt.org/14370 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie08852607f7b27ce248564a5c36ea83b8def8ad1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
