How to manage forest creation in an AWS MarkLogic Managed Cluster

59 Views Asked by At

I am working with a MarkLogic managed cluster in AWS and configuring database and forest layout using properties instead of manually configuring the forest placement as in my on premise clusters.

I have noticed a few things and am wondering if it is possible to address them with ml-gradle properties?

  1. forest layout for replica forests does not take into account the AWS AZ a node lives on. If you stand up a managed cluster with 2 nodes per AWS AZ, the chances are high that the replicas will stay within the AWS AZ, and our requirements for high availability is they spread out to another AWS AZ.

  2. when expanding the cluster using cloudformation, an mlDeployDatabases will not add forests to the new hosts. Is there a way to trigger this?

Here are the relevant portions of my gradle.properties

mlIsHostLoadBalancer=true
mlCreateForests=true
mlForestDataDirectory=/var/opt/MarkLogic
mlReplicaForestDataDirectory=/var/opt/volume1
mlDatabasesWithForestsOnOneHost=Mymodules,Myutils,Mysupplement
mlDatabaseNamesAndReplicaCounts=Mydbone,1,Myutils,1,Mysuperdb,1,Mymodules,1,Mydbtwo,1,Mydbthree,1,Mydbfour,1,Mydbfive,1,Security,1,Schemas,1,App-Services,1,Mysupplement,1
1

There are 1 best solutions below

0
On

ml-gradle doesn't currently use the Host Zone to help stripe the HA replicas and ensure that they are not in the same AZ as the primary forest. It's a common requirement and something that it probably should be able to do.

I have created a GitHub issue to request an enhancement to the forest layout for the properties driven forest creation.

In the meantime, you could generate your own and use the payload-driven mechanism. There is a sample project that demonstrates payload-driven forest creation.