soumitra-st opened a new issue, #10566:
URL: https://github.com/apache/pinot/issues/10566
There are 6 servers, and are assigned into 2 pools by creating tags as below:
Group1: Server_192.168.1.160_8001, Server_192.168.1.160_8002, and
Server_192.168.1.160_8003 have tag "DefaultTenant_OFFLINE": "0"
Group2: Server_192.168.1.160_8004, Server_192.168.1.160_8005, and
Server_192.168.1.160_8006 have tag "DefaultTenant_OFFLINE": "1"
Group1 servers are in FD1, and Group2 servers in FD2. Now creating a table
with FD_AWARE_INSTANCE_PARTITION_SELECTOR, the table config is:
```
% cat transcript-table-offline.json.rg
{
"tableName": "transcript",
"segmentsConfig" : {
"replicaGroupStrategyConfig": {
"partitionColumn": "timestamp",
"numInstancesPerPartition": 2
},
"timeColumnName": "timestamp",
"timeType": "MILLISECONDS",
"replication" : "2",
"schemaName" : "transcript"
},
"tableIndexConfig" : {
"invertedIndexColumns" : [],
"loadMode" : "MMAP"
},
"tenants" : {
"broker":"DefaultTenant",
"server":"DefaultTenant"
},
"tableType":"OFFLINE",
"metadata": {},
"instanceAssignmentConfigMap": {
"OFFLINE": {
"partitionSelector": "FD_AWARE_INSTANCE_PARTITION_SELECTOR",
"tagPoolConfig": {
"tag": "DefaultTenant_OFFLINE",
"poolBased": true
},
"replicaGroupPartitionConfig": {
"replicaGroupBased": true,
"numReplicaGroups": 2,
"numPartitions": 2,
"numInstancesPerPartition": 2
}
}
}
}
```
Adding a table with above table config to do FD aware instance assignment:
```
% bin/pinot-admin.sh AddTable -tableConfigFile
$BASE_DIR/transcript-table-offline.json.rg -schemaFile
$BASE_DIR/transcript-schema.json -controllerPort 9001 -exec
…
Executing command: AddTable -tableConfigFile
/Users/soumitra/pinot-tutorial/transcript/transcript-table-offline.json.rg
-offlineTableConfigFile null -realtimeTableConfigFilenull -schemaFile
/Users/soumitra/pinot-tutorial/transcript/transcript-schema.json
-controllerProtocol http -controllerHost 192.168.1.160 -controllerPort 9001
-user null -password [hidden] -exec
{"unrecognizedProperties":{},"status":"TableConfigs transcript successfully
added"}
```
Instance assignment as per the logs:
```
% grep PartitionSelector logs/pinot-all.log
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Assigning 2 replica groups to 2 fault domains
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Warning, normalizing isn't finished yet
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Selecting 2 partitions, 2 instances per partition
within a replica-group for table: transcript_OFFLINE
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Selecting instances: [Server_192.168.1.160_8001,
Server_192.168.1.160_8004] for replica-group: 0, partition: 0 for table:
transcript_OFFLINE
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Selecting instances: [Server_192.168.1.160_8002,
Server_192.168.1.160_8001] for replica-group: 0, partition: 1 for table:
transcript_OFFLINE
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Selecting instances: [Server_192.168.1.160_8005,
Server_192.168.1.160_8003] for replica-group: 1, partition: 0 for table:
transcript_OFFLINE
2023/03/28 20:57:10.807 INFO [FDAwareInstancePartitionSelector]
[grizzly-http-server-9] Selecting instances: [Server_192.168.1.160_8006,
Server_192.168.1.160_8005] for replica-group: 1, partition: 1 for table:
transcript_OFFLINE
```
As per above logs:
[Server_192.168.1.160_8001, Server_192.168.1.160_8004] for replica-group: 0,
partition: 0
[Server_192.168.1.160_8002, Server_192.168.1.160_8001] for replica-group: 0,
partition: 1
[Server_192.168.1.160_8005, Server_192.168.1.160_8003] for replica-group: 1,
partition: 0
[Server_192.168.1.160_8006, Server_192.168.1.160_8005] for replica-group: 1,
partition: 1
If entire FD1 is down, then [Server_192.168.1.160_8001,
Server_192.168.1.160_8002, and Server_192.168.1.160_8003] are not down, hence
"replica-group: 0, partition: 0" and "replica-group: 1, partition: 0", both are
not available. If the segments have two replicas, then no replica of partition
0 is available. Does it mean that the queries to "partition 0" will fail?
This is a simple scenario, most likely not a bug. What am I missing in
understanding the FD aware instance assignment?
--
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]