База данных в памяти ( IMDb , или система баз данных в основной памяти ( MMDB ) или резидентная база данных ) — это система управления базами данных , которая в первую очередь использует основную память для хранения компьютерных данных . Она контрастирует с системами управления базами данных, которые используют механизм дискового хранения . Базы данных в памяти быстрее, чем оптимизированные для диска базы данных, поскольку доступ к диску медленнее, чем доступ к памяти, а внутренние алгоритмы оптимизации проще и выполняют меньше инструкций ЦП. Доступ к данным в памяти устраняет время поиска при запросе данных, что обеспечивает более быструю и предсказуемую производительность, чем диск. [1] [2]
Приложения, в которых время отклика имеет решающее значение, например, те, которые работают с телекоммуникационным сетевым оборудованием и сетями мобильной рекламы , часто используют базы данных в основной памяти. [3] Базы данных IMDB приобрели большую популярность, особенно в области анализа данных , начиная с середины 2000-х годов , в основном благодаря многоядерным процессорам, которые могут работать с большими объемами памяти, и менее дорогой оперативной памяти . [4] [5]
Потенциальным техническим препятствием для хранения данных в памяти является нестабильность оперативной памяти. В частности, в случае отключения питания, преднамеренного или иного, данные, хранящиеся в энергозависимой оперативной памяти, теряются. [6] С внедрением технологии энергонезависимой памяти с произвольным доступом базы данных в памяти смогут работать на полной скорости и сохранять данные в случае отключения питания. [7] [8] [9]
В простейшей форме базы данных основной памяти хранят данные на энергозависимых запоминающих устройствах. Эти устройства теряют всю сохраненную информацию, когда устройство теряет питание или сбрасывается. В этом случае можно сказать, что IMDB не поддерживают часть «долговечности» свойств ACID (атомарность, согласованность, изоляция, долговечность). IMDB на основе энергозависимой памяти могут поддерживать и часто поддерживают три других свойства ACID: атомарность, согласованность и изолированность.
Многие IMDB имеют дополнительную долговечность благодаря следующим механизмам:
Некоторые IMDB позволяют схеме базы данных указывать различные требования к долговечности для выбранных областей базы данных — таким образом, быстро меняющиеся данные, которые можно легко восстановить или которые не имеют смысла после завершения работы системы, не нужно будет регистрировать для долговечности (хотя их придется реплицировать для обеспечения высокой доступности), в то время как информация о конфигурации будет помечена как требующая сохранения.
Хотя хранение данных в памяти обеспечивает преимущества производительности, это дорогой метод хранения данных. Подход к реализации преимуществ хранения в памяти при ограничении его затрат заключается в том, чтобы хранить наиболее часто используемые данные в памяти, а остальные — на диске. Поскольку нет жесткого различия между тем, какие данные должны храниться в памяти, а какие — на диске, некоторые системы динамически обновляют, где хранятся данные, на основе использования данных. [10] Этот подход несколько отличается от кэширования , при котором кэшируются последние используемые данные, в отличие от наиболее часто используемых данных, хранящихся в памяти.
Гибкость гибридных подходов позволяет достичь баланса между:
В индустрии облачных вычислений появились термины «температура данных» или «горячие данные» и «холодные данные» для описания того, как данные хранятся в этом отношении. [11] Горячие данные используются для описания критически важных данных, к которым необходимо часто обращаться, в то время как холодные данные описывают данные, которые нужны реже и менее срочно, например, данные, хранящиеся для целей архивирования или аудита. Горячие данные должны храниться способами, обеспечивающими быстрое извлечение и изменение, часто достигаемое с помощью хранения в памяти, но не всегда. Холодные данные, с другой стороны, могут храниться более экономически эффективным способом, и считается, что доступ к данным, вероятно, будет медленнее по сравнению с горячими данными. Хотя эти описания полезны, «горячие» и «холодные» не имеют конкретных определений. [11]
Эффективность производства является еще одной причиной выбора комбинированной системы баз данных в памяти/на диске. Некоторые линейки продуктов устройств, особенно в потребительской электронике , включают некоторые устройства с постоянным хранилищем, а другие, которые полагаются на память для хранения ( например , телевизионные приставки ). Если таким устройствам требуется система базы данных, производитель может принять гибридную систему базы данных по более низкой и высокой стоимости и с меньшей настройкой кода, вместо того, чтобы использовать отдельные базы данных в памяти и на диске, соответственно, для своих бездисковых и дисковых продуктов.
Первая СУБД, поддерживающая как таблицы в памяти, так и таблицы на диске в одной базе данных, WebDNA , была выпущена в 1995 году.
Другой вариант предполагает наличие большого количества энергонезависимой памяти на сервере, например, чипов флэш-памяти в качестве адресуемой памяти, а не структурированной как дисковые массивы. База данных в этой форме памяти сочетает в себе очень высокую скорость доступа с устойчивостью к перезагрузкам и потерям питания. [12]
{{cite web}}
: CS1 maint: url-status ( ссылка )