Классификация систем хранения и обработки данных
Что общего в архитектуре любого
web-приложения среднего уровня?
у нас ~2.2 миллиона DAU, ~40kk php req, avg req time 0.03 ;-) Обработка соединений (nginx, apache, node.js, tornado и т.п.) Application Layer (php,python,v8, jvm, asp.net и т.п.) СИСТЕМЫ ХРАНЕНИЯ ДАННЫХ (filesystem, memory, sql, nosql) Наш (и не только) опыт показывает, что практически не важно какую технологию вы используете для Application Logic, узким местом является система хранения, причем зачастую не потому что «плохая», а потому что используется не правильно. Как мы классифицируем системы хранения
1) где и сколько храним данных, протокол Тип хранения Где именно система хранит данные RAM (быстро), SSD, SAS, HDD во всех проявлениях (медленнее) Гибрид RAM+Диск (IMHO оптимально) Доступность по сети (TCP\UDP) Ограничение на размер данных Соотношение размер\скорость работы. На текущий момент все рассматриваемые продукты имеют достаточно большие лимиты на максимальный размер данных, но для всех систем хранения есть предел, после которого «активная часть данных» начинает тормозить