Description

  • The provisioning framework will run actions in threads
  • The target by default is assumed to be able to process concurrent operations
  • These operations will be threaded by type
    • e.g. all group inserts will run in threads, and when all complete, do all the entity inserts
  • The default number of threads is 5
    • This can be configured in the provisioner
    • The same number of threads is used for full and incremental
  • The thread pool is cached statically for each provisioner
    • Its ok if the next job runs on another node
    • If the thread size configuration is changed then the thread pool will be replaced dynamically

Programming a DAO and specifying batch size

  • The batch size per thread should match how much work an operation can do
  • The default batch size is 20
    • e.g. if there are 85 groups to delete, with a batch size of 20, then 5 threads will run at the same time to delete 20, 20, 20, 20, and 5 groups at the same time
  • Specify the batch size for each operation in the DAO.  E.g. for Azure, all operations can happen 20 at a time, but adding memberships can happen 400 at a time...

      @Override
      public void registerGrouperProvisionerDaoCapabilities(GrouperProvisionerDaoCapabilities grouperProvisionerDaoCapabilities) {
    
        grouperProvisionerDaoCapabilities.setDefaultBatchSize(20);
        grouperProvisionerDaoCapabilities.setInsertMembershipsBatchSize(400);
  • No labels