SlideShare a Scribd company logo
Нереляционные системы хранения данных Павел Уваров <puvar@rambler-co.ru> Рамблер
Хранение данных Суммарный объем Важность данных (допустимость их потери) Стоимость потери MB = Стоимость хранения MB Классы задач Метод доступа (random/serial) Максимальное допустимое время отклика Средний размер порций данных Частота извлечения/добавления данных
Диски и файлы Файловые системы (ext2, ext3, xfs, reiserfs) RAIDы Сетевой доступ к устройству: SAN (SCSI или ATA по сети) Сетевой доступ к хранилищу: NAS (NFS, SMB/CIFS) Распределенные файловые системы (AFS, DFS, Coda, Hadoop, GFS, MogileFS)
Встраиваемые БД Популярные Berkley DB – ключ/значение Berkley DB XML – XQuery SQLite – SQL HSQLDB – Java, SQL Особенности Нулевое администрирование Дуализм: БД/формат файла
Сетевые БД SQL СУБДы (MySQL, PostgreSQL, Oracle, MSSQL) Транзакции, контроль целостности Одновременный доступ (concurrent access) Гибкость схем данных и языка запросов -> широкий класс задач Построчный доступ XML СУБД (Oracle XML DB, IBM DB2 pureXML)
Другие решения Memcached – бездисковый сетевой кэш Ленточные накопители – дешевое оффлайновое хранилище
Хранилице индекса в Рамблере Сверхбольшие объемы данных Хранилище ~10-20Tb (~10^11 строк) Ежедневное обновление ~100-200Gb Класс задач: R = F(A,B,C,…) R, A, B, C – сверхбольшие таблицы F – некоторая операция
Скорость Память ~1 Gb/s Диск (random I/O) ~50-200 seeks/s Если пытаться использовать диск в качестве SDRAM, то все упрется в seek rate  Асинхронно из диска можно выжать те же 100 Mb/s (но это тема для отдельного доклада) Диск (serial I/O) ~50-200 Mb/s Это самый экономичный способ обработки информации
Наше решение Любая распределенная файловая система Кластер из обычных серверов с обычными дисками Один файл – одна сверхбольшая таблица Таблица может быть размазана по нескольким файлам Гибкая схема данных Оптимизация на последовательное I/O
HCS (хикс) HCS = Hierarchically Compressed Stream Иерархически сжатый поток кортежей Особенности Дуализм протокол/формат Внешне похож на реляционную таблицу Схема кортежа в заголовке Контроль четности (CRC32)
Кортежи Кортеж определяется схемой: H4{host}:U6{uri},C*1024{url} i2,i4:f8{pagerank}:T4 Основные типы полей: I (integer), F (float), T (antitime), C (string) Сравнение кортежей Универсальное двухуровневое лексикографическое сравнение => универсальные утилиты обработки
Иерархичность
Управление потоками Класс задач: R = F1(A,F2(B,C),F3(D)) Последовательный вывод порождает другой HCS-поток Последовательный ввод может быть из любого сокета
Что можно делать последовательно? Сортировка (merge sort) sorted = F(sorted,sorted,…) Merge (Annihilate, Aggregate (reduce), Filter) Join (map) по первым полям Filter/Grep по какому-нибудь условию Select (меняет схему) Dump/Undump (для отладки)
Таблица из 125 миллионов строк
Пример из жизни Статистика кликов в Рамблере Ежедневно приходит 7.2G сжатых логов (40M строк) Порождается статистика посредством join трех логов (200M строк) На это тратится 30 минут Плюс 2 часа на агрегацию Все это на одном сервере
Основы библиотеки Класс Output, метод put Класс Input, метод get Обертки с теми же интерфейсами (Output_sort) Классы-утилиты (Merger и др.)
Считаем Pagerank Схема pagerank: I4{page},f8{pagerank} Схема графа: I4{page_from},I2{L}:I4{page_to} Пишем сумматор Output_sum Сортер: Output_sort<Merger<Output_sum>,Output_sum>
Область применения HCS Любая поисковая система Обработка статистики Биллинг
HCS будет в OpenSource В конце октября 2008 Пишите: puvar@rambler-co.ru
Вопросы?

More Related Content

PPTX
Lecture14
PDF
Система Хранения Оригиналов Документов
PDF
Файловые системы
PPT
файлы и файловая система
PPT
Анализ и оценка систем адресации данных в современных ЭВМ
PPT
модуль 16 взаимодействие с файловой системой
PPTX
гипертекст
Lecture14
Система Хранения Оригиналов Документов
Файловые системы
файлы и файловая система
Анализ и оценка систем адресации данных в современных ЭВМ
модуль 16 взаимодействие с файловой системой
гипертекст

What's hot (19)

PPT
[Youdz.ru] жесткий диск
PPT
Понятие об ОС. Рабочий стол, файл, папка, диск
PDF
04 - Hadoop. HDFS Java API
PPTX
PPTX
понятие о файле и папке
PPTX
информатика. файловая система
PPT
Fajlovye sistemy
PPTX
Файл
PPT
Презентация на тему: Файловая структура диска
PDF
Опыт разработки масштабируемого решения по хранению журналов в Hadoop
PPTX
файлы и файловые структуры
PDF
03 - Hadoop. HDFS Shell-команды
PPTX
Сжатие файлов. Архивация.
PPT
п о файловая система
PPTX
информатика. ос
PPT
лекция 9
PPT
презентация "Архиваторы"
PPTX
Файлы и файловые структуры
[Youdz.ru] жесткий диск
Понятие об ОС. Рабочий стол, файл, папка, диск
04 - Hadoop. HDFS Java API
понятие о файле и папке
информатика. файловая система
Fajlovye sistemy
Файл
Презентация на тему: Файловая структура диска
Опыт разработки масштабируемого решения по хранению журналов в Hadoop
файлы и файловые структуры
03 - Hadoop. HDFS Shell-команды
Сжатие файлов. Архивация.
п о файловая система
информатика. ос
лекция 9
презентация "Архиваторы"
Файлы и файловые структуры
Ad

Similar to Hcs3 (20)

PPT
phpConf 2010 Классификация систем хранения
PDF
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
PDF
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
PPTX
Спасение 6 миллионов файлов в условиях полного Хецнера
ODP
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
PDF
HighLoad systems: tips & tricks
PPTX
Cassandra
PPTX
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
PPTX
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
PDF
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
PPTX
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
PDF
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
ODP
My talk on LeoFS, HappyDev 2014
PDF
Aлександр Зайцев, LifeStreet
PDF
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
PDF
Extreme cloud storage on free bsd (Андрей Пантюхин)
PPTX
Hosting for forbes.ru_
PDF
Новые возможности распределенной обработки данных в памяти (Coherence)
PPT
Rybak Big Projects New
PDF
Extreme Cloud Storage on FreeBSD, Андрей Пантюхин
phpConf 2010 Классификация систем хранения
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Спасение 6 миллионов файлов в условиях полного Хецнера
распределенное файловое хранилище (Nginx, zfs, perl). перепелица мамонтов. зал 2
HighLoad systems: tips & tricks
Cassandra
Спасение 6 млн файлов в условиях полного хецнера (Даниил Подольский, Дмитрий ...
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Бинарные (файловые) хранилища- страшная сказка с мрачным концом
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
My talk on LeoFS, HappyDev 2014
Aлександр Зайцев, LifeStreet
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Extreme cloud storage on free bsd (Андрей Пантюхин)
Hosting for forbes.ru_
Новые возможности распределенной обработки данных в памяти (Coherence)
Rybak Big Projects New
Extreme Cloud Storage on FreeBSD, Андрей Пантюхин
Ad

More from Ontico (20)

PPTX
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
PDF
Встреча докладчиков HL++ 2015
PPTX
Вебинар о конференции HighLoad++
PDF
Call for papers (2014) ru
PPTX
Учебный день конференции HighLoad++ 2013
PPTX
Как разработать социальную сеть, Олег Бунин
PDF
Конференции Онтико (2011)
PPTX
Программный комитет HighLoad++, 6 октября
PDF
Конференции 2010 / описание
PPTX
Онтико, 2009
PPTX
Конференции 2010
PPTX
Economy of project development
PPT
Ok2009 Пленарка
PPTX
Highload sites, master-class, OK-2009
PPTX
HighLoad Sites, Oleg Bunin
PPTX
I Safety 1c Bitrix
PPTX
I Safety 1c Bitrix
PDF
Gmr Highload Presentation Revised
ODP
Wonderful World Of Mysql Storage Engines Hl2008 Rus
ODP
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Встреча докладчиков HL++ 2015
Вебинар о конференции HighLoad++
Call for papers (2014) ru
Учебный день конференции HighLoad++ 2013
Как разработать социальную сеть, Олег Бунин
Конференции Онтико (2011)
Программный комитет HighLoad++, 6 октября
Конференции 2010 / описание
Онтико, 2009
Конференции 2010
Economy of project development
Ok2009 Пленарка
Highload sites, master-class, OK-2009
HighLoad Sites, Oleg Bunin
I Safety 1c Bitrix
I Safety 1c Bitrix
Gmr Highload Presentation Revised
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus

Hcs3

  • 1. Нереляционные системы хранения данных Павел Уваров <puvar@rambler-co.ru> Рамблер
  • 2. Хранение данных Суммарный объем Важность данных (допустимость их потери) Стоимость потери MB = Стоимость хранения MB Классы задач Метод доступа (random/serial) Максимальное допустимое время отклика Средний размер порций данных Частота извлечения/добавления данных
  • 3. Диски и файлы Файловые системы (ext2, ext3, xfs, reiserfs) RAIDы Сетевой доступ к устройству: SAN (SCSI или ATA по сети) Сетевой доступ к хранилищу: NAS (NFS, SMB/CIFS) Распределенные файловые системы (AFS, DFS, Coda, Hadoop, GFS, MogileFS)
  • 4. Встраиваемые БД Популярные Berkley DB – ключ/значение Berkley DB XML – XQuery SQLite – SQL HSQLDB – Java, SQL Особенности Нулевое администрирование Дуализм: БД/формат файла
  • 5. Сетевые БД SQL СУБДы (MySQL, PostgreSQL, Oracle, MSSQL) Транзакции, контроль целостности Одновременный доступ (concurrent access) Гибкость схем данных и языка запросов -> широкий класс задач Построчный доступ XML СУБД (Oracle XML DB, IBM DB2 pureXML)
  • 6. Другие решения Memcached – бездисковый сетевой кэш Ленточные накопители – дешевое оффлайновое хранилище
  • 7. Хранилице индекса в Рамблере Сверхбольшие объемы данных Хранилище ~10-20Tb (~10^11 строк) Ежедневное обновление ~100-200Gb Класс задач: R = F(A,B,C,…) R, A, B, C – сверхбольшие таблицы F – некоторая операция
  • 8. Скорость Память ~1 Gb/s Диск (random I/O) ~50-200 seeks/s Если пытаться использовать диск в качестве SDRAM, то все упрется в seek rate Асинхронно из диска можно выжать те же 100 Mb/s (но это тема для отдельного доклада) Диск (serial I/O) ~50-200 Mb/s Это самый экономичный способ обработки информации
  • 9. Наше решение Любая распределенная файловая система Кластер из обычных серверов с обычными дисками Один файл – одна сверхбольшая таблица Таблица может быть размазана по нескольким файлам Гибкая схема данных Оптимизация на последовательное I/O
  • 10. HCS (хикс) HCS = Hierarchically Compressed Stream Иерархически сжатый поток кортежей Особенности Дуализм протокол/формат Внешне похож на реляционную таблицу Схема кортежа в заголовке Контроль четности (CRC32)
  • 11. Кортежи Кортеж определяется схемой: H4{host}:U6{uri},C*1024{url} i2,i4:f8{pagerank}:T4 Основные типы полей: I (integer), F (float), T (antitime), C (string) Сравнение кортежей Универсальное двухуровневое лексикографическое сравнение => универсальные утилиты обработки
  • 13. Управление потоками Класс задач: R = F1(A,F2(B,C),F3(D)) Последовательный вывод порождает другой HCS-поток Последовательный ввод может быть из любого сокета
  • 14. Что можно делать последовательно? Сортировка (merge sort) sorted = F(sorted,sorted,…) Merge (Annihilate, Aggregate (reduce), Filter) Join (map) по первым полям Filter/Grep по какому-нибудь условию Select (меняет схему) Dump/Undump (для отладки)
  • 15. Таблица из 125 миллионов строк
  • 16. Пример из жизни Статистика кликов в Рамблере Ежедневно приходит 7.2G сжатых логов (40M строк) Порождается статистика посредством join трех логов (200M строк) На это тратится 30 минут Плюс 2 часа на агрегацию Все это на одном сервере
  • 17. Основы библиотеки Класс Output, метод put Класс Input, метод get Обертки с теми же интерфейсами (Output_sort) Классы-утилиты (Merger и др.)
  • 18. Считаем Pagerank Схема pagerank: I4{page},f8{pagerank} Схема графа: I4{page_from},I2{L}:I4{page_to} Пишем сумматор Output_sum Сортер: Output_sort<Merger<Output_sum>,Output_sum>
  • 19. Область применения HCS Любая поисковая система Обработка статистики Биллинг
  • 20. HCS будет в OpenSource В конце октября 2008 Пишите: puvar@rambler-co.ru