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
fb3d3e18
Commit
fb3d3e18
authored
Dec 10, 2001
by
tonu@volk.internalnet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Misc fixes
parent
6b02f13c
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
56 deletions
+56
-56
BUILD/compile-pentium-debug-openssl
BUILD/compile-pentium-debug-openssl
+1
-1
mysys/raid.cc
mysys/raid.cc
+55
-55
No files found.
BUILD/compile-pentium-debug-openssl
View file @
fb3d3e18
...
@@ -8,6 +8,6 @@ c_warnings="$c_warnings $debug_extra_warnings"
...
@@ -8,6 +8,6 @@ c_warnings="$c_warnings $debug_extra_warnings"
cxx_warnings
=
"
$cxx_warnings
$debug_extra_warnings
"
cxx_warnings
=
"
$cxx_warnings
$debug_extra_warnings
"
extra_configs
=
"
$pentium_configs
$debug_configs
"
extra_configs
=
"
$pentium_configs
$debug_configs
"
extra_configs
=
"
$extra_configs
--with-debug=full --with-vio --with-openssl"
extra_configs
=
"
$extra_configs
--with-debug=full --with-vio --with-openssl
--without-innodb
"
.
"
$path
/FINISH.sh"
.
"
$path
/FINISH.sh"
mysys/raid.cc
View file @
fb3d3e18
...
@@ -14,61 +14,61 @@
...
@@ -14,61 +14,61 @@
along with this program; if not, write to the Free Software
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/*
--------------------------------------------------------*
/*
*
*
RAID support for MySQL. Raid 0 (stiping) only implemented yet.
RAID support for MySQL. Raid 0 (stiping) only implemented yet.
*
*
Why RAID? Why it must be in MySQL?
Why RAID? Why it must be in MySQL?
*
*
This is because then you can:
This is because then you can:
*
1. Have bigger tables than your OS limit. In time of writing this
1. Have bigger tables than your OS limit. In time of writing this
*
we are hitting to 2GB limit under linux/ext2
we are hitting to 2GB limit under linux/ext2
*
2. You can get more speed from IO bottleneck by putting
2. You can get more speed from IO bottleneck by putting
*
Raid dirs on different physical disks.
Raid dirs on different physical disks.
*
3. Getting more fault tolerance (not implemented yet)
3. Getting more fault tolerance (not implemented yet)
*
*
Why not to use RAID:
Why not to use RAID:
*
*
1. You are losing some processor power to calculate things,
1. You are losing some processor power to calculate things,
*
do more syscalls and interrupts.
do more syscalls and interrupts.
*
*
Functionality is supplied by two classes: RaidFd and RaidName.
Functionality is supplied by two classes: RaidFd and RaidName.
*
RaidFd supports funtionality over file descriptors like
RaidFd supports funtionality over file descriptors like
*
open/create/write/seek/close. RaidName supports functionality
open/create/write/seek/close. RaidName supports functionality
*
like rename/delete where we have no relations to filedescriptors.
like rename/delete where we have no relations to filedescriptors.
*
RaidName can be prorably unchanged for different Raid levels. RaidFd
RaidName can be prorably unchanged for different Raid levels. RaidFd
*
have to be virtual I think ;).
have to be virtual I think ;).
*
You can speed up some calls in MySQL code by skipping RAID code.
You can speed up some calls in MySQL code by skipping RAID code.
*
For example LOAD DATA INFILE never needs to read RAID-ed files.
For example LOAD DATA INFILE never needs to read RAID-ed files.
*
This can be done adding proper "#undef my_read" or similar undef-s
This can be done adding proper "#undef my_read" or similar undef-s
*
in your code. Check out the raid.h!
in your code. Check out the raid.h!
*
*
Some explanation about _seek_vector[]
Some explanation about _seek_vector[]
*
This is seek cache. RAID seeks too much and we cacheing this. We
This is seek cache. RAID seeks too much and we cacheing this. We
*
fool it and just storing new position in file to _seek_vector.
fool it and just storing new position in file to _seek_vector.
*
When there is no seeks to do, we are putting RAID_SEEK_DONE into it.
When there is no seeks to do, we are putting RAID_SEEK_DONE into it.
*
Any other value requires seeking to that position.
Any other value requires seeking to that position.
*
*
TODO:
TODO:
*
*
*
- Implement other fancy things like RAID 1 (mirroring) and RAID 5.
- Implement other fancy things like RAID 1 (mirroring) and RAID 5.
*
Should not to be very complex.
Should not to be very complex.
*
*
- Optimize big blob writes by resorting write buffers and writing
- Optimize big blob writes by resorting write buffers and writing
*
big chunks at once instead of doing many syscalls. - after thinking I
big chunks at once instead of doing many syscalls. - after thinking I
*
found this is useless. This is because same thing one can do with just
found this is useless. This is because same thing one can do with just
*
increasing RAID_CHUNKSIZE. Monty, what do you think? tonu.
increasing RAID_CHUNKSIZE. Monty, what do you think? tonu.
*
*
- If needed, then implement missing syscalls. One known to miss is stat();
- If needed, then implement missing syscalls. One known to miss is stat();
*
*
- Make and use a thread safe dynamic_array buffer. The used one
- Make and use a thread safe dynamic_array buffer. The used one
*
will not work if needs to be extended at the same time someone is
will not work if needs to be extended at the same time someone is
*
accessing it.
accessing it.
*
*
*
tonu@mysql.com & monty@mysql.com
tonu@mysql.com & monty@mysql.com
*
--------------------------------------------------------*
/
*/
#ifdef __GNUC__
#ifdef __GNUC__
#pragma implementation // gcc: Class implementation
#pragma implementation // gcc: Class implementation
...
...
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