DEVELOPER: Open Source
Committed to CodeBy Rich Schwerin
Oracle's kernel contributions benefit anyone using Linux.
Oracle's commitment to Linux began with the release of the first commercial database for Linux. Today, Oracle's Linux engineering team also develops and donates key Linux kernel technology. "Oracle's development work for the Linux kernel represents vital contributions to the open source community, which benefit anyone using Linux," says Andrew Morton, a Linux 2.6 kernel maintainer who works for Google in Mountain View, California.
"The kernel provides a set of services and APIs on top of the hardware for applications to use. These include device drivers for the hardware itself, memory management, process management, IPC [interprocess communication], security, file systems, networking, and other tools," says Chris Mason, a developer on the Oracle Linux kernel team.
The Linux kernel community accepts only the highest-quality code, Mason explains. "All features take different paths to the mainline kernel, but they have many things in common," he says. "In the design and implementation process, engineers review and improve the code before it's sent to kernel maintainers. Getting major features into the mainline kernel takes months or even years, depending on the technology and how significant a change it represents." Three projects that Linux kernel developers at Oracle are working on are improvements to the asynchronous I/O (AIO) subsystem, kernel janitor work, and mainline testing.
"A variety of software, including Oracle Database, requires synchronous I/O to the disk to ensure that the I/O is finished," says Mason. "It is generally more efficient if software can use an asynchronous callback system. You can have one process on the Oracle Database side to drive many disks instead of having one process per disk. The AIO subsystem project makes that possible."
If accepted by the Linux kernel community, the new AIO subsystem project will replace the existing kernel code with code that's more useful to software outside of databases. "The AIO project is a great example of how our group can expand a concept that's good for Oracle to benefit other software operations," says Mason. He cites any software that talks over the network to the disk as benefiting from the new AIO subsystem.
"Mail servers are one of my favorite examples, because they typically do only synchronous I/O right to the file system. They do this so they can report that a given mail message has been delivered, but it generates relatively poor performance on the file system side, because it's doing work in tiny batches," says Mason. "A good generic AIO interface enables mail servers to give bigger batches of work to the file system and get much better performance overall."
The Linux Kernel Janitor Project helps kernel hackers get experience while doing something useful for the community. "It's important," says Mason. "Linux kernel janitors find things that have to be done even though nobody is that interested in the tasks; a lot of kernel maintenance falls into that category."
How much maintenance is that? The Linux kernel changes constantly, and inserting and maintaining the patches is a full-time job. "If you look at the changes since the Linux 2.6.12 kernel, there have been about 51,000 change sets; each change set is a patch," Mason says. "The kernel has a huge number of lines to code; keeping it up-to-date is a big task. Oracle's contributions to the kernel janitor include coding patches that streamline and organize the kernel."
Testing the mainline kernel is essential so the Linux community can get a long-term regression picture of how the kernel performs and works. "We're looking for bugs, and we're charting performance for the virtual memory subsystem, disk subsystems, file systems, process scheduler, and so on," says Mason.
Mainline kernel testing and quality assurance (QA) benefit the entire community. "It's a huge amount of work to find and fix problems and get patches into the mainline kernel," says Mason. "Oracle's focus on improving mainline testing is to get the mainline kernel to a better starting point. [That] will make it easier for the enterprise releases to go through their QA cycles."
Oracle's code contributions will result in the development of a kernel test suite. "Oracle's efforts will have public benchmark and regression data available for nightly builds of the kernel," says Mason.
The upshot of Oracle's contributions to the Linux kernel? "Oracle is focused on making Linux the best-possible server architecture," says Mason. "Making Linux better benefits our customers."
Rich Schwerin (firstname.lastname@example.org) is the Linux and open source product marketing manager with Oracle technology marketing.