Gerrit van Doorn
07/29/2022, 7:03 PM2022/07/29 17:37:10.353 INFO [LLCSegmentCompletionHandlers] [grizzly-http-server-38] Response to segmentCommitEndWithMetadata for segment:events__2__0__20220729T1717Z is:{"offset":-1,"status":"COMMIT_SUCCESS","isSplitCommitType":false,"streamPartitionMsgOffset":null,"buildTimeSec":-1}
I’m just wondering why it says isSplitCommitType":false when both controller and server configs specify pinot.server.instance.enable.split.commit=true and controller.enable.split.commit=trueJackie
07/29/2022, 10:23 PMcontroller.enable.split.commit configured twiceGerrit van Doorn
07/30/2022, 2:30 AMJackie
07/30/2022, 6:00 PMJackie
07/30/2022, 6:01 PMGerrit van Doorn
07/30/2022, 6:05 PMJackie
07/30/2022, 6:07 PMGerrit van Doorn
07/31/2022, 6:50 PMGerrit van Doorn
07/31/2022, 6:51 PMGerrit van Doorn
07/31/2022, 6:54 PMGerrit van Doorn
07/31/2022, 10:40 PMGerrit van Doorn
07/31/2022, 10:42 PMJackie
07/31/2022, 11:52 PMJackie
07/31/2022, 11:52 PMGerrit van Doorn
07/31/2022, 11:56 PMcontroller.data.dir=<os://FOO-PINOT-DEEP-STORE/segments>
controller.local.temp.dir=/tmp/pinot/controller/temp
controller.helix.cluster.name=PinotCluster
controller.port=9000
pinot.set.instance.id.to.hostname=true
controller.zk.str=localhost:2185
pinot.controller.storage.factory.class.os=com.company.ObjectStorePinotFS
pinot.controller.storage.factory.os.some_config_param = foo
pinot.controller.segment.fetcher.protocols=file,http,os
controller.allow.hlc.tables=false
controller.enable.split.commit=true
controller.realtime.segment.deepStoreUploadRetryEnabled=trueGerrit van Doorn
07/31/2022, 11:57 PM2022/07/31 17:21:59.850 INFO [LLCSegmentCompletionHandlers] [grizzly-http-server-25] Response to segmentConsumed for segment:events__1__8__20220731T1621Z is :{"offset":618548030,"status":"COMMIT","isSplitCommitType":true,"controllerVipUrl":"<http://foo4g-rf3-28a.sjc.company.com:9000>","buildTimeSec":126,"streamPartitionMsgOffset":"618548030"}
but in a later request:
2022/07/31 17:22:07.371 INFO [LLCSegmentCompletionHandlers] [grizzly-http-server-26] Response to segmentCommitStart for segment:events__1__8__20220731T1621Z is:{"offset":-1,"status":"COMMIT_CONTINUE","isSplitCommitType":false,"buildTimeSec":-1,"streamPartitionMsgOffset":null}
and finally:
2022/07/31 17:22:16.981 INFO [LLCSegmentCompletionHandlers] [grizzly-http-server-27] Response to segmentCommitEndWithMetadata for segment:events__1__8__20220731T1621Z is:{"offset":-1,"status":"COMMIT_SUCCESS","isSplitCommitType":false,"buildTimeSec":-1,"streamPartitionMsgOffset":null}Jackie
07/31/2022, 11:59 PMGerrit van Doorn
08/01/2022, 12:07 AMpinot.cluster.name=PinotCluster
pinot.server.instance.realtime.alloc.offheap=true
pinot.set.instance.id.to.hostname=true
pinot.zk.server=localhost:2185
pinot.server.netty.port=7000
pinot.server.adminapi.port=7500
pinot.server.instance.dataDir=/tmp/pinot/server/data
pinot.server.instance.segmentTarDir=/tmp/pinot/server/segments
pinot.server.instance.segment.store.uri=<os://FOO-PINOT-DEEP-STORE/segments>
pinot.server.instance.enable.split.commit=true
pinot.server.storage.factory.class.os=com.company.ObjectStorePinotFS
pinot.server.segment.fetcher.protocols=file,http,os
pinot.server.segment.fetcher.os.class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcherGerrit van Doorn
08/01/2022, 12:16 AM2022/07/31 17:22:00.560 INFO [SegmentIndexCreationDriverImpl] [events__1__8__20220731T1621Z] Start building IndexCreator!
2022/07/31 17:22:05.503 INFO [SegmentIndexCreationDriverImpl] [events__1__8__20220731T1621Z] Finished records indexing in IndexCreator!
2022/07/31 17:22:05.983 INFO [SegmentIndexCreationDriverImpl] [events__1__8__20220731T1621Z] Finished segment seal!
2022/07/31 17:22:05.983 INFO [SegmentV1V2ToV3FormatConverter] [events__1__8__20220731T1621Z] Converting segment: /tmp/pinot/server/data/events_REALTIME/_tmp/tmp-events__1__8__20220731T1621Z-1659288119861/events__1__8__20220731T1621Z to v3 format
2022/07/31 17:22:06.247 INFO [SegmentV1V2ToV3FormatConverter] [events__1__8__20220731T1621Z] v3 segment location for segment: events__1__8__20220731T1621Z is /tmp/pinot/server/data/events_REALTIME/_tmp/tmp-events__1__8__20220731T1621Z-1659288119861/events__1__8__20220731T1621Z/v3
2022/07/31 17:22:06.247 INFO [SegmentV1V2ToV3FormatConverter] [events__1__8__20220731T1621Z] Deleting files in v1 segment directory: /tmp/pinot/server/data/events_REALTIME/_tmp/tmp-events__1__8__20220731T1621Z-1659288119861/events__1__8__20220731T1621Z
2022/07/31 17:22:06.292 INFO [CrcUtils] [events__1__8__20220731T1621Z] Computed crc = 2416143356, based on files [/tmp/pinot/server/data/events_REALTIME/_tmp/tmp-events__1__8__20220731T1621Z-1659288119861/events__1__8__20220731T1621Z/v3/columns.psf, /tmp/pinot/server/data/events_REALTIME/_tmp/tmp-events__1__8__20220731T1621Z-1659288119861/events__1__8__20220731T1621Z/v3/index_map, /tmp/pinot/server/data/events_REALTIME/_tmp/tmp-events__1__8__20220731T1621Z-1659288119861/events__1__8__20220731T1621Z/v3/metadata.properties]
2022/07/31 17:22:06.292 INFO [SegmentIndexCreationDriverImpl] [events__1__8__20220731T1621Z] Driver, record read time : 2932
2022/07/31 17:22:06.292 INFO [SegmentIndexCreationDriverImpl] [events__1__8__20220731T1621Z] Driver, stats collector time : 0
2022/07/31 17:22:06.292 INFO [SegmentIndexCreationDriverImpl] [events__1__8__20220731T1621Z] Driver, indexing time : 2009
2022/07/31 17:22:06.292 INFO [LLRealtimeSegmentDataManager_events__1__8__20220731T1621Z] [events__1__8__20220731T1621Z] Successfully built segment in 6431 ms, after lockWaitTime 0 ms
2022/07/31 17:22:07.373 INFO [FileUploadDownloadClient] [events__1__8__20220731T1621Z] Sending request: <http://foo4g-rf3-28a.sjc.company.com:9000/segmentCommitStart?segmentSizeBytes=43878029&buildTimeMillis=6431&streamPartitionMsgOffset=618548030&instance=Server_foo4g-rf3-28a.sjc.company.com_7000&offset=-1&name=events__1__8__20220731T1621Z&rowCount=96739&memoryUsedBytes=91053992> to controller: <http://foo4g-rf3-28a.sjc.company.com|foo4g-rf3-28a.sjc.company.com>, version: Unknown
2022/07/31 17:22:07.373 INFO [ServerSegmentCompletionProtocolHandler] [events__1__8__20220731T1621Z] Controller response {"offset":-1,"streamPartitionMsgOffset":null,"buildTimeSec":-1,"isSplitCommitType":false,"status":"COMMIT_CONTINUE"} for <http://foo4g-rf3-28a.sjc.company.com:9000/segmentCommitStart?segmentSizeBytes=43878029&buildTimeMillis=6431&streamPartitionMsgOffset=618548030&instance=Server_foo4g-rf3-28a.sjc.company.com_7000&offset=-1&name=events__1__8__20220731T1621Z&rowCount=96739&memoryUsedBytes=91053992>
2022/07/31 17:22:07.374 INFO [ObjectStorePinotFS] [pool-22-thread-1] EXISTS: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>
2022/07/31 17:22:07.375 INFO [ObjectStorePinotFS] [pool-22-thread-1] IS_DIRECTORY: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>
2022/07/31 17:22:07.375 INFO [ObjectStorePinotFS] [pool-22-thread-1] Returning pail client for uri: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>
2022/07/31 17:22:07.375 INFO [ObjectStorePinotFS] [pool-22-thread-1] IS_DIRECTORY Listing prefix: segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907/
2022/07/31 17:22:07.954 INFO [ObjectStorePinotFS] [pool-22-thread-1] IS_DIRECTORY Found 0 results for prefix segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907/
2022/07/31 17:22:07.954 INFO [ObjectStorePinotFS] [pool-22-thread-1] EXISTS: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907> is is a file?
2022/07/31 17:22:07.954 INFO [ObjectStorePinotFS] [pool-22-thread-1] Returning pail client for uri: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>
2022/07/31 17:22:07.960 INFO [ObjectStorePinotFS] [pool-22-thread-1] EXISTS_FILE: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907> does not exist
2022/07/31 17:22:07.960 INFO [ObjectStorePinotFS] [pool-22-thread-1] COPY_FROM_LOCAL_FILE: /tmp/pinot/server/data/events_REALTIME/events__1__8__20220731T1621Z.tar.gz of 7401128 bytes => <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>
2022/07/31 17:22:07.960 INFO [ObjectStorePinotFS] [pool-22-thread-1] Returning pail client for uri: <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>
2022/07/31 17:22:08.392 INFO [ObjectStorePinotFS] [pool-22-thread-1] COPY_FROM_LOCAL_FILE Copied /tmp/pinot/server/data/events_REALTIME/events__1__8__20220731T1621Z.tar.gz with size 7401128 to prefix segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907
2022/07/31 17:22:08.392 INFO [PinotFSSegmentUploader] [events__1__8__20220731T1621Z] Successfully upload segment events__1__8__20220731T1621Z to <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907>.
2022/07/31 17:22:16.984 INFO [FileUploadDownloadClient] [events__1__8__20220731T1621Z] Sending request: <http://foo4g-rf3-28a.sjc.company.com:9000/segmentCommitEndWithMetadata?segmentSizeBytes=43878029&buildTimeMillis=6431&streamPartitionMsgOffset=618548030&instance=Server_foo4g-rf3-28a.sjc.company.com_7000&offset=-1&name=events__1__8__20220731T1621Z&location=os%3A%2F%2FFOO-PINOT-DEEP-STORE%2Fsegments%2Fevents%2Fevents__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907&rowCount=96739&memoryUsedBytes=91053992> to controller: <http://foo4g-rf3-28a.sjc.company.com|foo4g-rf3-28a.sjc.company.com>, version: Unknown
2022/07/31 17:22:16.984 INFO [ServerSegmentCompletionProtocolHandler] [events__1__8__20220731T1621Z] Controller response {"offset":-1,"streamPartitionMsgOffset":null,"buildTimeSec":-1,"isSplitCommitType":false,"status":"COMMIT_SUCCESS"} for <http://foo4g-rf3-28a.sjc.company.com:9000/segmentCommitEndWithMetadata?segmentSizeBytes=43878029&buildTimeMillis=6431&streamPartitionMsgOffset=618548030&instance=Server_foo4g-rf3-28a.sjc.company.com_7000&offset=-1&name=events__1__8__20220731T1621Z&location=os%3A%2F%2FFOO-PINOT-DEEP-STORE%2Fsegments%2Fevents%2Fevents__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907&rowCount=96739&memoryUsedBytes=91053992>
2022/07/31 17:22:17.383 INFO [ImmutableSegmentLoader] [events__1__8__20220731T1621Z] Successfully loaded segment: events__1__8__20220731T1621Z with SegmentDirectory
2022/07/31 17:22:17.383 INFO [events_REALTIME-RealtimeTableDataManager] [events__1__8__20220731T1621Z] Adding immutable segment: events__1__8__20220731T1621Z to table: events_REALTIME
2022/07/31 17:22:17.383 INFO [events_REALTIME-RealtimeTableDataManager] [events__1__8__20220731T1621Z] Replaced immutable segment: events__1__8__20220731T1621Z of table: events_REALTIME
2022/07/31 17:22:17.383 INFO [events_REALTIME-RealtimeTableDataManager] [events__1__8__20220731T1621Z] Closing segment: events__1__8__20220731T1621Z of table: events_REALTIME
2022/07/31 17:22:17.383 INFO [feed-events-1] [events__1__8__20220731T1621Z] Trying to close RealtimeSegmentImpl : events__1__8__20220731T1621Z
2022/07/31 17:22:17.383 INFO [feed-events-1] [events__1__8__20220731T1621Z] Segment used 91053992 bytes of memory for 96739 rows consumed in 3600 seconds
2022/07/31 17:22:17.391 INFO [MmapMemoryManager] [events__1__8__20220731T1621Z] Closing buffer org.apache.pinot.segment.spi.memory.PinotByteBuffer@531bab5
2022/07/31 17:22:17.495 INFO [MmapMemoryManager] [events__1__8__20220731T1621Z] Deleted file /tmp/pinot/server/data/events_REALTIME/consumers/events__1__8__20220731T1621Z.0
2022/07/31 17:22:17.496 INFO [events_REALTIME-RealtimeTableDataManager] [events__1__8__20220731T1621Z] Closed segment: events__1__8__20220731T1621Z of table: events_REALTIME
2022/07/31 17:22:30.627 INFO [HelixTaskExecutor] [ZkClient-EventThread-69-localhost:2185] Scheduling message d5c253d4-efbe-4e14-af4f-e572fdcb2a5d: events_REALTIME:events__1__8__20220731T1621Z, CONSUMING->ONLINE
2022/07/31 17:22:30.630 INFO [HelixStateTransitionHandler] [HelixTaskExecutor-message_handle_thread] handling message: d5c253d4-efbe-4e14-af4f-e572fdcb2a5d transit events_REALTIME.events__1__8__20220731T1621Z|[] from:CONSUMING to:ONLINE, relayedFrom: null
2022/07/31 17:22:31.297 INFO [HelixStateTransitionHandler] [HelixTaskExecutor-message_handle_thread] Instance Server_foo4g-rf3-28a.sjc.company.com_7000, partition events__1__8__20220731T1621Z received state transition from CONSUMING to ONLINE on session 1a46823bfca14510, message id: d5c253d4-efbe-4e14-af4f-e572fdcb2a5d
2022/07/31 17:22:31.298 INFO [SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel] [HelixTaskExecutor-message_handle_thread] Segment events__1__8__20220731T1621Z not an instance of LLRealtimeSegmentDataManager. Reporting success for the transition
2022/07/31 17:22:32.550 INFO [HelixTask] [HelixTaskExecutor-message_handle_thread] Message: d5c253d4-efbe-4e14-af4f-e572fdcb2a5d (parent: null) handling task for events_REALTIME:events__1__8__20220731T1621Z completed at: 1659288152550, results: true. FrameworkTime: 586 ms; HandlerTime: 1336 ms.Jackie
08/01/2022, 12:25 AMGerrit van Doorn
08/01/2022, 12:57 AM<os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907> => <os://FOO-PINOT-DEEP-STORE/segments/events/events__1__8__20220731T1621Z>
which might be what is intended. It’s just that this is not atomic on our backend, so it requires a download + uploadGerrit van Doorn
08/01/2022, 2:11 AM@Override
public boolean doMove(URI srcUri, URI dstUri)
throws IOException {
if (copyDir(srcUri, dstUri)) {
return delete(srcUri, true);
}
return false;
}
Where hadoop has renameJackie
08/02/2022, 12:15 AMpinotFS.move() which moves the segment file from a temporary location to the final location. One thing I'm not sure is why do we need to first upload the segment to a temporary location, then move to the final location. cc @Neha Pawar @Subbu Subramaniam who have more context on this behaviorGerrit van Doorn
08/02/2022, 12:16 AMSubbu Subramaniam
08/02/2022, 12:27 AMGerrit van Doorn
08/02/2022, 12:28 AMSubbu Subramaniam
08/02/2022, 12:30 AMPinotFS is implemented. So, the move method is assumed to be there.Gerrit van Doorn
08/02/2022, 12:33 AMSubbu Subramaniam
08/02/2022, 12:34 AMcommitEnd req sent to the controllerSubbu Subramaniam
08/02/2022, 12:35 AMcopy? If so, then the move method for that FS (you are using S3, right?) should just call copyJackie
08/02/2022, 12:35 AMPinotFS impl S3 and GCS doesn't have rename supported, so we do copy then delete insteadSubbu Subramaniam
08/02/2022, 12:36 AMcopy involves the controller?Gerrit van Doorn
08/02/2022, 12:36 AMfoo__1__8__20220731T1621Z
instead of:
foo__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907
The controller could also have said “Hey foo__1__8__20220731T1621Zc406d289-0827-4bf2-a1ba-d699df0b5907 is done, I’m going to use that filename”Jackie
08/02/2022, 12:41 AMJackie
08/02/2022, 12:41 AMmove to by-pass controller?Gerrit van Doorn
08/02/2022, 12:45 AMJackie
08/02/2022, 12:48 AMJackie
08/02/2022, 12:48 AMSubbu Subramaniam
08/02/2022, 12:57 AMmove can be optimized to remove the controller from the equation.Sajjad Moradi
08/02/2022, 5:06 PMSubbu Subramaniam
08/02/2022, 5:08 PMPinotFS.move() as well.