6. DLite Durability Service

DLite is the next generation improved durability service that complies with DDS Persistence Profile. DLite has a more fundamental approach of maintaining eventual consistency by two way trivial merging of data. This results in a better performance, scalability and out of the box experience. DLite can be configured instead of the existing Durability service.

6.1. Improvements in DLite

  • Improved scalability
    • Implement differential alignment

    • Support eavesdropping on alignment

    • Implement alignment scheduling

  • Improved configuration
    • better structured and well defined defaults.

    • better consistency by keeping deceased instances by default

    • global decoupling by Interest based alignment and provisioning

  • Improved maintainability and functionality
    • Topic based control and monitoring

    • Code and complexity reduction

  • Improved Scalability and stress testing

6.2. Migration Impact

  • Durability Dependencies instead of a Master Durability service

  • Affects persistent data set selection

  • Affects waitForHistoricalData

  • More flexibility

  • Local interest scopes instead of globally defined Namespaces

  • Replaces merge policies

  • Replaces aligner, alignee and durability policies

A basic migration tool that allows the import of old durability stores is available, see durability_migrate: Durability to DLite Migration.

6.3. Wait for historical data

The behaviour of the wait_for_historical_data operation behaves similar as before, meaning that it will wait until the state of all alive fellows is aligned.

However for DLite this operation has some additional features:

  • it can also wait for configured dependencies. A dependency is a fellow that must be available, when not the wait_for_historical_data will not return.

  • it can be used continuously, meaning that it will block during alignment when new fellows join the network.

6.4. Configuration

There is a detailed description of the available configuration parameters and their purpose in the Configuration section, starting at the section on //OpenSplice/DLite.