Ваши абстрактные требования кричат мне "PostgreSQL". Однако я думаю, что стоит быть в курсе того, чем занимается буржуазия, поэтому вот список различных вещей, которые вы, возможно, захотите проверить.
Бесплатные вещи
- CouchDB - одна из первых баз данных NoSQL, мощная система отображения / сокращения запросов, высоко распределенная и отказоустойчивая. Один из лучших претендентов на NoSQL.
- Hyperdex - очень новая, распределенная хеш-таблица с возможностями поиска.
- Riak - распределенная хеш-таблица, достойная некоторого уважения.
Странные бесплатные вещи
- Metakit - больше встроенной базы данных, такой как SQLite, но не основанной на SQL, поэтому более процедурной.
- FramerD - очень похож на классическую «сетевую» базу данных, очень ориентированную на указатели. Возможно мертвый?
- Магма - Smalltalk OODBMS. Круто, но не очень хорошо задокументировано.
Несвободные вещи
- AllegroGraph - RDF (граф) база данных, поддерживает SPARQL. Лисп вкус.
- Caché - гибридная реляционная / OO база данных, изначально основанная на MUMPS (IIRC).
- Объективность - одна из последних нескольких действительно больших OODB. Очень мощный, впечатляющий и дорогой.
- VoltDB - Масштабируемая в основном реляционная база данных. Поддерживает «самый» SQL. Очень новый Я думаю, у них тоже есть версия сообщества.
Вывод
Я не использовал ни одну из этих вещей широко. Я немного поиграл с большинством из них и всегда возвращался к PostgreSQL. Глядя на ваши требования, единственное, что PostgreSQL не соответствует стандарту - это масштабируемость. С другой стороны, для моих целей гораздо проще использовать 4000 долларов оборудования на одной выделенной машине базы данных, чем 4000 долларов облачных узлов или компьютеров низкого уровня для решения этой проблемы. И есть способы достижения масштабируемости с PostgreSQL, например с EnterpriseDB .
С этими вещами очень весело играть, но когда приходит время складывать ценные, невоспроизводимые производственные данные во что-то, на первый план выходит куча скучных атрибутов, таких как надежность, стабильность и долговременная жизнеспособность.
Мысленный эксперимент для вас
Учти это. Представьте, что вы Марк Цукерберг, и вам нужно либо отказаться от своей базы кода, либо от своих данных. Вы можете оставить весь свой персонал разработки, но вы должны либо отказаться от всего своего кода - каждой строки, скажем, даже все воспоминания разработчиков о том, как они реализовали все, исчезли, - но вы сохраняете все свои учетные записи пользователей и всех своих пользователей загруженными. данные и все такое, или вы можете отказаться от всех данных. Сохраните все структуры, серверы и конфигурацию, настройку, но потеряйте каждую строку в каждой таблице в каждой базе данных.
Должно быть очевидно, что было бы хуже потерять данные. Почему все ваши пользователи восстанавливают все эти данные? Подумайте обо всех потерянных маркетинговых данных, как Facebook на самом деле зарабатывает деньги. И есть множество предпринимателей, которые слюноотделают при возможности заставить людей использовать свой клон Facebook - теперь все те лишенные права голоса бывшие пользователи Facebook будут там, рассматривая альтернативы. С другой стороны, если бы они потеряли кодовую базу, они могли бы восстановить ее, возможно, даже лучше, чем сейчас, но они могли бы получить что-то в сети в очень короткие сроки. Черт возьми, они могли бы купитьчужую клонированную кодовую базу Facebook и загрузите ее с реальными данными, но вы не можете просто скопировать их данные. Если Facebook по-прежнему хранит важные данные всех на своих серверах, стимул уйти гораздо ниже. Все еще плохо, но намного меньше. Удивительно меньше.
Ирония заключается в том, что гораздо проще потерять все ваши данные в результате странной аварии, чем потерять весь ваш код. Для большинства интернет - компаний, однако, данные является компанией, она является наиболее ценным активом. И это веская причина для рассмотрения вопроса об использовании традиционной, проверенной временем, устаревшей несексуальной реляционной базы данных.