This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new d412ecf Fix SegmentZKMetadta time handling (#7375)
d412ecf is described below
commit d412ecf388f9ec244d70b170ce8870571994d455
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Mon Aug 30 13:06:31 2021 -0700
Fix SegmentZKMetadta time handling (#7375)
---
.../common/metadata/segment/SegmentZKMetadata.java | 36 +++++++++++++---------
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/metadata/segment/SegmentZKMetadata.java
b/pinot-common/src/main/java/org/apache/pinot/common/metadata/segment/SegmentZKMetadata.java
index b188091..e80c991 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/metadata/segment/SegmentZKMetadata.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/metadata/segment/SegmentZKMetadata.java
@@ -65,12 +65,17 @@ public class SegmentZKMetadata implements ZKMetadata {
public long getStartTimeMs() {
if (!_startTimeMsCached) {
+ long startTimeMs = -1;
String startTimeString = _simpleFields.get(Segment.START_TIME);
- if (startTimeString != null && Long.parseLong(startTimeString) > 0) {
- _startTimeMs =
TimeUnit.valueOf(_simpleFields.get(Segment.TIME_UNIT)).toMillis(Long.parseLong(startTimeString));
- } else {
- _startTimeMs = -1;
+ if (startTimeString != null) {
+ long startTime = Long.parseLong(startTimeString);
+ // NOTE: Need to check whether the start time is positive because some
old segment ZK metadata contains negative
+ // start time and null time unit
+ if (startTime > 0) {
+ startTimeMs =
TimeUnit.valueOf(_simpleFields.get(Segment.TIME_UNIT)).toMillis(startTime);
+ }
}
+ _startTimeMs = startTimeMs;
_startTimeMsCached = true;
}
return _startTimeMs;
@@ -78,12 +83,17 @@ public class SegmentZKMetadata implements ZKMetadata {
public long getEndTimeMs() {
if (!_endTimeMsCached) {
+ long endTimeMs = -1;
String endTimeString = _simpleFields.get(Segment.END_TIME);
- if (endTimeString != null && Long.parseLong(endTimeString) > 0) {
- _endTimeMs =
TimeUnit.valueOf(_simpleFields.get(Segment.TIME_UNIT)).toMillis(Long.parseLong(endTimeString));
- } else {
- _endTimeMs = -1;
+ if (endTimeString != null) {
+ long endTime = Long.parseLong(endTimeString);
+ // NOTE: Need to check whether the end time is positive because some
old segment ZK metadata contains negative
+ // end time and null time unit
+ if (endTime > 0) {
+ endTimeMs =
TimeUnit.valueOf(_simpleFields.get(Segment.TIME_UNIT)).toMillis(endTime);
+ }
}
+ _endTimeMs = endTimeMs;
_endTimeMsCached = true;
}
return _endTimeMs;
@@ -409,12 +419,10 @@ public class SegmentZKMetadata implements ZKMetadata {
@Deprecated
public Interval getTimeInterval() {
- String startTimeString = _simpleFields.get(Segment.START_TIME);
- if (startTimeString != null) {
- String endTimeString = _simpleFields.get(Segment.END_TIME);
- TimeUnit timeUnit =
TimeUnit.valueOf(_simpleFields.get(Segment.TIME_UNIT));
- return new Interval(timeUnit.toMillis(Long.parseLong(startTimeString)),
- timeUnit.toMillis(Long.parseLong(endTimeString)));
+ long startTimeMs = getStartTimeMs();
+ long endTimeMs = getEndTimeMs();
+ if (startTimeMs > 0 && endTimeMs > 0) {
+ return new Interval(startTimeMs, endTimeMs);
} else {
return null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]