Linux异步IO支持

简介:

 

Linux异步IO支持:

http://www.bullopensource.org/posix/

POSIX Asynchronous I/O for Linux

pingouin POSIX Asynchronous I/O for Linux (PAIOL) is an attempt to write a POSIX AIO compliant API based on Linux kernel 2.6 native AIO API.

This library can work without patching the kernel. Kernel patches are only needed if you want to use POSIX AIO features not available from user-space or to improve performance.

GNU
 
Latest News
square Wed, 21 Feb 2007: Release 0.8.2
  • A lot of fixes both in the library code and the testcases
  • Support for listio syscall
  • Library is now MT safe
  • Kernel patches ported to 2.6.20
square Mon, 20 Mar 2006: Release 0.8
  • Fixed x86_64 implementation.
  • Fixed testcases use of volatile variables
square Mon, 7 Nov 2005: Release 0.7
  • Merged IO_CMD_EVENT and IO_CMD_CHECKPOINT into IO_CMD_GROUP for listio support.
  • Fixed buf type from unsigned char * to char * for gcc4 in check/aio_fsync.c.
  • Do not use the aiocb->data to store a pointer to the aiocb. This field was used in update_events() in src/aio_event.c to retrieve the aiocb from the io_event. We can instead use event->obj.
  • Added missing comma in aio_syscall4 in src/syscall_x86.h.
  • Added --enable-debug option to configure for compiling the library with debug symbols. Changed configure.ac and src/Makefile.am
  • Changed __aio_thread_init() to take a sigevent as arg instead of an aiocb.
  • Added new listio testcases in check.
  • Added support patches for the 2.6.14 kernel including Ben LaHaise's additions for request completion notification.
  • Updated support patches for the 2.6.10 and 2.6.12 kernels.
square Mon, 25 Jul 2005: Release 0.6
  • Fixed compilation errors when none of the kernel patches are applied i.e. no support for AIO and LIO completion signal and no support for io_setup (0, ...).
  • Bug fixes concerning buffered AIO support in aio_read and aio_write.
  • Fixed the type of the buffer (from unsigned char * to char *) used for the AIO request in a few places in testbed for consistency. These were causing compile time errors under gcc 4.0.
  • Bug fix in kernel patches. In sys_io_submit, the iocb address was passed to create_lio instead of whatever the user passed in the sigevent sigev_value.
  • Removed automatic checking of kernel support for buffered AIO in configure.ac. The feature must be manually enabled or disabled. Default right now is disabled.
  • Added mini testsuite so that doing a `make check` after building the library makes sure everything is in order before installing. Currently the aio_fsync and aio_cancel checks fail due to lack of support from the kernel.
  • Added support patches for the 2.6.12 kernel.
  • Releases (Library and kernel patches) are now available on Sourceforge.
square Older news available here.
 
Library - kernel patches
Download on Sourceforge. SourceForge.net Logo
 
POSIX Test Suite
square posixtestsuite-1.5.0-aio.patch Udpdated AIO test suite in Open Posix Test Suite (patch now included in OPTS 1.5.1)
 
MySQL PAIO patch
square MySQL 4.1.12 patch This patchset provides POSIX AIO support to the MysQL InnoDB engine.
The first patch in the series adds generic POSIX AIO support to the InnoDB engine. The second patch adds detection of libposix-aio for use in place of librt.
 
QEMU PAIO patches
square QEMU libposix-aio patch This patch allow to link qemu against libposix-aio instead of librt. It adds a parameter, "--enable-libposix-aio", to enable this feature. 
 
square QEMU IDE direct I/O patch As memory provided to the IDE device is aligned, this patch uses it instead of internal IDE virtual device buffer.
 
Benchmark results
square Sysbench - oltp
 
Old resources
square Old library releases and kernel patches
 
Developper
square Sébastien Dugué
square Laurent Vivier [GPG key]
 
Documentation
square README
square POSIX AIO for linux data structure [DIA]
square LIOEVENT patch description
square ...
 
Links
 
square Kernel Asynchronous I/O (AIO) Support for Linux
square The Open Group Base Specifications :
square The Single UNIX Specification, Version 3
square POSIX Option Groups
square Open POSIX Test Suite



 

Page maintained by: Sébastien Dugué. Last update: 02/28/2007 22:01:19 Valid XHTML 1.0! Valid CSS!
本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/sgsoft/archive/2008/09/22/1295671.html,如需转载请自行联系原作者

相关文章
|
9天前
|
存储 缓存 Linux
Linux IO的奥秘:深入探索数据流动的魔法
Linux I/O(输入/输出)系统是其核心功能之一,负责处理数据在系统内部及与外界之间的流动。为了优化这一流程,Linux进行了一系列努力和抽象化,以提高效率、灵活性和易用性。🚀
Linux IO的奥秘:深入探索数据流动的魔法
|
15天前
|
算法 数据处理 Python
Python并发编程:解密异步IO与多线程
本文将深入探讨Python中的并发编程技术,重点介绍异步IO和多线程两种常见的并发模型。通过对比它们的特点、适用场景和实现方式,帮助读者更好地理解并发编程的核心概念,并掌握在不同场景下选择合适的并发模型的方法。
|
28天前
|
存储 监控 Linux
【Linux IO多路复用 】 Linux下select函数全解析:驾驭I-O复用的高效之道
【Linux IO多路复用 】 Linux下select函数全解析:驾驭I-O复用的高效之道
50 0
|
7天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
18 0
|
9天前
|
存储 缓存 安全
Linux IO:打开数据之窗的魔法
Linux I/O(输入/输出)是操作系统中一个至关重要的组成部分,它涉及到数据在内存🧠、存储设备💾、网络接口🌐等之间的传输过程。在Linux中,I/O操作不仅仅是文件读写那么简单,它包括了一系列复杂的机制和策略,旨在提高数据处理的效率,保证系统的稳定性和性能。📊
Linux IO:打开数据之窗的魔法
|
21天前
|
监控 算法 Unix
【Linux 异步操作】深入理解 Linux 异步通知机制:原理、应用与实例解析
【Linux 异步操作】深入理解 Linux 异步通知机制:原理、应用与实例解析
53 0
|
21天前
|
Unix Linux C++
【C/C++ 造轮子】Linux异步计时器:深入探讨和应用 (Linux Asynchronous Timers: An In-depth Exploration and Application)
【C/C++ 造轮子】Linux异步计时器:深入探讨和应用 (Linux Asynchronous Timers: An In-depth Exploration and Application)
52 1
|
28天前
|
NoSQL Java Linux
【Linux IO多路复用 】 Linux 网络编程 认知负荷与Epoll:高性能I-O多路复用的实现与优化
【Linux IO多路复用 】 Linux 网络编程 认知负荷与Epoll:高性能I-O多路复用的实现与优化
60 0
|
1月前
|
调度 数据库 Python
Python中的并发编程:使用asyncio库实现异步IO
传统的Python程序在面对IO密集型任务时,往往会遇到性能瓶颈。本文将介绍如何利用Python中的asyncio库,通过异步IO的方式来提升程序的效率和性能,让你的Python程序能够更好地处理并发任务。