MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
marko 3d9f3eed61 branches/innodb+: Implement the buf_pool_watch for DeleteBuffering in
the page hash table. This serves two purposes. It allows multiple
watches to be set at the same time (by multiple purge threads) and it
removes a race condition when the read of a block completes about the
time the buffer pool watch is being set.

buf_pool_watch_clear(): Rename to buf_pool_watch_unset(). Add
parameters space, offset.

buf_pool_watch_remove(): A helper function for removing the watch.

buf_pool_watch_is(): A predicate for testing if a block descriptor is
a sentinel for the buffer pool watch.

buf_pool_watch[BUF_POOL_WATCH_SIZE]: An array of sentinel block descriptors.

buf_pool_watch_set(): Add a parameter for the fold value, and return
the block if the block is in the buffer pool. Allocate the sentinel
from buf_pool_watch[] if needed. Use buf_fix_count for
reference-counting.

enum buf_block_state: Add BUF_BLOCK_POOL_WATCH as a state alias that
is shared with BUF_BLOCK_ZIP_FREE.

buf_page_hash_get_low(): A low-level variant of buf_page_hash_get()
that takes the fold value as a parameter and may return a watch
sentinel block. In callers, test the return value for
buf_pool_watch_is() [impossible cases with ut_ad(), possible ones with if].
When needed, invoke buf_pool_watch_remove() but preserve the buf_fix_count.

buf_page_hash_get(), buf_block_hash_get(): Return NULL for watch
sentinel blocks, to keep existing behaviour.

buf_page_init(): Add a parameter for the fold value.

ibuf_insert(): If a buffer pool watch exists for the block, refuse to
buffer subsequent operations, so that the purge that is being buffered
will not "overtake" later requests. Previously, we would notify the
watch in this case. Either way, the block would be read to the buffer
pool. In the current design, we can only notify the watch by actually
setting up a real block in buf_pool->page_hash.

rb://263 approved by Inaam Rana
2010-03-10 21:39:40 +00:00
btr branches/innodb+: Implement the buf_pool_watch for DeleteBuffering in 2010-03-10 21:39:40 +00:00
buf branches/innodb+: Implement the buf_pool_watch for DeleteBuffering in 2010-03-10 21:39:40 +00:00
data branches/innodb+: Merge revisions 6130:6364 from branches/zip: 2009-12-26 19:17:43 +00:00
dict branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
dyn branches/innodb+: Merge revisions 5091:5143 from branches/zip: 2009-05-27 09:52:16 +00:00
eval branches/innodb+: Merge revisions 5091:5143 from branches/zip: 2009-05-27 09:52:16 +00:00
fil branches/innodb+: Merge revisions 6130:6364 from branches/zip: 2009-12-26 19:17:43 +00:00
fsp branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
fut branches/innodb+: Merge revisions 5091:5143 from branches/zip: 2009-05-27 09:52:16 +00:00
ha branches/innodb+: Merge revisions 5144:5524 from branches/zip 2009-07-21 00:09:29 +00:00
handler branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
ibuf branches/innodb+: Implement the buf_pool_watch for DeleteBuffering in 2010-03-10 21:39:40 +00:00
include branches/innodb+: Implement the buf_pool_watch for DeleteBuffering in 2010-03-10 21:39:40 +00:00
lock branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
log branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
mach branches/innodb+: Merge revisions 5091:5143 from branches/zip: 2009-05-27 09:52:16 +00:00
mem branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
mtr branches/innodb+ rb://210 2009-12-17 14:38:05 +00:00
mysql-test branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
os branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
page Non-functional change: update copyright year to 2010 of the files 2010-02-20 16:45:41 +00:00
pars branches/innodb+: Merge revisions r5971:6130 from branches/zip. 2009-11-04 06:02:00 +00:00
que branches/innodb+: Merge revisions r5971:6130 from branches/zip. 2009-11-04 06:02:00 +00:00
read branches/innodb+: Merge revisions 5091:5143 from branches/zip: 2009-05-27 09:52:16 +00:00
rem branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
row branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
scripts branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
srv branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
sync Non-functional change: update copyright year to 2010 of the files 2010-02-20 16:45:41 +00:00
thr branches/innodb+: Merge revisions r5971:6130 from branches/zip. 2009-11-04 06:02:00 +00:00
trx branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
usr branches/innodb+: Merge revisions r5971:6130 from branches/zip. 2009-11-04 06:02:00 +00:00
ut branches/innodb+: Merge revisions r5971:6130 from branches/zip. 2009-11-04 06:02:00 +00:00
ChangeLog branches/innodb+: Merge revisions 6560:6773 from branches/zip: 2010-03-04 10:15:07 +00:00
CMakeLists.txt branches/innodb+: Merge revisions 6130:6364 from branches/zip: 2009-12-26 19:17:43 +00:00
compile-innodb branches/innodb+: Merge revisions 4150:4528 from branches/zip: 2009-03-24 08:32:21 +00:00
compile-innodb-debug branches/innodb+: Merge revisions 4150:4528 from branches/zip: 2009-03-24 08:32:21 +00:00
COPYING branches/innodb+: Merge revisions 4150:4528 from branches/zip: 2009-03-24 08:32:21 +00:00
COPYING.Google branches/innodb+: Merge revisions 4150:4528 from branches/zip: 2009-03-24 08:32:21 +00:00
COPYING.Percona branches/innodb+: Merge revisions 5144:5524 from branches/zip 2009-07-21 00:09:29 +00:00
COPYING.Sun_Microsystems branches/innodb+: Merge revisions 5144:5524 from branches/zip 2009-07-21 00:09:29 +00:00
Doxyfile branches/innodb+: Merge revisions 5091:5143 from branches/zip: 2009-05-27 09:52:16 +00:00
ha_innodb.def branches/innodb+: Merge revisions 2867:2986 from branches/zip: 2008-11-11 10:21:16 +00:00
Makefile.am branches/innodb+: Merge revisions r5971:6130 from branches/zip. 2009-11-04 06:02:00 +00:00
plug.in branches/innodb+: Merged revisions 5525:5971 from branches/zip 2009-09-28 17:34:23 +00:00
revert_gen.sh branches/zip: Merge revisions 265:459 from trunk. 2006-04-12 09:32:17 +00:00
setup.sh branches/innodb+: Merge revisions 4150:4528 from branches/zip: 2009-03-24 08:32:21 +00:00