Merge lp:~percona-dev/percona-xtradb/windows-conscious into lp:~percona-dev/percona-xtradb/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
Reviewer Review Type Date Requested Status
Vadim Tkachenko Approve
Review via email: mp+11418@code.launchpad.net
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;

Subscribers

People subscribed via source and target branches

to all changes: