В частности, существуют ли какие-либо базы данных, которым не требуется дополнительное хранилище (например, жесткий диск) для обеспечения надежности?
Примечание. Это выше моего предыдущего вопроса.
В частности, существуют ли какие-либо базы данных, которым не требуется дополнительное хранилище (например, жесткий диск) для обеспечения надежности?
Примечание. Это выше моего предыдущего вопроса.
Если вы хотите, чтобы переходы сохранялись, запись в постоянное хранилище - единственный вариант (возможно, вы не хотите строить много кластеров с независимыми источниками питания в независимых центрах обработки данных и при этом молитесь, чтобы они никогда не выходили из строя одновременно). С другой стороны, это зависит от того, насколько ценны ваши данные. Если это необязательно, тогда может потребоваться чистая БД в памяти с достаточной репликацией. Кстати, даже жесткий диск может выйти из строя после того, как вы сохранили на нем свои данные, поэтому здесь нет идеального решения. Вы можете посмотреть http://www.julianbrowne.com/article/viewer/brewers-cap-theorem, чтобы выбрать компромисс репликации.
Prevayler http://prevayler.org/ - это пример системы в оперативной памяти с резервным копированием с помощью постоянного хранилища (и код чрезвычайно прост, кстати). Долговечность обеспечивается за счет журналов транзакций, которые хранятся на соответствующем устройстве (например, HDD или SSD). Каждая транзакция, изменяющая данные, записывается в журнал, и журнал используется для восстановления состояния БД после сбоя питания или перезапуска базы данных / системы. Помимо Prevayler, я видел похожую схему, используемую для сохранения очередей сообщений. Это действительно похоже на то, как работает «классическая» СУБД, за исключением того, что журналы - это только данные, записываемые в базовое хранилище. Журналы также могут использоваться для репликации, поэтому вы можете отправить одну копию журнала на живую реплику, а другую - на жесткий диск. Конечно, возможны различные комбинации.
Все базы данных требуют энергонезависимой памяти для обеспечения надежности. Образ памяти не является надежным носителем информации. Вскоре после отключения питания образ в памяти становится недействительным. Аналогичным образом, как только процесс базы данных завершится, операционная система освободит память, содержащую образ в памяти. В любом случае вы потеряете содержимое своей базы данных.
Пока какие-либо изменения не были записаны в энергонезависимую память, они не являются действительно долговечными. Это может состоять либо из записи всех изменений данных на диск, либо из журнала вносимых изменений.
В критических по объему или размеру случаях энергонезависимая память, такая как флэш-память, может быть заменена жестким диском. Однако сообщается, что во флэш-памяти возникают проблемы с количеством записываемых циклов записи.
Ознакомившись с вашим предыдущим постом, можно сказать, что многосерверная репликация будет работать до тех пор, пока вы можете поддерживать работу последнего сервера. Как только он выйдет из строя, вы потеряете очередь. Однако есть ряд альтернатив Oracle, которые можно рассмотреть.
КПК часто используют память с резервным питанием от батареи для хранения своих баз данных. Эти базы данных становятся недолговечными после разрядки батареи. Резервные копии важны.
In-memory означает, что все данные хранятся в памяти для доступа к ним. Когда данные читаются, они могут быть прочитаны с диска или из памяти. В случае баз данных в памяти он всегда извлекается из памяти. Однако, если сервер внезапно выключится, данные будут потеряны. Следовательно, считается, что базы данных в памяти не поддерживают ACID, обеспечивающую надежность. Однако во многих базах данных реализованы разные методы обеспечения надежности. Эти методы перечислены ниже.
Классическая база данных в памяти не может обеспечить классическую долговечность, но в зависимости от ваших требований вы можете:
Есть ли причина, по которой вы не хотите использовать постоянное хранилище?