Решение проблем с блокировками изменения данных для систем с большим числом CPU

28 мая 2008 года

Клиф Клик (Cliff Click) из компании Azul Systems предложил интересное решение проблемы по обеспечению работы быстрых и надежных блокировок при изменении структур данных в системах с большим количеством процессоров. При числе процессоров превышающих 32 становится неэффективным использование стандартных механизмов блокировки доступа к общим данными из многопоточных программ. Клифу была поставлена задача найти решение данной проблемы для 768-ядерной системы (теоретический порог возможности использования read-write локов - 50-100 CPU).

Суть идеи в изменении стиля кодирования и вовлечения для хранения данных массива большого размера, изменение каждой ячейки которого является атомарной операцией, реализованной путем переключения активной позиции в массиве через логическую репликацию единицы данных, используя алгоритм конечного автомата (с массивом производится операции чтения и инкрементального копирования ячеек при изменении).

В рамках проекта high-scale-lib разработана Java библиотека с реализацией предложенного подхода. Так реализация хэша (java.util.concurrent.ConcurrentHashMap) на 768 ядерной системе позволяет обрабатывать более миллиарда чтений данных в секунду при более 10 миллионов изменений в секунду (подход эффективен когда интенсивность чтения преобладает над изменением).

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Решение проблем с блокировками изменения данных для систем с большим числом CPU», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.