Hi Guys , need guidance with one of issue we are facing . We are testing upsert use case on realtime table , where realtime table has 20 million records and we are publishing additional 50million records. We have query loop running which basically validates total record count while upsert is in progress , we expect this query to return total count of 20 million consistently. Real time table has replication factor 2. We noticed that if one of our server goes down (We have 5 servers), pinot dont return result (i.e our count(*)query returns numberofSegmentsmatched=0, totaldocs=0, segmentqueried=0 etc ) for about 30secs before giving expected result. i.e 20 million. Also noticed when server comes back up total count is inconsistent for some time before returning expected result. Table remains in BAD state but keeps serving query with expected result after sometime. Our Table config "REALTIME": {
"tableName": "sometable",
"tableType": "REALTIME",
"segmentsConfig": {
"schemaName": "someschema",
"timeColumnName": "AuditDateTimeUTC",
"allowNullTimeValue": false,
"replication": "1",
"replicasPerPartition": “2”
},
"tenants": {
"broker": "DefaultTenant",
"server": "DefaultTenant",
"tagOverrideConfig": {}
},
"tableIndexConfig": {
"invertedIndexColumns": [],
"rangeIndexColumns": [],
"rangeIndexVersion": 1,
"autoGeneratedInvertedIndex": false,
"createInvertedIndexDuringSegmentGeneration": false,
"sortedColumn": [],
"bloomFilterColumns": [],
"loadMode": "MMAP",
"noDictionaryColumns": [some columns],
"onHeapDictionaryColumns": [],
"varLengthDictionaryColumns": [],
"enableDefaultStarTree": false,
"enableDynamicStarTreeCreation": false,
"aggregateMetrics": false,
"nullHandlingEnabled": false,
"streamConfigs": {
"streamType": "kafka",
"
stream.kafka.topic.name": "sometopic",
"stream.kafka.broker.list": "host:9092",
"stream.kafka.consumer.type": "lowlevel",
"stream.kafka.hlc.bootstrap.server": "host:9092",
"stream.kafka.consumer.prop.auto.offset.reset": "largest",
"
stream.kafka.consumer.factory.class.name": "org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory",
"
stream.kafka.decoder.class.name": "org.apache.pinot.plugin.stream.kafka.KafkaJSONMessageDecoder",
"realtime.segment.flush.threshold.rows": "0",
"realtime.segment.flush.threshold.size": "0",
"realtime.segment.flush.autotune.initialRows": “3000000",
"realtime.segment.flush.threshold.time": "24h",
"realtime.segment.flush.threshold.segment.size": “500M”
}
},
"metadata": {},
"quota": {},
"routing": {
"instanceSelectorType": "strictReplicaGroup"
},
"query": {},
"upsertConfig": {
"mode": "FULL",
"comparisonColumn": "AuditDateTimeUTC",
"hashFunction": "NONE"
},
"ingestionConfig": {},
"isDimTable": false
}
}