This topic provides information on best practices for avoiding CMDB sync performance issues.
Slower initial sync/faster sync updates
In releases prior to 10.2, BMC Discovery had to query the CMDB to determine which updates it should make when syncing, and this step represented a large proportion of the overall time taken. In version 10.2 and later, BMC Discovery now maintains an authoritative model of the dataset of each configured CMDB connection, in its datastore.
The down-side to this is that when BMC Discovery is writing new data, it has to write to both the CMDB and its own datastore. The BMC Discovery datastore is substantially faster than the CMDB, but doing two things inevitably takes longer than doing one thing, so initial sync is slightly slower. Our tests show it is about 15% slower in the initial population. The same tests show that subsequent syncs are more than four times faster, and put much less load on the CMDB. Updating existing data is the operation that occurs most frequently, so we concluded that it was an acceptable trade-off to have initial sync take very slightly longer.
Filter before syncing
Most CMDB users, especially at the high-end of the scale spectrum, are extremely conservative about the data that is put into CMDB. Best practice for CMDB is to carefully analyze the needs of the planned data consumers, and import only the bare minimum data to address those needs. BMC Discovery synchronization filters ensure that only the data that you want is synchronized to CMDB
You should not start to use CMDB sync by synchronizing all data from BMC Discovery into CMDB, and then reduce the synchronized data by subsequently applying filters, as this imposes an unnecessarily heavy load on the CMDB when the data that has already been synced is then deleted.
Resynchronizing is an intensive operation
Occasionally the model stored in the CMDB dataset may become out of step with the BMC Discovery shadow copy and require resynchronization. Resynchronization is an intensive operation that must assess the contents of the CMDB dataset against the authoritative version stored in the BMC Discovery datastore and then update the CMDB dataset to match the contents of the BMC Discovery shadow copy.
Empty a dataset before reusing it
When specifying a new CMDB sync connection, always ensure that you use a new or empty CMDB dataset. When you use an existing dataset that contains data, BMC Discovery must perform a resynchronization rather than a less intensive new sync. To clean the dataset, use the corresponding option in the
cmdbdiag.exe utility, or create a Reconciliation job to delete or clean the dataset.