В ваших вопросах есть неявное предположение - вы предполагаете, что все данные могут соответствовать
на одной машине, и что приложение локализовано в одном месте.
Что произойдет, если приложение настолько велико, что не помещается на одной машине? Что произойдет, если приложение перерастет одну машину?
Вы не хотите иметь один способ программирования приложения, если оно умещается на одной машине и
совершенно другой способ его программирования, как только он превосходит одну машину.
Что произойдет, если вы захотите сделать отказоустойчивое приложение? Чтобы сделать что-то отказоустойчивое, вам нужны как минимум две физически разделенные машины и без общего доступа .
Когда вы говорите о совместном использовании и базах данных, вы не упоминаете о таких вещах, как mySQL
кластера достичь отказоустойчивости точно, поддерживая синхронизированные копии
данные в физически разделенных машинах - много сообщений и
копирование, которое вы не видите на поверхности - Эрланг просто разоблачает это.
Способ, которым вы программируете, не должен внезапно меняться для обеспечения отказоустойчивости и масштабируемости.
Erlang был разработан в первую очередь для создания отказоустойчивых приложений.
Совместно используемые данные на многоядерном ПК имеют свои собственные проблемы - при доступе к общим данным
вам нужно приобрести блокировку - если вы используете глобальную блокировку (самый простой подход), вы можете в конечном итоге
остановка всех ядер при доступе к общим данным. Общий доступ к данным на многоядерном
может быть проблематичным из-за проблем с кэшированием, если ядра имеют локальные кэши данных, тогда доступ к «удаленным» данным (в некоторых других процессорах) может быть очень дорогим
Многие проблемы внутренне распределены, и данные никогда не доступны в одном месте.
в то же время так - подобные проблемы хорошо сочетаются с мышлением Эрланга.
В распределенном параметре «гарантированная доставка сообщений» - невозможно - возможно, произошел сбой конечного компьютера. Таким образом, Erlang не может гарантировать доставку сообщений.
он использует другой подход - система сообщит вам, если не удалось доставить сообщение
(но только если вы использовали механизм ссылок) - тогда вы можете написать свою собственную ошибку
восстановление.) * * тысяча двадцать-одна
Для чистого числа хрусталя Erlang не подходит - но в гибридной системе Erlang
хорошо справляется с распределением вычислений между доступными процессорами, поэтому мы видим множество систем, в которых Erlang управляет распределением и отказоустойчивыми аспектами проблемы, но сама проблема решается на другом языке.
и другие языки используются