Skip to content
  • Maitrayi Sabaratnam's avatar
    c6cf5566
    Bug #31926584 - NDBAPI : EVENT BUFFER EXHAUSTION LEADING TO MYSQLD EXIT · c6cf5566
    Maitrayi Sabaratnam authored
    Problem: Injector thread consumes epoch events from event buffer (EB)
    queue and writes to the Binlog. When the consumption gets slow, the EB
    becomes full causing mysqld to shut down.
    
    Fix: This EB-out-of memory(OOM) should be treated like inconsistent
    epoch, by injecting a GAP event into the Binlog instead of crashing
    mysqld.
    
    The current event API is unable to get exceptional events like empty,
    inconsistent or OOM. Use the new event API (nextEvent2, etc) in order
    to get these events and handle them.
    
    This patch series uses the 'new event API' for injector ndb, but not
    for schema ndb. Reasons: S_ndb has not handled TE_INCONSISTENT by
    writing gap epoch earlier. It gets fewer events compared to injector
    ndb.
    
    Reviewed by: Martin Skold <Martin.Skold@oracle.com>
    c6cf5566
    Bug #31926584 - NDBAPI : EVENT BUFFER EXHAUSTION LEADING TO MYSQLD EXIT
    Maitrayi Sabaratnam authored
    Problem: Injector thread consumes epoch events from event buffer (EB)
    queue and writes to the Binlog. When the consumption gets slow, the EB
    becomes full causing mysqld to shut down.
    
    Fix: This EB-out-of memory(OOM) should be treated like inconsistent
    epoch, by injecting a GAP event into the Binlog instead of crashing
    mysqld.
    
    The current event API is unable to get exceptional events like empty,
    inconsistent or OOM. Use the new event API (nextEvent2, etc) in order
    to get these events and handle them.
    
    This patch series uses the 'new event API' for injector ndb, but not
    for schema ndb. Reasons: S_ndb has not handled TE_INCONSISTENT by
    writing gap epoch earlier. It gets fewer events compared to injector
    ndb.
    
    Reviewed by: Martin Skold <Martin.Skold@oracle.com>
Loading