Большие данные довольно популярны на данный момент. Такие системы, как MapReduce, Hadoop, Dryad и DryadLINQ, упростили написание и выполнение специальных анализов больших данных. Два, о которых мы неоднократно слышали от пользователей, - это инкрементные и итеративные вычисления. Пользователи хотят иметь возможность быстро видеть небольшие изменения, как при запуске вычисления, так и при обновлении ранее вычисленных результатов, и пользователи хотят иметь возможность писать программы, которые повторяют субвычисления несколько раз, возможно, до конвергенции. Вот где появляется Naiad. Исследователи уже довольно давно знают, как выполнять инкрементную или итеративную параллельную обработку данных. Поддержка просмотра и работа с непрерывными запросами в сообществе баз данных демонстрирует инкрементные вычисления, а полуинвазивная оценка журнала данных и рекурсивный SQL способны выполнять эффективные итеративные вычисления, среди многих других. Но, насколько нам известно, никому не удалось выполнить оба в масштабируемой распределенной системе. Naiad - это проект, основанный на новой вычислительной модели под названием differential data flow, нацеленный на поддержку эффективного инкрементного итеративного потока данных. Как и многие предыдущие работы по инкрементальному потоку данных, Naiad основан на различиях в обработке между коллекциями. В отличие от предыдущей работы, в которой коллекции развиваются только в одном направлении, например, со временем или итерацией, коллекции в Naiad могут развиваться в нескольких независимых направлениях, таких как время и итерация. На первый взгляд это может показаться сложным; если коллекция отличается по многим параметрам, менее ясно, из какой коллекции берется каждое различие. Но с небольшим количеством математики, связанной с решетками, появляется простое определение, поддерживающее эффективные инкрементные и произвольно вложенные итеративные вычисления. Мы запускаем Naiad онлайн в Microsoft Research Silicon Valley, тестируя его применимость для сложных параллельных анализов данных, таких как поддержание структуры сильно связанных компонентов в графе "упоминания" Twitter с задержкой обновления менее секунды. Мы также создали прототипы множества других вычислений, включая вычисление кратчайшего пути, рейтинг страницы, стабильное сопоставление, разбиение графа на разделы, k-средние ядра и другие, все автоматически распараллеленные и инкрементированные. | |
| |
Просмотров: 133 | |