High Performance Linux

Thursday, March 15, 2012

Master Class in Ukraine

On April 28-29 I'll be giving master class (in Russian) about development of high performance server applications in UNIX/Linux environment. The main topic of the class will be methods and technologies to build HTTP-, Instant Messaging-, database and other servers, which processes hundreds of thousands requests per second and gigabits of incoming traffic on commodity hardware. Mostly I'll be concentrating on following topics:
  • the server architecture (threads, processes, queues and IO);
  • concurrency (synchronization, context switches);
  • fast data structures and properties of classic data structures from performance point of view;
  • data alignment and optimization of CPU caches usage;
  • lock-free data structures, atomic operations and memory barriers;
  • memory allocators (when you need to develop your own allocator, types of memory allocators)
  • internal server caches (data structures, replacement policies);
  • zero-copy for disk and network IO and how to reduce copying in your code;
  • CPU-binding for interrupts and threads/processes;
  • working with huge files (mmap(), O_DIRECT, blocks allocation);
  • how Linus works with files (page cache, disk synchronization, IO scheduling);
  • profiling;
  • and finally, when do you need to move to kernel.

No comments:

Post a Comment