Alexander Krizhanovsky Krizhanovsky Hpds

  • 489 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
489
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Высокопроиз-водительные сиситемы хранения
  • 2. Содержание
    • Кэширование и ввод-вывод в современных СУБД (MySQL InnoDB)
    • 3. Page cache и планировщик ввода-вывода в Linux 2.6
    • 4. Non-ACID хранилище на основе Linux page cache
  • 5. MySQL InnoDB: кэши
    • Собственный data cache (O_DIRECT)
  • 6. MySQL InnoDB: ввод-вывод
    • ------
  • 7. Linux: page cache
    • Собственный data cache (O_DIRECT)
  • 8. Linux: vmscan Сбросом грязных страниц занимаются (???)
    • Kswapd : когда почти уже не осталось памяти
    • 9. Pdflush : сброс грязных страниц
    Эта часть ядра Linux активно разрабатывается, поэтому возможны проблемы при «необычных» нагрузках
  • 10. Linux: IO scheduler
    • Уровень блочного ввода-вывода (между ФС и драйвером устройства)
    • 11. Накапливает, переупорядочивает и отдает на ввод-вывод драйверу запросы ввода-вывода
  • 12. ОС & СУБД
    • Дублирование механизмов кэширования данных
    • 13. Дублирование планирования ввода-вывода
    • 14. Двойное индексирование блоков данных в БД и ФС
  • 15. Linux: mmap()
    • В большинстве случаев сопровождается выделением новой VMA (Virtual Memory Area)
    • 16. Zero-copying (страницы сбрасываются на диск без копирования)
  • 17. Linux: x86-64
    • Можно адресовать 128TB в user space (32M страниц 4KB)
    • 18. При этом расходы на page table - ~256GB RAM
    • 19. Если использовать Hugetlbfs с 2MB страницами, то pagetable будет занимать всего 512MB
    • 20. Можно использовать 1GB страницы
    • 21. Для больших страниц процессоры используют отдельный (не больщой) TLB cache
  • 22. Non-ACID HP storage: задачи
    • Высокая производительность на сильно нелокализованных данных
    • 23. Быстрота реализации
    • 24. Относительная надежность (возможность восстановления данных)
    • 25. Простая модель данных (мало зависимостей по данным)
  • 26. Non-ACID HP storage: архитектура
    • Вся база данных mmap() 'ится небольшими кусками (extents) в память
    • 27. Старые экстенты периодически принудительно сбрасываются на диск ( munmap() ) для очистки page table
    • 28. Pdflush автоматически сбрасывает наименее грячие страницы
    • 29. IO scheduler планирует очередность записи
  • 30. Non-ACID HP storage: целостность
    • Мы больше не контролируем очередность записи на диск при гранулярности выше 512 байт (физического блока данных)
    • 31. Целостность можно обеспечить только избыточной записью в переделах 512 байт
    • 32. Для каждого блока считаются контрольные суммы
    • 33. На старте, в случае некорректного завершения работы, проверяется консистентность
    • 34. Индекс можно восстановить из данных
  • 35. Спасибо!
      [email_address]