Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
41375b0f
Commit
41375b0f
authored
Jan 25, 2011
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql-5.1-innodb to mysql-5.5-innodb.
parents
7f7e934f
60a622d1
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
31 additions
and
70 deletions
+31
-70
storage/innobase/btr/btr0btr.c
storage/innobase/btr/btr0btr.c
+1
-1
storage/innobase/btr/btr0cur.c
storage/innobase/btr/btr0cur.c
+2
-3
storage/innobase/btr/btr0sea.c
storage/innobase/btr/btr0sea.c
+1
-1
storage/innobase/buf/buf0buddy.c
storage/innobase/buf/buf0buddy.c
+1
-1
storage/innobase/buf/buf0buf.c
storage/innobase/buf/buf0buf.c
+10
-12
storage/innobase/buf/buf0lru.c
storage/innobase/buf/buf0lru.c
+7
-39
storage/innobase/include/buf0buf.h
storage/innobase/include/buf0buf.h
+3
-3
storage/innobase/include/buf0lru.h
storage/innobase/include/buf0lru.h
+4
-8
storage/innobase/mem/mem0mem.c
storage/innobase/mem/mem0mem.c
+1
-1
storage/innobase/page/page0zip.c
storage/innobase/page/page0zip.c
+1
-1
No files found.
storage/innobase/btr/btr0btr.c
View file @
41375b0f
...
...
@@ -981,7 +981,7 @@ btr_page_reorganize_low(
log_mode
=
mtr_set_log_mode
(
mtr
,
MTR_LOG_NONE
);
#ifndef UNIV_HOTBACKUP
temp_block
=
buf_block_alloc
(
buf_pool
,
0
);
temp_block
=
buf_block_alloc
(
buf_pool
);
#else
/* !UNIV_HOTBACKUP */
ut_ad
(
block
==
back_block1
);
temp_block
=
back_block2
;
...
...
storage/innobase/btr/btr0cur.c
View file @
41375b0f
...
...
@@ -4046,13 +4046,12 @@ btr_blob_free(
&&
buf_block_get_space
(
block
)
==
space
&&
buf_block_get_page_no
(
block
)
==
page_no
)
{
if
(
buf_LRU_free_block
(
&
block
->
page
,
all
,
NULL
)
!=
BUF_LRU_FREED
if
(
buf_LRU_free_block
(
&
block
->
page
,
all
)
!=
BUF_LRU_FREED
&&
all
&&
block
->
page
.
zip
.
data
)
{
/* Attempt to deallocate the uncompressed page
if the whole block cannot be deallocted. */
buf_LRU_free_block
(
&
block
->
page
,
FALSE
,
NULL
);
buf_LRU_free_block
(
&
block
->
page
,
FALSE
);
}
}
...
...
storage/innobase/btr/btr0sea.c
View file @
41375b0f
...
...
@@ -151,7 +151,7 @@ btr_search_check_free_space_in_heap(void)
be enough free space in the hash table. */
if
(
heap
->
free_block
==
NULL
)
{
buf_block_t
*
block
=
buf_block_alloc
(
NULL
,
0
);
buf_block_t
*
block
=
buf_block_alloc
(
NULL
);
rw_lock_x_lock
(
&
btr_search_latch
);
...
...
storage/innobase/buf/buf0buddy.c
View file @
41375b0f
...
...
@@ -327,7 +327,7 @@ buf_buddy_alloc_low(
/* Try replacing an uncompressed page in the buffer pool. */
buf_pool_mutex_exit
(
buf_pool
);
block
=
buf_LRU_get_free_block
(
buf_pool
,
0
);
block
=
buf_LRU_get_free_block
(
buf_pool
);
*
lru
=
TRUE
;
buf_pool_mutex_enter
(
buf_pool
);
...
...
storage/innobase/buf/buf0buf.c
View file @
41375b0f
...
...
@@ -416,9 +416,9 @@ UNIV_INTERN
buf_block_t
*
buf_block_alloc
(
/*============*/
buf_pool_t
*
buf_pool
,
/*!< in: buffer pool instance */
ulint
zip_size
)
/*!< in: compressed page size in bytes,
o
r 0 if uncompressed tablespace
*/
buf_pool_t
*
buf_pool
)
/*!< in/out: buffer pool instance,
or NULL for round-robin selection
o
f the buffer pool
*/
{
buf_block_t
*
block
;
ulint
index
;
...
...
@@ -431,7 +431,7 @@ buf_block_alloc(
buf_pool
=
buf_pool_from_array
(
index
);
}
block
=
buf_LRU_get_free_block
(
buf_pool
,
zip_size
);
block
=
buf_LRU_get_free_block
(
buf_pool
);
buf_block_set_state
(
block
,
BUF_BLOCK_MEMORY
);
...
...
@@ -1623,7 +1623,7 @@ shrink_again:
buf_LRU_make_block_old
(
&
block
->
page
);
dirty
++
;
}
else
if
(
buf_LRU_free_block
(
&
block
->
page
,
TRUE
,
NULL
)
}
else
if
(
buf_LRU_free_block
(
&
block
->
page
,
TRUE
)
!=
BUF_LRU_FREED
)
{
nonfree
++
;
}
...
...
@@ -2366,8 +2366,7 @@ err_exit:
mutex_enter
(
block_mutex
);
/* Discard the uncompressed page frame if possible. */
if
(
buf_LRU_free_block
(
bpage
,
FALSE
,
NULL
)
==
BUF_LRU_FREED
)
{
if
(
buf_LRU_free_block
(
bpage
,
FALSE
)
==
BUF_LRU_FREED
)
{
mutex_exit
(
block_mutex
);
goto
lookup
;
...
...
@@ -2883,7 +2882,7 @@ wait_until_unfixed:
buf_pool_mutex_exit
(
buf_pool
);
mutex_exit
(
&
buf_pool
->
zip_mutex
);
block
=
buf_LRU_get_free_block
(
buf_pool
,
0
);
block
=
buf_LRU_get_free_block
(
buf_pool
);
ut_a
(
block
);
buf_pool_mutex_enter
(
buf_pool
);
...
...
@@ -3013,8 +3012,7 @@ wait_until_unfixed:
/* Try to evict the block from the buffer pool, to use the
insert buffer (change buffer) as much as possible. */
if
(
buf_LRU_free_block
(
&
block
->
page
,
TRUE
,
NULL
)
==
BUF_LRU_FREED
)
{
if
(
buf_LRU_free_block
(
&
block
->
page
,
TRUE
)
==
BUF_LRU_FREED
)
{
mutex_exit
(
&
block
->
mutex
);
if
(
mode
==
BUF_GET_IF_IN_POOL_OR_WATCH
)
{
/* Set the watch, as it would have
...
...
@@ -3588,7 +3586,7 @@ buf_page_init_for_read(
&&
UNIV_LIKELY
(
!
recv_recovery_is_on
()))
{
block
=
NULL
;
}
else
{
block
=
buf_LRU_get_free_block
(
buf_pool
,
0
);
block
=
buf_LRU_get_free_block
(
buf_pool
);
ut_ad
(
block
);
ut_ad
(
buf_pool_from_block
(
block
)
==
buf_pool
);
}
...
...
@@ -3794,7 +3792,7 @@ buf_page_create(
ut_ad
(
mtr
->
state
==
MTR_ACTIVE
);
ut_ad
(
space
||
!
zip_size
);
free_block
=
buf_LRU_get_free_block
(
buf_pool
,
0
);
free_block
=
buf_LRU_get_free_block
(
buf_pool
);
fold
=
buf_page_address_fold
(
space
,
offset
);
...
...
storage/innobase/buf/buf0lru.c
View file @
41375b0f
...
...
@@ -603,7 +603,7 @@ buf_LRU_free_from_unzip_LRU_list(
ut_ad
(
block
->
page
.
in_LRU_list
);
mutex_enter
(
&
block
->
mutex
);
freed
=
buf_LRU_free_block
(
&
block
->
page
,
FALSE
,
NULL
);
freed
=
buf_LRU_free_block
(
&
block
->
page
,
FALSE
);
mutex_exit
(
&
block
->
mutex
);
switch
(
freed
)
{
...
...
@@ -666,7 +666,7 @@ buf_LRU_free_from_common_LRU_list(
mutex_enter
(
block_mutex
);
accessed
=
buf_page_is_accessed
(
bpage
);
freed
=
buf_LRU_free_block
(
bpage
,
TRUE
,
NULL
);
freed
=
buf_LRU_free_block
(
bpage
,
TRUE
);
mutex_exit
(
block_mutex
);
switch
(
freed
)
{
...
...
@@ -858,9 +858,7 @@ UNIV_INTERN
buf_block_t
*
buf_LRU_get_free_block
(
/*===================*/
buf_pool_t
*
buf_pool
,
/*!< in: buffer pool instance */
ulint
zip_size
)
/*!< in: compressed page size in bytes,
or 0 if uncompressed tablespace */
buf_pool_t
*
buf_pool
)
/*!< in/out: buffer pool instance */
{
buf_block_t
*
block
=
NULL
;
ibool
freed
;
...
...
@@ -936,31 +934,11 @@ loop:
/* If there is a block in the free list, take it */
block
=
buf_LRU_get_free_only
(
buf_pool
);
if
(
block
)
{
buf_pool_mutex_exit
(
buf_pool
);
if
(
block
)
{
ut_ad
(
buf_pool_from_block
(
block
)
==
buf_pool
);
#ifdef UNIV_DEBUG
block
->
page
.
zip
.
m_start
=
#endif
/* UNIV_DEBUG */
block
->
page
.
zip
.
m_end
=
block
->
page
.
zip
.
m_nonempty
=
block
->
page
.
zip
.
n_blobs
=
0
;
if
(
UNIV_UNLIKELY
(
zip_size
))
{
ibool
lru
;
page_zip_set_size
(
&
block
->
page
.
zip
,
zip_size
);
block
->
page
.
zip
.
data
=
buf_buddy_alloc
(
buf_pool
,
zip_size
,
&
lru
);
UNIV_MEM_DESC
(
block
->
page
.
zip
.
data
,
zip_size
,
block
);
}
else
{
page_zip_set_size
(
&
block
->
page
.
zip
,
0
);
block
->
page
.
zip
.
data
=
NULL
;
}
buf_pool_mutex_exit
(
buf_pool
);
memset
(
&
block
->
page
.
zip
,
0
,
sizeof
block
->
page
.
zip
);
if
(
started_monitor
)
{
srv_print_innodb_monitor
=
mon_value_was
;
...
...
@@ -972,8 +950,6 @@ loop:
/* If no block was in the free list, search from the end of the LRU
list and try to free a block there */
buf_pool_mutex_exit
(
buf_pool
);
freed
=
buf_LRU_search_and_free_block
(
buf_pool
,
n_iterations
);
if
(
freed
>
0
)
{
...
...
@@ -1456,12 +1432,8 @@ enum buf_lru_free_block_status
buf_LRU_free_block
(
/*===============*/
buf_page_t
*
bpage
,
/*!< in: block to be freed */
ibool
zip
,
/*!< in: TRUE if should remove also the
ibool
zip
)
/*!< in: TRUE if should remove also the
compressed page of an uncompressed page */
ibool
*
buf_pool_mutex_released
)
/*!< in: pointer to a variable that will
be assigned TRUE if buf_pool_mutex
was temporarily released, or NULL */
{
buf_page_t
*
b
=
NULL
;
buf_pool_t
*
buf_pool
=
buf_pool_from_bpage
(
bpage
);
...
...
@@ -1638,10 +1610,6 @@ alloc:
b
->
io_fix
=
BUF_IO_READ
;
}
if
(
buf_pool_mutex_released
)
{
*
buf_pool_mutex_released
=
TRUE
;
}
buf_pool_mutex_exit
(
buf_pool
);
mutex_exit
(
block_mutex
);
...
...
storage/innobase/include/buf0buf.h
View file @
41375b0f
...
...
@@ -276,9 +276,9 @@ UNIV_INTERN
buf_block_t
*
buf_block_alloc
(
/*============*/
buf_pool_t
*
buf_pool
,
/*!< buffer pool instance */
ulint
zip_size
);
/*!< in: compressed page size in bytes,
o
r 0 if uncompressed tablespace
*/
buf_pool_t
*
buf_pool
);
/*!< in: buffer pool instance,
or NULL for round-robin selection
o
f the buffer pool
*/
/********************************************************************//**
Frees a buffer block which does not contain a file page. */
UNIV_INLINE
...
...
storage/innobase/include/buf0lru.h
View file @
41375b0f
...
...
@@ -111,12 +111,9 @@ enum buf_lru_free_block_status
buf_LRU_free_block
(
/*===============*/
buf_page_t
*
bpage
,
/*!< in: block to be freed */
ibool
zip
,
/*!< in: TRUE if should remove also the
ibool
zip
)
/*!< in: TRUE if should remove also the
compressed page of an uncompressed page */
ibool
*
buf_pool_mutex_released
);
/*!< in: pointer to a variable that will
be assigned TRUE if buf_pool->mutex
was temporarily released, or NULL */
__attribute__
((
nonnull
));
/******************************************************************//**
Try to free a replaceable block.
@return TRUE if found and freed */
...
...
@@ -153,9 +150,8 @@ UNIV_INTERN
buf_block_t
*
buf_LRU_get_free_block
(
/*===================*/
buf_pool_t
*
buf_pool
,
/*!< in: preferred buffer pool */
ulint
zip_size
);
/*!< in: compressed page size in bytes,
or 0 if uncompressed tablespace */
buf_pool_t
*
buf_pool
)
/*!< in/out: buffer pool instance */
__attribute__
((
nonnull
,
warn_unused_result
));
/******************************************************************//**
Puts a block back to the free list. */
...
...
storage/innobase/mem/mem0mem.c
View file @
41375b0f
...
...
@@ -347,7 +347,7 @@ mem_heap_create_block(
return
(
NULL
);
}
}
else
{
buf_block
=
buf_block_alloc
(
NULL
,
0
);
buf_block
=
buf_block_alloc
(
NULL
);
}
block
=
(
mem_block_t
*
)
buf_block
->
frame
;
...
...
storage/innobase/page/page0zip.c
View file @
41375b0f
...
...
@@ -4440,7 +4440,7 @@ page_zip_reorganize(
log_mode
=
mtr_set_log_mode
(
mtr
,
MTR_LOG_NONE
);
#ifndef UNIV_HOTBACKUP
temp_block
=
buf_block_alloc
(
buf_pool
,
0
);
temp_block
=
buf_block_alloc
(
buf_pool
);
btr_search_drop_page_hash_index
(
block
);
block
->
check_index_page_at_flush
=
TRUE
;
#else
/* !UNIV_HOTBACKUP */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment