Interface IDerivedDataEngine

All Known Implementing Classes:
DerivedDataEngine

public interface IDerivedDataEngine
Derived data engine contains and controls all shared infrastructure of the derived data facility. It's assumed that the single EDT instance should work with a single instance The engine requires external management of its lifecycle after creation using start() and stop() methods
  • Method Details

    • createProvider

      IDerivedDataBmProvider createProvider(String projectId, Collection<IDerivedDataConfigurationContributor> contributors, Set<String> filteredSegments, IDerivedDataServiceLockController lockController, Supplier<Boolean> synchronizationActiveStateSupplier, Supplier<IAsyncComputationExecutionContext> executionContextSupplier)
      Creates a provider
      Parameters:
      projectId - The unique identifier of the owner project. Cannot be null
      contributors - The set of derived data contributors. Cannot be null. Can be empty
      filteredSegments - The set of segment ids that should be ommitted during the computation. Cannot be null. Can be empty
      lockController - The DD external lock controller. Cannot be null
      synchronizationActiveStateSupplier - The supplier which provides the status of the synchronization. Cannot be null
      executionContextSupplier - The supplier which provides client-specific IAsyncComputationExecutionContext. Cannot be null
      Returns:
      The created DD provider. Cannot be null
    • setPermittedThreads

      void setPermittedThreads(int permittedThreads)
      Sets the maximum number of computation threads the DD subsystem should use at the moment. It's up to client to control reduction/increasing the number of used threads, the DD subsystem itself won't adjust the maximum number of used threads (though could use less then maximum in any given moment)
      Parameters:
      permittedThreads - The number of permitted threads. Must be a positive number
    • start

      void start()
      Starts the inactive engine. The single engine instance mustn't be started more then once. The engine should be in inactive state prior the start call
    • stop

      void stop()
      Stops the active engine. The single engine instance mustn't be stopped more then once. The engine should be in active state prior the stop call