mcvsubbu commented on a change in pull request #7927:
URL: https://github.com/apache/pinot/pull/7927#discussion_r772617262
##########
File path:
pinot-core/src/main/java/org/apache/pinot/core/data/manager/realtime/LLRealtimeSegmentDataManager.java
##########
@@ -294,15 +300,17 @@ public void deleteSegmentFile() {
private boolean endCriteriaReached() {
Preconditions.checkState(_state.shouldConsume(), "Incorrect state %s",
_state);
long now = now();
+ long consumeEndTime = _consumeEndTime;
switch (_state) {
case INITIAL_CONSUMING:
// The segment has been created, and we have not posted a
segmentConsumed() message on the controller yet.
// We need to consume as much data as available, until we have either
reached the max number of rows or
// the max time we are allowed to consume.
- if (now >= _consumeEndTime) {
+ if (now >= consumeEndTime) {
if (_realtimeSegment.getNumDocsIndexed() == 0) {
_segmentLogger.info("No events came in, extending time by {}
hours", TIME_EXTENSION_ON_EMPTY_SEGMENT_HOURS);
- _consumeEndTime +=
TimeUnit.HOURS.toMillis(TIME_EXTENSION_ON_EMPTY_SEGMENT_HOURS);
+ CONSUME_END_TIME_UPDATER.compareAndSet(this, consumeEndTime,
consumeEndTime
+ +
TimeUnit.HOURS.toMillis(TIME_EXTENSION_ON_EMPTY_SEGMENT_HOURS));
Review comment:
I am +1 on Jackie's comment. Unless we see a need, can we keep it as it
is?
The only time the object is accessed in multiple threads is during
completion when an ONLINE state transition is received.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]