You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/11/22 12:29:19 UTC

[ignite-teamcity-bot] branch ignite-10372 created (now 217f70d)

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a change to branch ignite-10372
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git.


      at 217f70d  IGNITE-10372: Optimize master trends page

This branch includes the following new commits:

     new 217f70d  IGNITE-10372: Optimize master trends page

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[ignite-teamcity-bot] 01/01: IGNITE-10372: Optimize master trends page

Posted by dp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-10372
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git

commit 217f70dcd771c2ac043612182ced9bf1621865dd
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Thu Nov 22 15:29:04 2018 +0300

    IGNITE-10372: Optimize master trends page
---
 .../ci/teamcity/ignited/TeamcityIgnitedImpl.java   | 45 +++++++++++++++-------
 .../ignited/fatbuild/FatBuildCompacted.java        | 10 +++--
 2 files changed, 38 insertions(+), 17 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
index 5e6e6b5..501a344 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
@@ -133,7 +133,10 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
         final int unknownStatus = compactor.getStringId(STATUS_UNKNOWN);
 
         List<BuildRefCompacted> buildRefs = getAllBuildsCompacted(buildTypeId, branchName)
-            .stream().filter(b -> b.status() != unknownStatus).collect(Collectors.toList());
+            .stream()
+            .filter(b -> b.isFinished(compactor))
+            .filter(b -> b.status() != unknownStatus)
+            .collect(Collectors.toList());
 
         int idSince = 0;
         int idUntil = buildRefs.size() - 1;
@@ -231,32 +234,32 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
         int minDiffId = since ? low : high;
         long temp;
 
-        FatBuildCompacted highBuild = getFatBuild(buildRefs.get(high).id(), SyncMode.LOAD_NEW);
-        FatBuildCompacted lowBuild = getFatBuild(buildRefs.get(low).id(), SyncMode.LOAD_NEW);
+        Date highBuildStartDate = getBuildStartDate(buildRefs.get(high).id());
+        Date lowBuildStartDate = getBuildStartDate(buildRefs.get(low).id());
 
-        if (highBuild != null && !highBuild.isFakeStub()){
-            if (highBuild.getStartDate().before(key))
+        if (highBuildStartDate != null) {
+            if (highBuildStartDate.before(key))
                 return since ? allDatesOutOfBounds : someDatesOutOfBounds;
         }
 
-        if (lowBuild != null && !lowBuild.isFakeStub()){
-            if (lowBuild.getStartDate().after(key))
+        if (lowBuildStartDate != null) {
+            if (lowBuildStartDate.after(key))
                 return since ? someDatesOutOfBounds : allDatesOutOfBounds;
         }
 
         while (low <= high) {
             int mid = (low + high) >>> 1;
-            FatBuildCompacted midVal = getFatBuild(buildRefs.get(mid).id(), SyncMode.LOAD_NEW);
+            Date midValStartDate = getBuildStartDate(buildRefs.get(mid).id());
 
-            if (midVal != null && !midVal.isFakeStub()) {
-                if (midVal.getStartDate().after(key))
+            if (midValStartDate != null) {
+                if (midValStartDate.after(key))
                     high = mid - 1;
-                else if (midVal.getStartDate().before(key))
+                else if (midValStartDate.before(key))
                     low = mid + 1;
                 else
                     return mid;
 
-                temp = midVal.getStartDate().getTime() - key.getTime();
+                temp = midValStartDate.getTime() - key.getTime();
 
                 if ((temp > 0 == since) && (Math.abs(temp) < minDiff)) {
                     minDiff = Math.abs(temp);
@@ -339,6 +342,15 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
         return buildConditionDao.setBuildCondition(srvIdMaskHigh, cond);
     }
 
+    @GuavaCached(maximumSize = 2000, cacheNullRval = false)
+    @Nullable public Date getBuildStartDate(int buildId) {
+        FatBuildCompacted highBuild = getFatBuild(buildId, SyncMode.LOAD_NEW);
+        if (highBuild == null || highBuild.isFakeStub())
+            return null;
+
+        return highBuild.getStartDate();
+    }
+
     /** {@inheritDoc} */
     @GuavaCached(maximumSize = 200, expireAfterAccessSecs = 30, softValues = true)
     @Override public FatBuildCompacted getFatBuild(int buildId, SyncMode mode) {
@@ -347,8 +359,13 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
         if (mode == SyncMode.NONE) {
             if (existingBuild != null)
                 return existingBuild;
-            else
-                return new FatBuildCompacted(); // providing fake builds
+            else {
+                FatBuildCompacted buildCompacted = new FatBuildCompacted();
+
+                buildCompacted.setFakeStub(true);
+
+                return buildCompacted; // providing fake builds
+            }
         }
 
         FatBuildCompacted savedVer = buildSync.loadBuild(conn, buildId, existingBuild, mode);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
index 419de92..bd4ec17 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
@@ -153,7 +153,11 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
             setFlag(FAILED_TO_START_F, true);
 
         if (build.isFakeStub())
-            setFlag(FAKE_BUILD_F, true);
+            setFakeStub(true);
+    }
+
+    public void setFakeStub(boolean val) {
+        setFlag(FAKE_BUILD_F, val);
     }
 
     public void buildTypeName(String btName, IStringCompactor compactor) {
@@ -284,8 +288,8 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
     }
 
     /** Start date. */
-    public Date getStartDate() {
-        return new Date(startDate);
+    @Nullable public Date getStartDate() {
+        return startDate > 0 ? new Date(startDate) : null;
     }
 
     /** {@inheritDoc} */