thingsboard-aplcache
Changes
application/pom.xml 54(+0 -54)
common/queue/pom.xml 57(+0 -57)
dao/pom.xml 54(+0 -54)
docker-compose.yml 12(+4 -8)
pom.xml 10(+10 -0)
rule-engine/rule-engine-components/pom.xml 55(+0 -55)
run.sh 2(+0 -2)
Details
application/pom.xml 54(+0 -54)
diff --git a/application/pom.xml b/application/pom.xml
index 6ca55bd..8b37284 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -264,11 +264,6 @@
<groupId>org.javadelight</groupId>
<artifactId>delight-nashorn-sandbox</artifactId>
</dependency>
- <dependency>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- <version>1.0</version>
- </dependency>
</dependencies>
<build>
@@ -611,55 +606,6 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
-
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <version>1.11</version>
- <configuration>
- <showWeaveInfo>false</showWeaveInfo>
- <complianceLevel>1.8</complianceLevel>
- <source>1.8</source>
- <target>1.8</target>
- <Xlint>ignore</Xlint>
- <encoding>UTF-8</encoding>
- <verbose>false</verbose>
- <forceAjcCompile>true</forceAjcCompile>
- <sources/>
- <weaveDirectories>
- <weaveDirectory>${project.build.directory}/classes</weaveDirectory>
- </weaveDirectories>
- <aspectLibraries>
- <aspectLibrary>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- </aspectLibrary>
- </aspectLibraries>
- </configuration>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>compile</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>1.9.1</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjtools</artifactId>
- <version>1.9.1</version>
- </dependency>
- </dependencies>
- </plugin>
-
-
</plugins>
</build>
<repositories>
common/queue/pom.xml 57(+0 -57)
diff --git a/common/queue/pom.xml b/common/queue/pom.xml
index 63e0854..b87c864 100644
--- a/common/queue/pom.xml
+++ b/common/queue/pom.xml
@@ -94,62 +94,5 @@
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- <version>1.0</version>
- </dependency>
</dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <version>1.11</version>
- <configuration>
- <showWeaveInfo>false</showWeaveInfo>
- <complianceLevel>1.8</complianceLevel>
- <source>1.8</source>
- <target>1.8</target>
- <Xlint>ignore</Xlint>
- <encoding>UTF-8</encoding>
- <verbose>false</verbose>
- <forceAjcCompile>true</forceAjcCompile>
- <sources/>
- <weaveDirectories>
- <weaveDirectory>${project.build.directory}/classes</weaveDirectory>
- </weaveDirectories>
- <aspectLibraries>
- <aspectLibrary>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- </aspectLibrary>
- </aspectLibraries>
- </configuration>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>compile</goal>
- <goal>test-compile</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>1.9.1</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjtools</artifactId>
- <version>1.9.1</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
-
</project>
dao/pom.xml 54(+0 -54)
diff --git a/dao/pom.xml b/dao/pom.xml
index 6e016fe..63332eb 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -194,11 +194,6 @@
<groupId>org.elasticsearch.client</groupId>
<artifactId>rest</artifactId>
</dependency>
- <dependency>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- <version>1.0</version>
- </dependency>
</dependencies>
<build>
<plugins>
@@ -224,55 +219,6 @@
</execution>
</executions>
</plugin>
-
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <version>1.11</version>
- <configuration>
- <showWeaveInfo>false</showWeaveInfo>
- <complianceLevel>1.8</complianceLevel>
- <source>1.6</source>
- <target>1.6</target>
- <Xlint>ignore</Xlint>
- <encoding>UTF-8</encoding>
- <verbose>false</verbose>
- <forceAjcCompile>true</forceAjcCompile>
- <sources/>
- <weaveDirectories>
- <weaveDirectory>${project.build.directory}/classes</weaveDirectory>
- </weaveDirectories>
- <aspectLibraries>
- <aspectLibrary>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- </aspectLibrary>
- </aspectLibraries>
- </configuration>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>compile</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>1.9.1</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjtools</artifactId>
- <version>1.9.1</version>
- </dependency>
- </dependencies>
- </plugin>
-
-
</plugins>
</build>
</project>
diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
index 0c5690c..915b8c9 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java
@@ -15,6 +15,8 @@
*/
package org.thingsboard.server.dao.rule;
+import br.ufrgs.inf.prosoft.aplcache.caching.APLCache;
+
import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -270,12 +272,16 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
}
}
+public static APLCache<List<RuleNode>> getRuleChainNodesCache = new APLCache<>("BaseRuleChainService.getRuleChainNodes");
+
@Override
public List<RuleNode> getRuleChainNodes(TenantId tenantId, RuleChainId ruleChainId) {
+return getRuleChainNodesCache.computeIfAbsent(Thread.currentThread(), new Object[]{tenantId, ruleChainId}, () -> {
Validator.validateId(ruleChainId, "Incorrect rule chain id for search request.");
List<EntityRelation> relations = getRuleChainToNodeRelations(tenantId, ruleChainId);
List<RuleNode> ruleNodes = relations.stream().map(relation -> ruleNodeDao.findById(tenantId, relation.getTo().getId())).collect(Collectors.toList());
return ruleNodes;
+}, 300000);
}
@Override
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java
index add162c..053b01f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java
@@ -15,6 +15,8 @@
*/
package org.thingsboard.server.dao.sql.widget;
+import br.ufrgs.inf.prosoft.aplcache.caching.APLCache;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.CrudRepository;
@@ -55,9 +57,13 @@ public class JpaWidgetsBundleDao extends JpaAbstractSearchTextDao<WidgetsBundleE
return widgetsBundleRepository;
}
+public static APLCache<WidgetsBundle> findWidgetsBundleByTenantIdAndAliasCache = new APLCache<>("JpaWidgetsBundleDao.findWidgetsBundleByTenantIdAndAlias");
+
@Override
public WidgetsBundle findWidgetsBundleByTenantIdAndAlias(UUID tenantId, String alias) {
+ return findWidgetsBundleByTenantIdAndAliasCache.computeIfAbsent(Thread.currentThread(), new Object[]{tenantId, alias}, () -> {
return DaoUtil.getData(widgetsBundleRepository.findWidgetsBundleByTenantIdAndAlias(UUIDConverter.fromTimeUUID(tenantId), alias));
+}, 300000);
}
@Override
docker-compose.yml 12(+4 -8)
diff --git a/docker-compose.yml b/docker-compose.yml
index 2496297..ba44b8a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,15 +4,11 @@ services:
build: .
container_name: thingsboard
environment:
- - JAVA_OPTS=${JAVA_OPTS:-"-Xmx6124m"}
- - TRACER_ENABLE=${TRACER_ENABLE:-true}
- - TRACER_MINIMUM_EXECUTION_TIME=${TRACER_MINIMUM_EXECUTION_TIME:-1}
+ - JAVA_OPTS=${JAVA_OPTS:-"-Xms4096m -Xmx6124m"}
+ - CACHE_EVENTS=${CACHE_EVENTS:-/caching-approaches-comparison/applications/output/thingsboard-aplcache-cache}
+ - CACHE_REGISTER_SIZE=false
+ - APLCACHE_CACHEABLE_PARAMETERS=/caching-approaches-comparison/applications/output/aplcache-thingsboard-parameters.json
- TRACER_SERIALISE_INTERNALS=false
- - TRACER_VERBOSE=true
- - TRACER_TRACES=/caching-approaches-comparison/applications/traces/thingsboard
- - TRACER_IGNORED_PACKAGES=/caching-approaches-comparison/applications/uncached/thingsboard/ignored
- - TRACER_WHITELIST=/caching-approaches-comparison/applications/uncached/thingsboard/whitelist
- - TRACER_LOG=/caching-approaches-comparison/applications/output/thingsboard-tracer.log
volumes:
- application:/application
- /root/.m2:/root/.m2
pom.xml 10(+10 -0)
diff --git a/pom.xml b/pom.xml
index f5e50dc..81883cf 100755
--- a/pom.xml
+++ b/pom.xml
@@ -327,6 +327,16 @@
<dependencies>
<dependency>
+ <groupId>br.ufrgs.inf.prosoft.cache</groupId>
+ <artifactId>Cache</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>br.ufrgs.inf.prosoft.aplcache</groupId>
+ <artifactId>APLCache</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
rule-engine/rule-engine-components/pom.xml 55(+0 -55)
diff --git a/rule-engine/rule-engine-components/pom.xml b/rule-engine/rule-engine-components/pom.xml
index be747f0..f46ff9f 100644
--- a/rule-engine/rule-engine-components/pom.xml
+++ b/rule-engine/rule-engine-components/pom.xml
@@ -119,11 +119,6 @@
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- <version>1.0</version>
- </dependency>
</dependencies>
<build>
@@ -160,56 +155,6 @@
</execution>
</executions>
</plugin>
-
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <version>1.11</version>
- <configuration>
- <showWeaveInfo>false</showWeaveInfo>
- <complianceLevel>1.8</complianceLevel>
- <source>1.8</source>
- <target>1.8</target>
- <Xlint>ignore</Xlint>
- <encoding>UTF-8</encoding>
- <verbose>false</verbose>
- <forceAjcCompile>true</forceAjcCompile>
- <sources/>
- <weaveDirectories>
- <weaveDirectory>${project.build.directory}/classes</weaveDirectory>
- </weaveDirectories>
- <aspectLibraries>
- <aspectLibrary>
- <groupId>br.ufrgs.inf.prosoft.applicationtracer</groupId>
- <artifactId>ApplicationTracer</artifactId>
- </aspectLibrary>
- </aspectLibraries>
- </configuration>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>compile</goal>
- <goal>test-compile</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>1.9.1</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjtools</artifactId>
- <version>1.9.1</version>
- </dependency>
- </dependencies>
- </plugin>
-
-
</plugins>
</build>
run.sh 2(+0 -2)
diff --git a/run.sh b/run.sh
index b1cc836..0d4b734 100644
--- a/run.sh
+++ b/run.sh
@@ -1,12 +1,10 @@
#!/bin/bash
if [ ! -e compiled ]; then
- export TRACER_ENABLE=false
mvn clean install -DskipTests -Dlicense.skip=true
cd application/src/main/scripts/install
bash install_dev_db.sh
cd ../../../../..
touch compiled
fi
-export TRACER_ENABLE=${TRACER_ENABLE:-true}
java -jar application/target/thingsboard-2.2.0-boot.jar