• Marko Mäkelä's avatar
    Allocate purge_sys statically · fb335b48
    Marko Mäkelä authored
    There is only one purge_sys. Allocate it statically in order to avoid
    dereferencing a pointer whenever accessing it. Also, align some
    members to their own cache line in order to avoid false sharing.
    
    purge_sys_t::create(): The deferred constructor.
    
    purge_sys_t::close(): The early destructor.
    
    undo::Truncate::create(): The deferred constructor.
    Because purge_sys.undo_trunc is constructed before the start-up
    parameters are parsed, the normal constructor would copy a
    wrong value of srv_purge_rseg_truncate_frequency.
    
    TrxUndoRsegsIterator: Do not forward-declare an inline constructor,
    because the static construction of purge_sys.rseg_iter would not have
    access to it.
    fb335b48
srv0start.cc 80.3 KB