There is some history there. On Unix systems, block devices are implemented with entries as both a block as well as a character (raw) device. You will see in /dev devices like: crw------- 1 root system 8, 2 Feb 2 2001 /dev/rrz0c brw------- 1 root system 8, 2 Feb 2 2001 /dev/rz0c The raw device is not necessarily unbuffered, but the device driver handles it in a much different manner than as a block device. However, Linus himself did not like the raw device concept. As far as specialized I/O operations are concerned, databases can use varous tools, such as ioctl(2) and fctl(2) to control I/O. On 3 Jun 2002 at 22:19, Alex Daniloff wrote:
Does somebody know if Linux kernel allows to perform non-buffered I/O on raw disk partitions? In documentation on InnoDB tables it said: By using a raw disk you can on some Unixes perform unbuffered I/O. I assume that it should improve DB performance. Thank you in advance for any thoughts or sources of information.
-- Jerry Feldman Enterprise Systems Group Hewlett-Packard Company 200 Forest Street MRO1-3/F1 Marlboro, Ma. 01752 508-467-4315 http://www.testdrive.compaq.com/linux/