azkaban-memoizeit
Changes
azkaban-common/build.gradle 6(+0 -6)
azkaban-exec-server/build.gradle 6(+0 -6)
build.gradle 1(+1 -0)
docker-compose.yml 10(+2 -8)
Details
azkaban-common/build.gradle 6(+0 -6)
diff --git a/azkaban-common/build.gradle b/azkaban-common/build.gradle
index d747d52..658344f 100644
--- a/azkaban-common/build.gradle
+++ b/azkaban-common/build.gradle
@@ -14,13 +14,7 @@
* the License.
*/
-plugins {
- id "io.freefair.aspectj.post-compile-weaving" version "3.1.4"
-}
-
dependencies {
- aspect 'br.ufrgs.inf.prosoft.applicationtracer:ApplicationTracer:1.0'
-
compile project(':az-core')
compile project(':azkaban-spi')
compile project(':azkaban-db')
diff --git a/azkaban-common/src/main/java/azkaban/project/ProjectManager.java b/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
index b5a838a..16b3c8b 100644
--- a/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
+++ b/azkaban-common/src/main/java/azkaban/project/ProjectManager.java
@@ -47,6 +47,9 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import org.apache.log4j.Logger;
+import br.ufrgs.inf.prosoft.cache.SingleCache;
+import br.ufrgs.inf.prosoft.cache.Parameters;
+
@Singleton
public class ProjectManager {
@@ -165,15 +168,19 @@ public class ProjectManager {
return array;
}
+public static SingleCache<User, List<Project>> getGroupProjectsCache = new SingleCache<>("ProjectManager.getGroupProjects");
+
public List<Project> getGroupProjects(final User user) {
- final List<Project> array = new ArrayList<>();
- // for (final Project project : this.projectsById.values()) {
- for (final Project project : getProjects()) {
- if (project.hasGroupPermission(user, Type.READ)) {
- array.add(project);
+ return getGroupProjectsCache.computeIfAbsent(user, () -> {
+ final List<Project> array = new ArrayList<>();
+ // for (final Project project : this.projectsById.values()) {
+ for (final Project project : getProjects()) {
+ if (project.hasGroupPermission(user, Type.READ)) {
+ array.add(project);
+ }
}
- }
- return array;
+ return array;
+ }, 1000);
}
public List<Project> getUserProjectsByRegex(final User user, final String regexPattern) {
@@ -512,9 +519,14 @@ public class ProjectManager {
* @return ProjectFileHandler - null if can't find project zip file based on project name and
* version
*/
+
+public static SingleCache<Parameters, ProjectFileHandler> getProjectFileHandlerCache = new SingleCache<>("ProjectManager.getProjectFileHandler");
+
public ProjectFileHandler getProjectFileHandler(final Project project, final int version)
throws ProjectManagerException {
- return this.azkabanProjectLoader.getProjectFile(project, version);
+ return getProjectFileHandlerCache.computeIfAbsent(new Parameters(project, version), () -> {
+ return this.azkabanProjectLoader.getProjectFile(project, version);
+ }, 1000);
}
public Map<String, ValidationReport> uploadProject(final Project project,
azkaban-exec-server/build.gradle 6(+0 -6)
diff --git a/azkaban-exec-server/build.gradle b/azkaban-exec-server/build.gradle
index ac5d5e6..8c01c99 100644
--- a/azkaban-exec-server/build.gradle
+++ b/azkaban-exec-server/build.gradle
@@ -14,15 +14,9 @@
* the License.
*/
-plugins {
- id "io.freefair.aspectj.post-compile-weaving" version "3.1.4"
-}
-
apply plugin: 'distribution'
dependencies {
- aspect 'br.ufrgs.inf.prosoft.applicationtracer:ApplicationTracer:1.0'
-
compile(project(':az-core'))
compile(project(':azkaban-common'))
build.gradle 1(+1 -0)
diff --git a/build.gradle b/build.gradle
index b63e397..8650fc0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -165,6 +165,7 @@ subprojects {
}
dependencies {
+ compile "br.ufrgs.inf.prosoft.cache:Cache:1.0"
compile deps.log4j
compile deps.guice
compile deps.slf4j
docker-compose.yml 10(+2 -8)
diff --git a/docker-compose.yml b/docker-compose.yml
index b213601..a845f1d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,14 +5,8 @@ services:
container_name: azkaban
environment:
- JAVA_OPTS=${JAVA_OPTS:-"-Xmx6124m"}
- - TRACER_ENABLE=${TRACER_ENABLE:-true}
- - TRACER_MINIMUM_EXECUTION_TIME=${TRACER_MINIMUM_EXECUTION_TIME:-1}
- - TRACER_SERIALISE_INTERNALS=false
- - TRACER_VERBOSE=true
- - TRACER_TRACES=/caching-approaches-comparison/applications/traces/azkaban
- - TRACER_IGNORED_PACKAGES=/caching-approaches-comparison/applications/uncached/azkaban/ignored
- - TRACER_WHITELIST=/caching-approaches-comparison/applications/uncached/azkaban/whitelist
- - TRACER_LOG=/caching-approaches-comparison/applications/output/azkaban-tracer.log
+ - CACHE_EVENTS=${CACHE_EVENTS:-/caching-approaches-comparison/applications/output/azkaban-memoizeit-cache}
+ - CACHE_REGISTER_SIZE=false
volumes:
- application:/application
- /root/.gradle:/home/gradle/.gradle