• marko's avatar
    branches/innodb+: When buffering an insert, notify the buffer pool · 0083f645
    marko authored
    watch.  This should fix the race condition that seems to have caused
    Issue #126: When another thread is buffering an insert for the record
    that is being purged, it should invoke buf_pool_watch_notify(), so
    that the purge will not be buffered. Otherwise, the purge would be
    buffered for the wrong record (one that was inserted after the purge
    determined that the record can be removed).
    
    When deletes are not buffered, the latch on the secondary index page
    would prevent the insert from occurring.  In delete buffering, the
    buf_pool_watch replaces the page latch when the page is not in the
    buffer pool.
    
    buf_pool_watch_notify(): Make public.
    
    ibuf_insert(): Invoke buf_pool_watch_notify() when buffering an
    insert or a delete-mark operation.
    0083f645
buf0buf.c 102 KB