page_parser very slow when large btree (~100GB)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Data Recovery Tool for InnoDB |
New
|
Undecided
|
Unassigned |
Bug Description
When there're large btrees, the fact that the page_parser creates one file per page becomes a performance bottleneck because of the filesystem. The following patch creates one file per btree and can be as much as 20x faster:
--- page_parser.c 2013-08-29 13:25:49.869474000 -0400
+++ page_parser_
@@ -159,10 +159,10 @@
}
- if(mkdir(dir_name, 0755) && errno != EEXIST) {
- fprintf(stderr, "Can't make a directory %s: %s\n", dir_name, strerror(errno));
- exit(-1);
- }
+ //if(mkdir(
+ // fprintf(stderr, "Can't make a directory %s: %s\n", dir_name, strerror(errno));
+ // exit(-1);
+ // }
}
else{
@@ -175,7 +175,7 @@
// Compose page file_name
if(is_index){
- sprintf(file_name, "%s/%08lu-
+ sprintf(file_name, "%s", dir_name);
}
else{