Slackbot
11/02/2023, 7:23 PMLari Hotari
11/02/2023, 8:46 PMAll 3 bookies were landed on the same availability_zone eventhough we configured bookkeeperClientEnforceStrictZoneawarePlacement and bookkeeperClientMinNumZonesPerWriteQuorum
These setting are used to choose the bookies a newly created ledger (Pulsar topic "segment"). If you really mean the bookie pod placement, that is up to the deployment to handle. Which deployment method are you using? Helm chart or Operator? Which flavour?
swamy mavuri
11/03/2023, 4:18 AMLari Hotari
11/03/2023, 6:59 AMswamy mavuri
11/03/2023, 8:53 AMLari Hotari
11/03/2023, 9:13 AMLari Hotari
11/03/2023, 9:14 AMLari Hotari
11/03/2023, 9:14 AMswamy mavuri
11/03/2023, 9:32 AMswamy mavuri
11/03/2023, 9:32 AMswamy mavuri
11/03/2023, 9:59 AM/region/az (reference from the source code test cases)
From the Source code,
https://github.com/apache/bookkeeper/blob/df4492012cc03682534cbc8dd68dd81163b0c947[…]va/org/apache/bookkeeper/replication/TestReplicationWorker.java
We are getting the below exception
Failed to perform http post request: javax.ws.rs.ClientErrorException: HTTP 412 {"reason":"Bookie 'rack' parameter is invalid, When `RackawareEnsemblePlacementPolicy` is enabled, the rack name is not allowed to contain slash (`/`) except for the beginning and end of the rack name string. When `RegionawareEnsemblePlacementPolicy` is enabled, the rack name can only contain one slash (`/`) except for the Bookie 'rack' parameter is invalid, When `RackawareEnsemblePlacementPolicy` is enabled, the rack name is not allowed to contain slash (`/`) except for the beginning and end of the rack name string. When `RegionawareEnsemblePlacementPolicy` is enabled, the rack name can only contain one slash (`/`) except for the beginning and e Reason: Bookie 'rack' parameter is invalid, When `RackawareEnsemblePlacementPolicy` is enabled, the rack name is not allowed to contain slash (`/`) except for the beginning and end of the rack name string. When `RegionawareEnsemblePlacementPolicy` is enabled, the rack name can only contain one slash (`/`) except for the beginning and end of the rack name string.
From the exception, they were mentioning RackawareEnsemblePlacementPolicy and RegionawareEnsemblePlacementPolicy,But they were nowhere mentioned about the ZoneawareEnsemblePlacementPolicy
Latter, we tried with az as rack and it wont throw any exception,
But it is not honouring these parameters
bookkeeperClientMinNumZonesPerWriteQuorum: "2"
bookkeeperClientEnforceStrictZoneawarePlacement: "true"
And landed all the bookies' ledgers on the same availability zone
Below is the rack information for ZoneawarePacementPolicy:
{
"westus2": {
"bookie-0": {
"rack": "westus2-2"
},
"bookie-1": {
"rack": "westus2-1"
},
"bookie-2": {
"rack": "westus2-1"
},
"bookie-3": {
"rack": "westus2-3"
},
"bookie-4": {
"rack": "westus2-2"
},
"bookie-5": {
"rack": "westus2-3"
},
"bookie-6": {
"rack": "westus2-2"
}
}
}Lari Hotari
11/03/2023, 10:09 AMbookkeeperClientEnforceStrictZoneawarePlacement doesn't exist.Lari Hotari
11/03/2023, 10:11 AMbookkeeperClientMinNumZonesPerWriteQuorum: "2"
bookkeeperClientEnforceStrictZoneawarePlacement: "true"
I don't see these referenced in apache/pulsar or apache/pulsar-helm-chartswamy mavuri
11/03/2023, 10:12 AMswamy mavuri
11/03/2023, 10:12 AMTopologyAwareEnsemblePlacementPolicyLari Hotari
11/03/2023, 10:14 AMbookkeeper_ prefix for them to be passed to the client in Pulsar Broker.Lari Hotari
11/03/2023, 10:14 AMPULSAR_PREFIX_bookkeeper_bookkeeperClientEnforceStrictZoneawarePlacement in helm chart for broker configmapswamy mavuri
11/03/2023, 10:15 AMLari Hotari
11/03/2023, 10:16 AMLari Hotari
11/03/2023, 10:18 AMswamy mavuri
11/03/2023, 10:19 AMZoneAwareEnsemblePlacementPolicy ,Lari Hotari
11/03/2023, 10:19 AMLari Hotari
11/03/2023, 10:25 AMswamy mavuri
11/03/2023, 10:28 AM/region/az or az alone will be sufficient to form the racks?Lari Hotari
11/03/2023, 10:36 AMswamy mavuri
11/03/2023, 11:15 AMswamy mavuri
11/15/2023, 2:28 PM