Merge lp:~percona-dev/percona-xtradb/windows-conscious into lp:~percona-dev/percona-xtradb/extensions-1.0
- windows-conscious
- Merge into extensions-1.0
Proposed by
Yasufumi Kinoshita
Status: | Merged | ||||
---|---|---|---|---|---|
Merged at revision: | not available | ||||
Proposed branch: | lp:~percona-dev/percona-xtradb/windows-conscious | ||||
Merge into: | lp:~percona-dev/percona-xtradb/extensions-1.0 | ||||
Diff against target: | None lines | ||||
To merge this branch: | bzr merge lp:~percona-dev/percona-xtradb/windows-conscious | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Vadim Tkachenko | Approve | ||
Review via email: mp+11418@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Vadim Tkachenko (vadim-tk) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'i_s_innodb_buffer_pool_pages.patch' |
2 | --- i_s_innodb_buffer_pool_pages.patch 2009-09-03 08:25:21 +0000 |
3 | +++ i_s_innodb_buffer_pool_pages.patch 2009-09-09 05:07:10 +0000 |
4 | @@ -450,7 +450,7 @@ |
5 | + field_store_string(table->field[0], NULL); |
6 | + p = (char *)index->table_name; |
7 | + } |
8 | -+ strcpy(table_name_raw, p); |
9 | ++ strcpy(table_name_raw, (const char*)p); |
10 | + filename_to_tablename(table_name_raw, table_name, sizeof(table_name)); |
11 | + field_store_string(table->field[1], table_name); |
12 | + field_store_string(table->field[2], index->name); |
13 | |
14 | === modified file 'innodb_expand_import.patch' |
15 | --- innodb_expand_import.patch 2009-09-03 08:25:21 +0000 |
16 | +++ innodb_expand_import.patch 2009-09-09 05:07:10 +0000 |
17 | @@ -35,6 +35,13 @@ |
18 | + ulint i; |
19 | + int len; |
20 | + ib_uint64_t current_lsn; |
21 | ++ ulint size_low, size_high, size; |
22 | ++ ib_int64_t size_bytes; |
23 | ++ dict_table_t* table; |
24 | ++ dict_index_t* index; |
25 | ++ fil_system_t* system; |
26 | ++ fil_node_t* node = NULL; |
27 | ++ fil_space_t* space; |
28 | + |
29 | + current_lsn = log_get_lsn(); |
30 | + |
31 | @@ -56,25 +63,20 @@ |
32 | + success = os_file_write(filepath, file, page, 0, 0, UNIV_PAGE_SIZE); |
33 | + |
34 | + /* get file size */ |
35 | -+ ulint size_low, size_high, size; |
36 | -+ ib_int64_t size_bytes; |
37 | + os_file_get_size(file, &size_low, &size_high); |
38 | + size_bytes = (((ib_int64_t)size_high) << 32) |
39 | + + (ib_int64_t)size_low; |
40 | + |
41 | + /* get cruster index information */ |
42 | -+ dict_table_t* table; |
43 | -+ dict_index_t* index; |
44 | + table = dict_table_get_low(name); |
45 | + index = dict_table_get_first_index(table); |
46 | + ut_a(index->page==3); |
47 | + |
48 | -+ |
49 | + /* read metadata from .exp file */ |
50 | + n_index = 0; |
51 | -+ bzero(old_id, sizeof(old_id)); |
52 | -+ bzero(new_id, sizeof(new_id)); |
53 | -+ bzero(root_page, sizeof(root_page)); |
54 | ++ memset(old_id, 0, sizeof(old_id)); |
55 | ++ memset(new_id, 0, sizeof(new_id)); |
56 | ++ memset(root_page, 0, sizeof(root_page)); |
57 | + |
58 | + info_file_path = fil_make_ibd_name(name, FALSE); |
59 | + len = strlen(info_file_path); |
60 | @@ -124,10 +126,10 @@ |
61 | + mem_heap_t* heap = NULL; |
62 | + ulint offsets_[REC_OFFS_NORMAL_SIZE]; |
63 | + ulint* offsets = offsets_; |
64 | ++ ib_int64_t offset; |
65 | ++ |
66 | + size = (ulint) (size_bytes / UNIV_PAGE_SIZE); |
67 | + /* over write space id of all pages */ |
68 | -+ ib_int64_t offset; |
69 | -+ |
70 | + rec_offs_init(offsets_); |
71 | + |
72 | + fprintf(stderr, "InnoDB: Progress in %:"); |
73 | @@ -280,10 +282,8 @@ |
74 | + } |
75 | + mem_free(info_file_path); |
76 | + |
77 | -+ fil_system_t* system = fil_system; |
78 | ++ system = fil_system; |
79 | + mutex_enter(&(system->mutex)); |
80 | -+ fil_node_t* node = NULL; |
81 | -+ fil_space_t* space; |
82 | + space = fil_space_get_by_id(id); |
83 | + if (space) |
84 | + node = UT_LIST_GET_FIRST(space->chain); |
85 | |
86 | === modified file 'innodb_extra_rseg.patch' |
87 | --- innodb_extra_rseg.patch 2009-09-03 08:25:21 +0000 |
88 | +++ innodb_extra_rseg.patch 2009-09-09 05:07:10 +0000 |
89 | @@ -280,7 +280,7 @@ |
90 | diff -ru innodb_plugin-1.0.4_orig/srv/srv0start.c innodb_plugin-1.0.4_tmp/srv/srv0start.c |
91 | --- innodb_plugin-1.0.4_orig/srv/srv0start.c 2009-07-01 03:21:09.000000000 +0900 |
92 | +++ innodb_plugin-1.0.4_tmp/srv/srv0start.c 2009-09-01 16:56:05.000000000 +0900 |
93 | -@@ -1533,6 +1533,8 @@ |
94 | +@@ -1544,6 +1544,8 @@ |
95 | dict_create(); |
96 | srv_startup_is_before_trx_rollback_phase = FALSE; |
97 | |
98 | |
99 | === modified file 'innodb_io_patches.patch' |
100 | --- innodb_io_patches.patch 2009-09-03 08:25:21 +0000 |
101 | +++ innodb_io_patches.patch 2009-09-09 05:07:10 +0000 |
102 | @@ -873,11 +873,11 @@ |
103 | + /* defence line (max_checkpoint_age * 1/2) */ |
104 | + ib_uint64_t lsn = log_sys->lsn; |
105 | + |
106 | -+ mutex_exit(&(log_sys->mutex)); |
107 | -+ |
108 | + ib_uint64_t level, bpl; |
109 | + buf_page_t* bpage; |
110 | + |
111 | ++ mutex_exit(&(log_sys->mutex)); |
112 | ++ |
113 | + mutex_enter(&flush_list_mutex); |
114 | + |
115 | + level = 0; |
116 | @@ -956,3 +956,33 @@ |
117 | } |
118 | |
119 | srv_main_thread_op_info = "reserving kernel mutex"; |
120 | +diff -ru innodb_plugin-1.0.4_orig/srv/srv0start.c innodb_plugin-1.0.4_tmp/srv/srv0start.c |
121 | +--- innodb_plugin-1.0.4_orig/srv/srv0start.c 2009-07-01 03:21:09.000000000 +0900 |
122 | ++++ innodb_plugin-1.0.4_tmp/srv/srv0start.c 2009-09-09 13:50:32.000000000 +0900 |
123 | +@@ -1175,7 +1175,12 @@ |
124 | + break; |
125 | + default: |
126 | + /* On Win 2000 and XP use async i/o */ |
127 | +- os_aio_use_native_aio = TRUE; |
128 | ++ //os_aio_use_native_aio = TRUE; |
129 | ++ os_aio_use_native_aio = FALSE; |
130 | ++ fprintf(stderr, |
131 | ++ "InnoDB: Windows native async i/o is disabled as default.\n" |
132 | ++ "InnoDB: It is not applicable for the current" |
133 | ++ " multi io threads implementation.\n"); |
134 | + break; |
135 | + } |
136 | + #endif |
137 | +@@ -1212,6 +1217,12 @@ |
138 | + } else if (0 == ut_strcmp(srv_file_flush_method_str, |
139 | + "async_unbuffered")) { |
140 | + srv_win_file_flush_method = SRV_WIN_IO_UNBUFFERED; |
141 | ++ os_aio_use_native_aio = TRUE; |
142 | ++ srv_n_read_io_threads = srv_n_write_io_threads = 1; |
143 | ++ fprintf(stderr, |
144 | ++ "InnoDB: 'async_unbuffered' was detected as innodb_flush_method.\n" |
145 | ++ "InnoDB: Windows native async i/o is enabled.\n" |
146 | ++ "InnoDB: And io threads are restricted.\n"); |
147 | + #endif |
148 | + } else { |
149 | + fprintf(stderr, |
150 | |
151 | === modified file 'innodb_opt_lru_count.patch' |
152 | --- innodb_opt_lru_count.patch 2009-09-03 08:25:21 +0000 |
153 | +++ innodb_opt_lru_count.patch 2009-09-09 05:07:10 +0000 |
154 | @@ -121,19 +121,21 @@ |
155 | |
156 | n_replaceable = UT_LIST_GET_LEN(buf_pool->free); |
157 | |
158 | -@@ -1185,6 +1194,12 @@ |
159 | +@@ -1185,7 +1194,13 @@ |
160 | + BUF_FLUSH_EXTRA_MARGIN) |
161 | && (distance < BUF_LRU_FREE_SEARCH_LEN)) { |
162 | |
163 | +- mutex_t* block_mutex = buf_page_get_mutex(bpage); |
164 | ++ mutex_t* block_mutex; |
165 | + if (!bpage->in_LRU_list) { |
166 | + /* reatart. but it is very optimistic */ |
167 | + bpage = UT_LIST_GET_LAST(buf_pool->LRU); |
168 | + continue; |
169 | + } |
170 | -+ |
171 | - mutex_t* block_mutex = buf_page_get_mutex(bpage); |
172 | ++ block_mutex = buf_page_get_mutex(bpage); |
173 | |
174 | mutex_enter(block_mutex); |
175 | + |
176 | @@ -1200,7 +1215,9 @@ |
177 | bpage = UT_LIST_GET_PREV(LRU, bpage); |
178 | } |
179 | |
180 | === modified file 'innodb_split_buf_pool_mutex.patch' |
181 | --- innodb_split_buf_pool_mutex.patch 2009-09-03 08:25:21 +0000 |
182 | +++ innodb_split_buf_pool_mutex.patch 2009-09-09 05:07:10 +0000 |
183 | @@ -379,20 +379,16 @@ |
184 | ut_ad(!mutex_own(&buf_pool_zip_mutex)); |
185 | ut_ad(!ut_align_offset(src, size)); |
186 | ut_ad(!ut_align_offset(dst, size)); |
187 | -@@ -429,9 +471,16 @@ |
188 | - actually is a properly initialized buf_page_t object. */ |
189 | - |
190 | - if (size >= PAGE_ZIP_MIN_SIZE) { |
191 | -+ if (!have_page_hash_mutex) |
192 | -+ mutex_exit(&zip_free_mutex); |
193 | -+ |
194 | +@@ -432,6 +474,12 @@ |
195 | /* This is a compressed page. */ |
196 | mutex_t* mutex; |
197 | |
198 | + if (!have_page_hash_mutex) { |
199 | ++ mutex_exit(&zip_free_mutex); |
200 | + mutex_enter(&LRU_list_mutex); |
201 | + rw_lock_x_lock(&page_hash_latch); |
202 | + } |
203 | ++ |
204 | /* The src block may be split into smaller blocks, |
205 | some of which may be free. Thus, the |
206 | mach_read_from_4() calls below may attempt to read |
207 | @@ -2125,11 +2121,11 @@ |
208 | n_replaceable = UT_LIST_GET_LEN(buf_pool->free); |
209 | |
210 | @@ -1200,9 +1254,9 @@ |
211 | + bpage = UT_LIST_GET_LAST(buf_pool->LRU); |
212 | continue; |
213 | } |
214 | - |
215 | -- mutex_t* block_mutex = buf_page_get_mutex(bpage); |
216 | -+ mutex_t* block_mutex = buf_page_get_mutex_enter(bpage); |
217 | +- block_mutex = buf_page_get_mutex(bpage); |
218 | ++ block_mutex = buf_page_get_mutex_enter(bpage); |
219 | |
220 | - mutex_enter(block_mutex); |
221 | + ut_a(block_mutex); |
222 | |
223 | === modified file 'innodb_stats.patch' |
224 | --- innodb_stats.patch 2009-09-03 08:25:21 +0000 |
225 | +++ innodb_stats.patch 2009-09-09 05:07:10 +0000 |
226 | @@ -30,10 +30,12 @@ |
227 | /* It makes no sense to test more pages than are contained |
228 | in the index, thus we lower the number if it is too high */ |
229 | if (srv_stats_sample_pages > index->stat_index_size) { |
230 | -@@ -3289,6 +3296,20 @@ |
231 | +@@ -3289,7 +3296,21 @@ |
232 | } |
233 | |
234 | while (rec != supremum) { |
235 | +- rec_t* next_rec = page_rec_get_next(rec); |
236 | ++ rec_t* next_rec; |
237 | + /* count recs */ |
238 | + if (stats_method == SRV_STATS_METHOD_IGNORE_NULLS) { |
239 | + n_recs++; |
240 | @@ -47,10 +49,10 @@ |
241 | + n_not_nulls[j]++; |
242 | + } |
243 | + } |
244 | -+ |
245 | - rec_t* next_rec = page_rec_get_next(rec); |
246 | ++ next_rec = page_rec_get_next(rec); |
247 | if (next_rec == supremum) { |
248 | break; |
249 | + } |
250 | @@ -3303,7 +3324,7 @@ |
251 | cmp_rec_rec_with_match(rec, next_rec, |
252 | offsets_rec, offsets_next_rec, |
253 | @@ -391,7 +393,7 @@ |
254 | + } else { |
255 | + rec_per_key = n_rows; |
256 | + } |
257 | -+ snprintf(buff, 256, (i == index->n_uniq)?"%llu":"%llu, ", |
258 | ++ ut_snprintf(buff, 256, (i == index->n_uniq)?"%llu":"%llu, ", |
259 | + rec_per_key); |
260 | + strncat(row_per_keys, buff, 256 - strlen(row_per_keys)); |
261 | + } |
262 | |
263 | === modified file 'mysql-test.diff' |
264 | --- mysql-test.diff 2009-09-08 02:28:57 +0000 |
265 | +++ mysql-test.diff 2009-09-09 05:07:10 +0000 |
266 | @@ -458,62 +458,3 @@ |
267 | - alter table t1 add primary key (a), drop index c; |
268 | - show create table t1; |
269 | - --error ER_MULTIPLE_PRI_KEY |
270 | -diff -ruN innodb_plugin-1.0.4_orig/mysql-test/patches/innodb_file_per_table.diff innodb_plugin-1.0.4_tmp/mysql-test/patches/innodb_file_per_table.diff |
271 | ---- innodb_plugin-1.0.4_orig/mysql-test/patches/innodb_file_per_table.diff 2009-01-27 15:04:17.000000000 +0900 |
272 | -+++ innodb_plugin-1.0.4_tmp/mysql-test/patches/innodb_file_per_table.diff 2009-09-07 17:06:06.000000000 +0900 |
273 | -@@ -1,6 +1,6 @@ |
274 | --diff mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test.orig mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test |
275 | ----- mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test.orig 2008-10-07 11:32:30.000000000 +0300 |
276 | --+++ mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test 2008-10-07 11:52:14.000000000 +0300 |
277 | -+diff mysql-test/t/innodb_file_per_table_basic.test mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test |
278 | -+--- mysql-test/t/innodb_file_per_table_basic.test 2008-10-07 11:32:30.000000000 +0300 |
279 | -++++ mysql-test/t/innodb_file_per_table_basic.test 2008-10-07 11:52:14.000000000 +0300 |
280 | - @@ -37,10 +37,6 @@ |
281 | - # Check if Value can set # |
282 | - #################################################################### |
283 | -@@ -21,9 +21,9 @@ |
284 | - FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES |
285 | - WHERE VARIABLE_NAME='innodb_file_per_table'; |
286 | - --echo 1 Expected |
287 | --diff mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result.orig mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result |
288 | ----- mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result.orig 2008-10-07 11:32:02.000000000 +0300 |
289 | --+++ mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result 2008-10-07 11:52:47.000000000 +0300 |
290 | -+diff mysql-test/r/innodb_file_per_table_basic.result mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result |
291 | -+--- mysql-test/r/innodb_file_per_table_basic.result 2008-10-07 11:32:02.000000000 +0300 |
292 | -++++ mysql-test/r/innodb_file_per_table_basic.result 2008-10-07 11:52:47.000000000 +0300 |
293 | - @@ -4,18 +4,15 @@ |
294 | - 1 |
295 | - 1 Expected |
296 | -diff -ruN innodb_plugin-1.0.4_orig/mysql-test/patches/innodb_lock_wait_timeout.diff innodb_plugin-1.0.4_tmp/mysql-test/patches/innodb_lock_wait_timeout.diff |
297 | ---- innodb_plugin-1.0.4_orig/mysql-test/patches/innodb_lock_wait_timeout.diff 2009-01-28 15:21:44.000000000 +0900 |
298 | -+++ innodb_plugin-1.0.4_tmp/mysql-test/patches/innodb_lock_wait_timeout.diff 2009-09-07 17:06:06.000000000 +0900 |
299 | -@@ -1,5 +1,5 @@ |
300 | ----- mysql-test/suite/sys_vars/t/innodb_lock_wait_timeout_basic.test.orig 2008-08-04 09:28:16.000000000 +0300 |
301 | --+++ mysql-test/suite/sys_vars/t/innodb_lock_wait_timeout_basic.test 2008-10-07 11:14:15.000000000 +0300 |
302 | -+--- mysql-test/t/innodb_lock_wait_timeout_basic.test 2008-08-04 09:28:16.000000000 +0300 |
303 | -++++ mysql-test/t/innodb_lock_wait_timeout_basic.test 2008-10-07 11:14:15.000000000 +0300 |
304 | - @@ -37,10 +37,6 @@ |
305 | - # Check if Value can set # |
306 | - #################################################################### |
307 | -@@ -25,8 +25,8 @@ |
308 | - |
309 | - SELECT COUNT(@@GLOBAL.innodb_lock_wait_timeout); |
310 | - --echo 1 Expected |
311 | ----- mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result.orig 2008-08-04 09:27:50.000000000 +0300 |
312 | --+++ mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result 2008-10-07 11:15:14.000000000 +0300 |
313 | -+--- mysql-test/r/innodb_lock_wait_timeout_basic.result 2008-08-04 09:27:50.000000000 +0300 |
314 | -++++ mysql-test/r/innodb_lock_wait_timeout_basic.result 2008-10-07 11:15:14.000000000 +0300 |
315 | - @@ -4,9 +4,6 @@ |
316 | - 1 |
317 | - 1 Expected |
318 | -diff -ruN innodb_plugin-1.0.4_orig/mysql-test/patches/innodb_thread_concurrency_basic.diff innodb_plugin-1.0.4_tmp/mysql-test/patches/innodb_thread_concurrency_basic.diff |
319 | ---- innodb_plugin-1.0.4_orig/mysql-test/patches/innodb_thread_concurrency_basic.diff 2009-02-13 00:38:27.000000000 +0900 |
320 | -+++ innodb_plugin-1.0.4_tmp/mysql-test/patches/innodb_thread_concurrency_basic.diff 2009-09-07 17:06:06.000000000 +0900 |
321 | -@@ -1,5 +1,5 @@ |
322 | ----- mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result.orig 2008-12-04 18:45:52 -06:00 |
323 | --+++ mysql-test/suite/sys_vars/r/innodb_thread_concurrency_basic.result 2009-02-12 02:05:48 -06:00 |
324 | -+--- mysql-test/r/innodb_thread_concurrency_basic.result 2008-12-04 18:45:52 -06:00 |
325 | -++++ mysql-test/r/innodb_thread_concurrency_basic.result 2009-02-12 02:05:48 -06:00 |
326 | - @@ -1,19 +1,19 @@ |
327 | - SET @global_start_value = @@global.innodb_thread_concurrency; |
328 | - SELECT @global_start_value; |