branches/innodb+: When buffering an insert, notify the buffer pool
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.
Showing
Please register or sign in to comment