Сокольников А.М. —
Сравнительный анализ подходов к разработке архитектуры и систем управления базами данных для высоконагруженных WEB-сервисов
// Кибернетика и программирование. – 2014. – № 4.
– С. 1 - 13.
DOI: 10.7256/2306-4196.2014.4.12800
URL: https://e-notabene.ru/kp/article_12800.html
Читать статью
Аннотация: В современном мире для разработчиков все острее встает проблема обработки и хранения больших объемов данных. Сообщения в социальных сетях, фотографии, потоковое видео – все это создает высокую нагрузку на программное обеспечение, используемое на серверах. По этой причине стандартные подходы, используемые для проектирования архитектуры настольных приложений, чаще всего будут неэффективны, так как в большинстве случаев они не учитывают нагрузку на приложение со стороны огромного числа пользователей.
На сегодняшний день нет четкого определения для высоконагруженных систем. В большинстве случаев этот термин применяются в ситуациях, когда приложение перестает справляться с моментальной нагрузкой, возложенной на него. Нельзя указать конкретных значений, по достижении которых система считается высоконагруженной, поскольку все приложение специфичны и одинаковое количество запросов может приводить к абсолютно разным нагрузкам на ресурсы.
В ходе исследования систем управления базами данных было проведено несколько опытов замеряющих скорость выполнения основных операций с базами данных: добавление, выборка и удаление. На основании результатов этих опытов были сделаны выводы и даны рекомендации по выбору системы управления базами данных. В данной статье рассмотрены подходы к разработке высоконагруженных систем, выделены недостатки и преимущества каждого из подходов и приведены примеры использования этих подходов такими популярными сервисами, как ВКонтакте, Facebook, Google и Яндекс. Приведен сравнительный анализ систем управления базами данных MySQL и MongoDB. В заключении даны рекомендации по выбору СУБД в зависимости от подхода к проектированию архитектуры высоконагруженного проекта.
Abstract: In today’s world the problem of processing and storing huge amounts of data becomes increasingly pressing. Messages in social networks, photos, streaming video – altogether creates a high load on the server-side software. For this reason common approaches used in desktop-software design may be ineffective since they don’t take into account the huge load on the application created by the vast number of users. Currently, there is no clear definition for highly-loaded systems. In most cases this term is used in situations, when software fails to operate under some momentary load. There’s no specific values set at which a system can be considered highly-loaded, since each software is different and same amount of requests can lead to completely different loads on the resources. The given study of the database management systems consisted of several experiments, measuring the speed of common operation on databases, such as adding, selecting and deleting. Based on the result of these experiments the author makes conclusions and gives recommendations on choosing the database management system. The article reviews approaches in developing highly loaded systems, highlights their features and disadvantages and shows examples of the use of these approaches in popular web-services such as ВКонтакте, Facebook, Google and Яндекс. The articles brings a comparative analysis of MySQL and MongoDB database management systesms. In conclusion the author gives recommendations on selecting a database management system depending on the approach to designing architecture of a highly-loaded project.