• Yorick Peterse's avatar
    Better caching and indexing of broadcast messages · a5c8a527
    Yorick Peterse authored
    Caching of BroadcastMessage instances has been changed so a cache stays
    valid as long as the default cache expiration time permits, instead of
    the cache being expired after 1 minute. When modifying broadcast
    messages the cache is flushed automatically.
    
    To remove the need for performing sequence scans on the
    "broadcast_messages" table we also add an index on (starts_at, ends_at,
    id), permitting PostgreSQL to use an index scan to get all necessary
    data.
    
    Finally this commit adds a few NOT NULL constraints to the table to
    match the Rails validations.
    
    Fixes gitlab-org/gitlab-ce#31706
    a5c8a527