These are the ReiserFS RAW interface and KAIO patches that are brough up to the Linux kernel 2.4.9. Here is a quote from linux/Documentation/reiserfs-raw.txt: Reiserfs-raw is a "raw" interface to reiserfs. Its purpose is to gain speed and ease of implementation for some applications, notably the Squid Internet Object Cache (http://www.squid-cache.org). (The squid version that uses reiserfs-raw can be found at squidng.sourceforge.net, see also http://www.swelltech.com/pengies/joe/squidng.html and ftp://ftp.botik.ru/pub/local/sizif/squid). In reiserfs-raw view, files on the disk are named by 64-bit numbers. There are no directories, so you cannot structure the namespace. (For now, you cannot even read the list of files on the disk.) On the other hand, there is no directory overhead and there's less locking in the kernel on file creation/deletion. Another feature of reiserfs-raw is its support for file aging and removal. Reiserfs-raw keeps track of file age distrubution, and keeps disk usage within specified bounds by removing the files older than certain age when disk space becomes tight. This critical age is termed "age threshold". reiserfs-raw-kaio-2.4.9.diff Patch against clean 2.4.9 kernel which add SGI's KAIO and ReiserFS RAW. KAIO is required by Squid(NG) Butterfly storage. reiserfs-raw-kaio-kgdb-2.4.9.diff Same as above plus KGDB kernel debugger. reiserfs-raw-2.4.9+kaio.diff ReiserFS RAW patch against 2.4.9 kernel with original KAIO patches already applied. Changes: - Original ReiserFS RAW patch also contain SCSI hot replace patch, miscellaneous SCSI, VFS, and VM enhancements. These patches - does not. - Two small fixes in KAIO, plus original KAIO changes by Sizif. I also reverted changes in kaio_slave() AIOCMD_WRITE handling. - Two KGDB assertions disabled in fs/super.c. - Other necessary changes to make it compile/work. Where to get more information: Main Squid website http://www.squid-cache.org/ Squid development projects http://squid.sourceforge.net/ SquidNG http://www.swelltech.com/pengies/joe/squidng.html POSIX AIO kernel implementation http://oss.sgi.com/projects/kaio/ Please read SquidNG page carefully to understand issues and limitations. Original source. orig/kaio-kern-1.3.1-2.4.2 orig/kaio-lib-1.3.1 Patches from SGI website. orig/squidng-reiser_raw.920.tar.gz orig/reiserfs_raw_20001002.dif.bz2 orig/reiserfs_raw_20000920.dif.bz2 SquidNG and ReiserFS RAW from SquidNG page. orig/squidng-reiserfs-raw-20001222.tar.bz2 orig/reiserfs_raw_20001227.dif.bz2 More recent versions from ftp://ftp.botik.ru/pub/local/sizif/squid/ I tested these patches by running Polygraph 2.7.2 my-simple.pg workload against Squid from CVS reiserfs_raw branch and it appears to work. The test machine was Intel P166MMX on i430VX motherboard with 128Mb RAM (64Mb is not cached by L2 cache), with 3x500Mb SCSI disk storage on Adaptec 2940 narrow (8bit) 10Mhz controller, Intel EEPRO100 PCI NIC. The system was connected via full-duplex 100Mbit link by cross-over cable to system running polysrv and polyclt which is dual Intel P200MMX on i430HX with 128Mb RAM and 3Com 3c905B Cyclone NIC. No network shaping or artificial delays. The OS was Linux 2.4.9 with Glibc 2.2, no changes in system parameters or tunning. Squid configuration file was very minimal, cache_mem set to 8MB, no logging or access control. Polyserve configuration was set to 200 client agents, single server, 0.4 req/s, object size around 13Kb, 20% of content is uncachable, 55% DHR. In other words it is simple.pg + olcStatic + request rate/parallelization. In this configuration, proxy was able to handle 80 req/s at around 90% CPU load and medium/normal disk activity, 100-200ms responce time. I benchmarked same configuration with DiskD storage on ReiserFS. CPU load around 70% and better responce time - less than 100ms. Same disk activity. In both cases I was unable to run the tests for long time due to Squid consuming too much memory and excessive swapping. Probably a memory leak. I didn't managed to compile original SquidNG source at first shot, but probably should try again and see if it exhibits same behaviour. The test show some warnings from ReiserFS RAW code which appears not to be fatal. Corresponding errors propogated to userspace was handled gracefully by Squid. [arkadi at it.lv]