Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incremental Configuration Updates #191

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Jun 20, 2024

  1. Incremental Configuration Updates

    Previously, the entire configuration stored in the database was
    synchronized every second. With the growth of configurations in live
    environments on the horizon, this would simply not scale well. This
    brings us to incremental updates.
    
    By introducing two new columns - "changed_at" as a Unix millisecond
    timestamp and "deleted" as a boolean - for all tables referenced in the
    ConfigSet structure, SQL queries can be modified to retrieve only those
    rows with a more recent timestamp. The "deleted" column became necessary
    to detect disappearances, since the synchronization now only takes newer
    items into account. Some additional fields needed to be added to the
    ConfigSet to track relationships.
    
    Even though the codebase served well at the time, there was some code
    that did almost the same thing as other code, just in different ways.
    So a huge refactoring was done. This resulted in an internal generic
    function that handles all synchronization with custom callbacks.
    
    The web counterpart is being developed in
    <Icinga/icinga-notifications-web#187>.
    
    Closes #5.
    oxzi committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    90f793f View commit details
    Browse the repository at this point in the history