#At bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-maria/
2677 Guilhem Bichot 2008-10-14
WL#4595 "Maria - no write-lock when pinning bitmap pages": turns out that page cache
already supports pin-without-lock so implementation of this WL is instant and
done here. This could improve concurrency. No testcase, this requires
multiple threads and is automatically tested at push time by maria_stress.yy (pushbuild2).
modified:
storage/maria/ma_bitmap.c
per-file messages:
storage/maria/ma_bitmap.c
As the page cache supports pinning without write-locking, we don't take write lock
in write_changed_bitmap(), only a pin; this could improve concurrency (WL#4595).
=== modified file 'storage/maria/ma_bitmap.c'
--- a/storage/maria/ma_bitmap.c 2008-10-14 09:38:07 +0000
+++ b/storage/maria/ma_bitmap.c 2008-10-14 12:16:10 +0000
@@ -167,10 +167,10 @@ static inline my_bool write_changed_bitm
int res= pagecache_write(share->pagecache,
&bitmap->file, bitmap->page, 0,
(uchar*) bitmap->map, PAGECACHE_PLAIN_PAGE,
- PAGECACHE_LOCK_WRITE, PAGECACHE_PIN,
+ PAGECACHE_LOCK_LEFT_UNLOCKED, PAGECACHE_PIN,
PAGECACHE_WRITE_DELAY, &page_link.link,
LSN_IMPOSSIBLE);
- page_link.unlock= PAGECACHE_LOCK_WRITE_UNLOCK;
+ page_link.unlock= PAGECACHE_LOCK_LEFT_UNLOCKED;
page_link.changed= 1;
push_dynamic(&bitmap->pinned_pages, (void*) &page_link);
DBUG_RETURN(res);
| Thread |
|---|
| • bzr commit into MySQL/Maria:mysql-maria branch (guilhem:2677) WL#4595 | Guilhem Bichot | 14 Oct |