Skip to content
  • Mikael Ronström's avatar
    21c8fe20
    WL#11813 LDM Poolification, WL#12687 Introduce TransactionMemory · 21c8fe20
    Mikael Ronström authored
    Poolified ACC scan record
    Poolified ACC operation record
    Poolified TC connect record in LQH
    Poolified Scan record in LQH
    Poolified CommitAckMarker record in LQH
    Poolifed TUP operation record
    Poolified Scan record in TUX
    Poolified Stored Procedure record in TUP
    Poolified ScanLock record in TUP
    Poolified Scan operation record in TUP
    Poolified ScanLock record in TUX
    Poolified LQH operation record
    Poolified ScanBound buffer in TUX
    
    Setup Reserved counters for those records
    Linked LQH-TUP-ACC operation records for performance reasons
    Handled ScanLock allocation in TUP and TUX and allocation of
    operation record in ACC for locking of rows to ensure that
    we can wait for resource to become available.
    
    Changed to use getValidPtr, getUncheckedPtrRW + Magic::check_ptr
    instead of previous access methods.
    
    Fixed a number of compiler warnings found on Mac OS X.
    Fixed ndb_load test case
    Fixed ndb_tctakeover test case
    Disabled ndb_one_fragment for debug builds since it is even slower now
    Ensured that ndb_addnode_restart and ndb_addnode_restart2 are only run
    on case sensitive file systems.
    Disabled ndb_parallel_undo_log in debug builds (always fails due to
    some slowness)
    
    Various optimisations made LDM threads even faster than before change
    (+2%) and TC threads around 1-2% slower.
    
    Implemented a rule that the first access of a record at signal
    reception cannot be trusted to point to a real record when we
    use poolification. This is especially true in DBTC, but also to
    some extent in DBLQH. This means that the first access is in
    most cases getValidPtr and if this returns false the record
    is not a record seized in the referred pool. Many small
    optimisations by use of likely/unlikely and some minor
    code fixes.
    
    Added a new configuration variable TransactionMemory for allocation
    of operational resources.
    
    Changed a number of error messages to provide the correct action.
    
    Fixed issues with seize StoredProcedure failures. Performed manual
    tests of TUP scans with out of resource issues.
    
    Added block variables to handle preallocated resources for Copy
    Fragment (lock operation record in ACC, scan record in TUP, scan lock
    record in TUP).
    
    Reviewed-by Mauritz Sundell <mauritz.sundell@oracle.com>
    21c8fe20
    WL#11813 LDM Poolification, WL#12687 Introduce TransactionMemory
    Mikael Ronström authored
    Poolified ACC scan record
    Poolified ACC operation record
    Poolified TC connect record in LQH
    Poolified Scan record in LQH
    Poolified CommitAckMarker record in LQH
    Poolifed TUP operation record
    Poolified Scan record in TUX
    Poolified Stored Procedure record in TUP
    Poolified ScanLock record in TUP
    Poolified Scan operation record in TUP
    Poolified ScanLock record in TUX
    Poolified LQH operation record
    Poolified ScanBound buffer in TUX
    
    Setup Reserved counters for those records
    Linked LQH-TUP-ACC operation records for performance reasons
    Handled ScanLock allocation in TUP and TUX and allocation of
    operation record in ACC for locking of rows to ensure that
    we can wait for resource to become available.
    
    Changed to use getValidPtr, getUncheckedPtrRW + Magic::check_ptr
    instead of previous access methods.
    
    Fixed a number of compiler warnings found on Mac OS X.
    Fixed ndb_load test case
    Fixed ndb_tctakeover test case
    Disabled ndb_one_fragment for debug builds since it is even slower now
    Ensured that ndb_addnode_restart and ndb_addnode_restart2 are only run
    on case sensitive file systems.
    Disabled ndb_parallel_undo_log in debug builds (always fails due to
    some slowness)
    
    Various optimisations made LDM threads even faster than before change
    (+2%) and TC threads around 1-2% slower.
    
    Implemented a rule that the first access of a record at signal
    reception cannot be trusted to point to a real record when we
    use poolification. This is especially true in DBTC, but also to
    some extent in DBLQH. This means that the first access is in
    most cases getValidPtr and if this returns false the record
    is not a record seized in the referred pool. Many small
    optimisations by use of likely/unlikely and some minor
    code fixes.
    
    Added a new configuration variable TransactionMemory for allocation
    of operational resources.
    
    Changed a number of error messages to provide the correct action.
    
    Fixed issues with seize StoredProcedure failures. Performed manual
    tests of TUP scans with out of resource issues.
    
    Added block variables to handle preallocated resources for Copy
    Fragment (lock operation record in ACC, scan record in TUP, scan lock
    record in TUP).
    
    Reviewed-by Mauritz Sundell <mauritz.sundell@oracle.com>
Loading