general

news
downloads

projects

streamline
beltway buffers
pipesfs
model-t

documentation

introduction
papers
slides
videos
examples
dev. manual
browse code

mailing list

join / leave
archive

development

svn download
svn log
browse svn
people

vrije universiteit amsterdam logo
Streamline is a Vrije Universiteit Amsterdam research project.

opensource logo
All code is made available under a mixed GNU Lesser General Public (LGPL) and Simplified BSD license.

:: beltway buffers

Introduction

Beltway Buffers are ring buffers that can be shared between kernel and application processes for fast streaming I/O. Some key features of Beltway Buffers are

  • Ease. All buffers present the POSIX File API (open, read, write, ...), both in userspace and inside the kernel.
  • Multiprocess. The runtime system detects open() calls for buffers that are currently not mapped (such as kernel buffers) and automatically sets up the necessary virtual memory mappings.
  • Low Overhead. Synchronisation signals are adaptively throttled to minimize context-switching yet maintain low latency bounds.
  • Specialization. We have many different buffer implementations tailored to different uses: blocking/non-blocking, multi-reader, fixed-size and variable-sized slots, auto-resizing, etc.
  • Copy Avoidance. One special implementation is that of "indirect buffers". These rings only maintain pointers into other buffers, to allow forwarding of traffic without copying. In read() calls, indirect buffers silently resolve the referenced "data buffer" and transparently return data from that buffer to the user.

Further reading

check out the Beltway Buffers paper on our papers page.

Are you a student interested in systems research? Streamline is a Vrije Universiteit Amsterdam research project. We're always looking for exceptional candidates for our Master's program.