All decks
  • Мегафон: SWIM - протокол построения кластера

    SWIM - это протокол обнаружения и мониторинга узлов кластера, распространения событий и данных между ними. Протокол особенен своей легковесностью, децентрализованностью и независимостью скорости работы от размера кластера. В докладе рассказывается о том, как устроен протокол SWIM, как и с какими расширениями он реализован в Тарантуле.

  • System programming 4

    Interrupts. Hardware and software, their nature, purpose. Interrupt handling. Purpose of signals, how they work. Signals handling, execution context, longjmp, top and bottom halves. /proc/interrupts. signal, sigaction.

  • SWIM - протокол построения кластера

    SWIM - это протокол обнаружения и мониторинга узлов кластера, распространения событий и данных между ними. Протокол особенен своей легковесностью, децентрализованностью и независимостью скорости работы от размера кластера. В докладе рассказывается о том, как устроен протокол SWIM, как и с какими расширениями он реализован в Тарантуле.

  • System programming 3

    Virtual and physical memory. Cache, cache line, cache levels, cache coherence, false sharing. High and low memory. Page tables. User space and kernel space memory, layout. Functions brk, madvice, mmap. Malloc and alternative libraries.

  • System programming 2

    Work modes: privileged, normal. Memory, its sections. Process resources - descriptors, locks. Process interrupts: exceptions, hardware, scheduling. Work context: user, kernel, signal. Interaction with the kernel - system calls: what are they, how parameters are passed and a result returned.

  • System programming 1

    The kernel. Process and its representation in the kernel. Process states, lifecycle. Types of process scheduling: preemptive and cooperative. Process schedulers, and IO Bound vs Processor Bound processes, details of scheduling. 'Nice' value and priorities. Timeslice - scheduling atom. CFS scheduler.

  • System programming 0

    Linux vs Unix. Microkernel. FreeBSD, Ubuntu, Mac, System III, V, Unix time-sharing system, 4.4BSD. Стандарты: ISO C, POSIX, Single Unix Specifications. Организации: Open Group, IEEE.

  • Системное программирование 4

    Прерывания. Аппаратные и программные, их природа, назначение. Обработка прерываний. Сигналы - зачем нужни они, как устроены. Обработка сигналов, особенности, контекст выполнения, longjump, top and bottom halves. /proc/interrupts. signal, sigaction.

  • Горизонтальное масштабирование в ядре Tarantool

  • Масштабирование баз данных, Tarantool

  • Системное программирование 10

    Пользователи, группы, права. Атрибуты и права доступа файлов и процессов. Группы процессов, сессии. /etc/passwd, /etc/group. Sticky bit. Демонизация процесса. Атрибуты глобальных объектов: локов, памяти.

  • Системное программирование 9

    Advanced IO. Неблокирующие IO операции. Блокировка файла: flock, lockf, fcntl. Multiplexed IO: select, poll, kqueue. Async IO: aio_read/write.

  • Системное программирование 8

    Сеть, краткая история от ARPANET. Каноническая модель OSI, реальная TCP/IP, стек протоколов. Реализация сетевого взаимодействия в ядре. Пользовательский интерфейс socket, connect, close, send, recv. TCP и UDP.

  • Системное программирование 7

    IPC. Pipe, FIFO. XSI: message queue, semaphore, shared memory. POSIX semaphore. Sockets: API, byte ordering. Доменные сокеты.

  • Slides CSS

  • Системное программирование 6

    Потоки в linux, представление в ядре. Отличие от процессов. POSIX. Синхронизация: mutex, rw-lock, condition variable, spin lock, barrier. Атомарные операции. Атрибуты потоков и объектов синхронизации.

  • Системное программирование 5

    Файловая система и ядро. Виртуальная ФС. Файлы и типы: block, char, network. Представление в ядре: inode. Секторы. Планировщики IO операций - elevator-ы: Linus, Deadline, Anticipatory, CFQ, Noop. Page cache. Page nowrite/writethrough/writeback. Работа с файлом - buffered, unbuffered, line.

  • VShard - горизонтальное масштабирование в Tarantool

  • Системное программирование 3

    Виртуальная и физическая память. Cache, cache line, cache levels, cache coherence, false sharing. High and low memory, области памяти. Page tables. Память ядра и процесса пользователя, разметка, вызовы: kmalloc, vmalloc, brk, madvice, mmap, pmap. Malloc, его альтернативы.

  • Системное программирование 2

    Режимы работы: привелигированный, обычный. Память, разбивка на секции. Ресурсы процесса - дескрипторы, локи. Прерывания процесса: исключения, аппаратные, шедулинг. Контексты работы: пользователь, ядро, сигнал. Обращения к ядру - системные вызовы: как определяются, передача параметров, возврат результата.

  • Системное программирование 1

    Ядро. Процесс и его представление в ядре. Состояния процесса, цикл жизни. Типы совместной работы процессов: preemptive и cooperative. Планировщики и IO Bound vs Processor Bound процессы, особенности планирования. Вызов nice, приоритеты. Единица планирования - timeslice. Планировщики в ядре, CFS. Вызовы sched_yield и sched_setaffinity.

  • Системное программирование 0

    Linux vs Unix. Microkernel. FreeBSD, Ubuntu, Mac, System III, V, Unix time-sharing system, 4.4BSD. Стандарты: ISO C, POSIX, Single Unix Specifications. Организации: Open Group, IEEE.

  • VShard - горизонтальное масштабирование в Tarantool

  • Новые LSM индексы в Tarantool

  • Защита диссертации

  • ДЗ по запросу проекта

  • Разработка и реализация алгоритма отложенного обновления вторичных индексовна LSM-деревьях в базах данных

  • Разработка распределенного алгоритма двухфазной синхронизации на основе архитектуры базы данных Tarantool

  • Почему в основе интернета лежит ненадежный протокол без соединений?

  • Многопоточное программирование на С++

  • Исследование и модификация алгоритма синхронизации времени от и

  • deck