база данных в памяти (IMDB, также система базы данных в основной памяти или MMDB или резидентная база данных в памяти ) - это система управления базами данных, которая в основном полагается на оперативную память для компьютерного хранилища данных. Это контрастирует с системами управления базами данных, в которых используется механизм дискового хранилища. Базы данных в памяти работают быстрее, чем базы данных, оптимизированные для диска, потому что доступ к диску медленнее, чем доступ к памяти, внутренние алгоритмы оптимизации проще и выполняют меньше инструкций ЦП. Доступ к данным в памяти устраняет время поиска при запросе данных, что обеспечивает более высокую и более предсказуемую производительность, чем диск.
Приложения, в которых время отклика имеет решающее значение, например, работающие с оборудованием телекоммуникационной сети и мобильная реклама сетей, часто использующих базы данных в оперативной памяти. IMDB приобрели большую популярность, особенно в области аналитики данных, начиная с середины 2000-х - в основном из-за многоядерных процессоров, которые могут работать с большой памятью, и из-за менее дорогих RAM.
Потенциальным техническим препятствием для хранения данных в памяти является непостоянство RAM. В частности, в случае отключения питания, преднамеренного или иного, данные, хранящиеся в энергозависимом ОЗУ, теряются. С внедрением технологии энергонезависимой памяти с произвольным доступом базы данных в памяти смогут работать на полной скорости и сохранять данные в случае сбоя питания.
В своей простейшей форме базы данных основной памяти хранят данные на устройствах энергозависимой памяти. Эти устройства теряют всю сохраненную информацию, когда устройство теряет питание или перезагружается. В этом случае можно сказать, что IMDB не поддерживают «долговечность» свойства ACID (атомарность, согласованность, изоляция, долговечность). IMDB на основе энергозависимой памяти могут поддерживать и часто поддерживают три других свойства ACID: атомарность, согласованность и изоляцию.
Многие IMDB увеличили надежность с помощью следующих механизмов:
Некоторые IMDB позволяют схеме базы данных определять различные требования к долговечности для выбранных области базы данных - таким образом, быстро изменяющиеся данные, которые можно легко регенерировать или которые не имеют смысла после выключения системы, не нужно регистрировать для обеспечения долговечности (хотя их необходимо реплицировать для обеспечения высокой доступности), тогда как конфигурация информация будет помечена как нуждающаяся в сохранении.
Хотя хранение данных в памяти дает преимущества в производительности, это дорогостоящий метод хранения данных. Подход к реализации преимуществ хранения в памяти при ограничении затрат заключается в хранении наиболее часто используемых данных в памяти, а остальных на диске. Поскольку нет жесткого различия между тем, какие данные следует хранить в памяти, а какие - на диске, некоторые системы динамически обновляют места хранения данных в зависимости от их использования. Этот подход немного отличается от кэширования, при котором кэшируются самые последние данные, к которым осуществлялся доступ, в отличие от данных, к которым наиболее часто осуществляется доступ, которые хранятся в памяти.
Гибкость гибридных подходов позволяет найти баланс между:
в облачные вычисления отрасль термины «температура данных» или «горячие данные» и «холодные данные» появились для описания того, как данные хранятся в этом отношении. Горячие данные используются для описания критически важных данных, к которым требуется частый доступ, в то время как холодные данные описывают данные, которые требуются реже и менее срочно, например данные, хранящиеся для целей архивирования или аудита. Горячие данные должны храниться таким образом, чтобы предлагать быстрое извлечение и модификацию, часто выполняемое хранением в памяти, но не всегда. С другой стороны, холодные данные можно хранить более экономичным способом, и считается, что доступ к данным, вероятно, будет медленнее по сравнению с горячими данными. Хотя эти описания полезны, нет конкретного определения для «горячего» и «холодного».
Производственная эффективность является еще одной причиной для выбора комбинированной системы баз данных в памяти / на диске. Некоторые линейки продуктов устройств, особенно в бытовой электронике, включают одни блоки с постоянным хранением, а другие используют память для хранения (например, телеприставки ). Если для таких устройств требуется система базы данных, производитель может принять гибридную систему базы данных по более низкой и высокой стоимости и с меньшей настройкой кода, вместо использования отдельных баз данных в памяти и на диске, соответственно, для своих бездисковых и дисковых баз данных. дисковые продукты.
Первый механизм базы данных, поддерживающий таблицы как в памяти, так и на диске в одной базе данных, WebDNA, был выпущен в 1995 году.
Другой вариант включает большие объемы энергонезависимой памяти на сервере, например микросхемы флэш-памяти в качестве адресуемой памяти, а не структурированные как дисковые массивы. База данных в этой форме памяти сочетает в себе очень высокую скорость доступа с постоянством при перезагрузках и потерях питания.