Программирование в эпоху SSD - PullRequest
9 голосов
/ 04 июля 2011

Мне интересно, как новая технология SSD влияет на программирование.Возникают тонны вопросов, но вот некоторые наиболее очевидные:

  • Можно ли считать скорость доступа к диску где-то близко к скорости памяти?
  • Если нет, то это простовременное состояние, или есть некоторые фундаментальные причины, по которым SSD никогда не будет работать так же быстро, как ОЗУ?
  • Действительно ли B-деревья (и их двоюродные братья) по-прежнему актуальны?Есть ли какие-либо корректировки или модификации B-деревьев (B + -Tree, R-Trees и т. д.), сделанные для SSD?Если нет, существуют ли какие-либо другие структуры данных, созданные для SSD?

Ответы [ 6 ]

7 голосов
/ 22 августа 2011

Это правда, что твердотельные накопители устраняют проблему времени поиска для чтения, но эффективно писать на них довольно сложно.Мы изучали эти проблемы, пытаясь найти наилучший способ использования твердотельных накопителей для ядра хранилища Acunu.

Вам может быть интересно:

3 голосов
/ 17 июля 2011
  • Современные твердотельные накопители на основе флэш-памяти работают не так быстро, как оперативная память DRAM. Будет ли технология энергонезависимой памяти в конечном итоге работать так же хорошо, как DRAM? Когда-нибудь. Разрабатывается много перспективных технологий.
  • Одним узким местом в производительности SSD является интерфейс SATA. По мере совершенствования технологии твердотельные накопители будут подключаться к шине DRAM или PCIe.
  • B-деревья по-прежнему актуальны, пока доступ к памяти осуществляется блоками. Даже DRAM доступен в блоках, а популярные блоки кэшируются в CPU. Хотя это сложно реализовать, B-дерево, предназначенное для работы в DRAM, может превзойти другие виды изменчивых деревьев поиска. Однако выигрыш в производительности вряд ли будет очевиден, пока в дереве не будут миллионы записей.
  • B-деревья, реализованные для твердотельных накопителей, выигрывают от улучшений в распределении блоков. Флэш-накопители текущего поколения предпочитают последовательно упорядоченные записи. По мере роста (или изменения) B-дерева новые блоки должны размещаться в последовательном порядке, чтобы получить наилучшую производительность записи. Форматы хранения на основе журналов должны хорошо работать, но я не видел ни одной реализации такого масштаба. Поскольку разрыв в производительности между последовательно и случайно упорядоченными записями сокращается, порядок распределения станет менее важным.
2 голосов
/ 04 июля 2011
  1. ОЗУ не должно запоминать состояние после сброса / перезагрузки. Я очень сомневаюсь, что SSD когда-нибудь будет работать так же быстро, как и ОЗУ.
  2. B-деревья по-прежнему очень актуальны, так как вы все еще пытаетесь свести к минимуму чтение с диска.
1 голос
/ 04 июля 2011

Один фактор легко приходит на ум ...

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

SSD практически исключают штраф за поиск, поэтому мы можем не беспокоиться оразмещение данных на диске.(Точнее, у нас другой набор проблем из-за проблем с выравниванием износа).

0 голосов
/ 27 апреля 2012

Хотя время поиска SSD лучше, чем у жесткого диска, на порядок или два, по сравнению с RAM, это время все еще значительно. Это означает, что проблемы, связанные со временем поиска, не так плохи, но они все еще существуют. Пропускная способность все еще намного ниже, чем в оперативной памяти. Помимо технологии хранения, важны соединения. ОЗУ физически очень близко к процессору и другим компонентам на материнской плате и использует специальную шину. Устройства массовой памяти не имеют этого преимущества. Существуют пакеты модулей оперативной памяти с батарейным питанием, которые могут выступать в качестве сверхбыстрой замены жесткого диска, но если они подключаются через SATA, SCSI или другой типичный интерфейс диска, они все равно работают медленнее, чем системная память.

Это означает, что B-деревья по-прежнему важны, и для высокой производительности вам все равно нужно позаботиться о том, что находится в ОЗУ и что находится в постоянном хранилище. Из-за всей архитектуры и физических ограничений (энергонезависимые записи, вероятно, всегда будут медленнее, чем энергозависимые), я думаю, что этот разрыв может стать меньше, но я сомневаюсь, что он будет полностью устранен в любом обозримом будущем. Даже если вы посмотрите на «RAM», у вас действительно не будет единой скорости, но есть несколько уровней более быстрых (но меньших и более дорогих) кэшей. Так что, по крайней мере, есть некоторые различия, чтобы остаться.

0 голосов
/ 13 января 2012

Я тестировал время сборки на SSD и RamDisk, SSD был немного быстрее.Тот же результат был достигнут моим коллегой с совершенно другой настройкой - время сборки на HDD составило 9 минут, на RamDisk 3 минуты 30 секунд, на SSD 3 минуты 0 секунд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...