Issue #2063: Improve performance of grid blanking in iscMosaic by only retrieving history data, not entire grid slices.
Change-Id: Icd25e7e54a391ca19445be866e411b35aed54b16 Former-commit-id:5e53c3f0bd
[formerly51b317ac52
] [formerly9acf385f21
] [formerlybad6a1fa40
[formerly9acf385f21
[formerly 5570ee749c5797f8f2c9ab3f6f8392d2c5680d32]]] Former-commit-id:bad6a1fa40
Former-commit-id: 71dde9577d001c57231eb1ddf6cca6a71e302a55 [formerly070365714a
] Former-commit-id:5fe4739fc4
This commit is contained in:
parent
3e28a3a2c2
commit
8ade43a3dc
2 changed files with 44 additions and 6 deletions
|
@ -26,6 +26,7 @@ import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
@ -81,6 +82,7 @@ import com.raytheon.uf.common.time.TimeRange;
|
||||||
* Apr 23, 2013 #1941 dgilling Implement put(), add methods to build
|
* Apr 23, 2013 #1941 dgilling Implement put(), add methods to build
|
||||||
* Scalar/VectorGridSlices, refactor
|
* Scalar/VectorGridSlices, refactor
|
||||||
* Discrete/WeatherGridSlices builders.
|
* Discrete/WeatherGridSlices builders.
|
||||||
|
* Jun 05, 2013 #2063 dgilling Port history() from A1.
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -308,6 +310,39 @@ public class IFPWE {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the grid history for a specified time range.
|
||||||
|
*
|
||||||
|
* @param tr
|
||||||
|
* The time for which the history is being requested.
|
||||||
|
* @return The grid history entries for the specified time range in coded
|
||||||
|
* string format.
|
||||||
|
*/
|
||||||
|
public List<String> history(final TimeRange tr) {
|
||||||
|
ServerResponse<Map<TimeRange, List<GridDataHistory>>> sr = GridParmManager
|
||||||
|
.getGridHistory(parmId, Arrays.asList(tr));
|
||||||
|
|
||||||
|
if (!sr.isOkay()) {
|
||||||
|
statusHandler.error("Error retrieving grid history for parm ["
|
||||||
|
+ parmId + "] at time range " + tr + ": " + sr.message());
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<TimeRange, List<GridDataHistory>> payload = sr.getPayload();
|
||||||
|
if ((payload == null) || (payload.isEmpty())) {
|
||||||
|
statusHandler.error("No grid history returned for parm [" + parmId
|
||||||
|
+ "] at time range " + tr);
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<GridDataHistory> hist = payload.get(tr);
|
||||||
|
List<String> retVal = new ArrayList<String>(hist.size());
|
||||||
|
for (GridDataHistory entry : hist) {
|
||||||
|
retVal.add(entry.getCodedString());
|
||||||
|
}
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
private void setItem(TimeRange time, IGridSlice gridSlice,
|
private void setItem(TimeRange time, IGridSlice gridSlice,
|
||||||
List<GridDataHistory> gdh) throws GfeException {
|
List<GridDataHistory> gdh) throws GfeException {
|
||||||
GFERecord rec = new GFERecord(parmId, time);
|
GFERecord rec = new GFERecord(parmId, time);
|
||||||
|
|
|
@ -80,6 +80,8 @@ from com.raytheon.uf.edex.database.cluster import ClusterTask
|
||||||
# 05/08/13 1988 dgilling Fix history handling bug in
|
# 05/08/13 1988 dgilling Fix history handling bug in
|
||||||
# __getDbGrid().
|
# __getDbGrid().
|
||||||
# 05/23/13 1759 dgilling Remove unnecessary imports.
|
# 05/23/13 1759 dgilling Remove unnecessary imports.
|
||||||
|
# 06/05/13 2063 dgilling Change __siteInDbGrid() to
|
||||||
|
# call IFPWE.history() like A1.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -1289,13 +1291,14 @@ class IscMosaic:
|
||||||
def __siteInDbGrid(self, tr):
|
def __siteInDbGrid(self, tr):
|
||||||
if tr is None:
|
if tr is None:
|
||||||
return None
|
return None
|
||||||
history = self.__dbwe.getItem(iscUtil.toJavaTimeRange(tr)).getHistory()
|
history = self.__dbwe.history(iscUtil.toJavaTimeRange(tr))
|
||||||
|
|
||||||
for i in range(0, len(history)):
|
itr = history.iterator()
|
||||||
index = string.find(history[i].getCodedString(), self.__siteID + "_GRID")
|
while itr.hasNext():
|
||||||
if index != -1:
|
h = str(itr.next())
|
||||||
return 1
|
if self.__siteID + "_GRID" in h:
|
||||||
return 0
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
# validateAdjustDiscreteKeys()
|
# validateAdjustDiscreteKeys()
|
||||||
|
|
Loading…
Add table
Reference in a new issue