forked from xphoenix/afina
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
47 lines (38 loc) · 3.58 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# На следующий год
Тут что нужно поменять к следующему году, по зметкам студентов и личным наблюдениям
## Лекция 1
- Все таки написать текст лекции, а то получилось слишком сумбурно :(
- Вставить слайдов про архетектуру процессора, кэши, и.т.д. Рассказать про
про Hyper Threading, подробнее про потоки исполнения
*Домашка*:
- Добавить слайдов про аллокаторы:
-- Оценки по по колличеству аллокаций памяти (помнится NASA report был какой-то)
-- Типы аллокаторов (general, slab, e.t.c)
- Интерфейс привести к стандартному для C++, вместо C'ого
-- Вот про это конкретно подумать, а то там шаблоны и магия местами...С другой стороны, нигде ВООБЩЕ нет внятного описания про то, как
-- в С++ делать свои аллокаторы - полезно рассказать
- Выбрать 2 конкретные схемы для аллокатора (с учетом многопоточности. G1 & slab?)
-- Сделать слайды для пояснения алгоритмов
-- Для каждого написать полуготовую реализацию (народ жалуется на множество частных случаев, которые долго кодить)
-- Отдать студентам на реализацию
## Лекция 2
Пока нет feedback'а
*Домашка*:
Студенты говорят слишком простая, особенно по сравнению с аллокатором.
- Написать шаблон LRU, реализовать основной алгоритм и структуры данных
- Дать реализовать интерйес map и итераторы на основе написанного алгоритма
- Не забыть про лекцию по lock free
## Лекция 3
Пока нет feedback'а
*Домашка*:
Видимо выбрали слишком простую. Нужно еще что-то, кроме демонизации
- Как насчет graceful restart? Тогда нужно чтобы уже IPC и сеть были
- Сигналы между тредами - вот хорошая идея, например epoll будить и делать балансировку сокетов между epoll потоками через локальные очереди
## Лекция 4
Пока нет feedback'а
*Домашка*:
- AHTUNG: так как про mutex не рассказывали еще, то тяжело сделать отслеживания потоков, соответственно тяжело дожидаться, когда все потоки
отработают (читай соединения закроются)
-- Перести лекцию по примитивам синхронизации В САМОЕ НАЧАЛО, вообще 1ой сделать!
-- Аллокатор можно вообще в самый конец вынести, и сделать только slab, все равно другой в этой задаче не нужен
-- Slab, кстати, можно хорошо сделать на LockFree (как у tarantool arena->slab_cache->mempool)