Ищете фреймворк для веб-приложений, который устраняет базу данных - PullRequest
1 голос
/ 28 июня 2011

Я работал с Django в течение последнего года, и мне это очень нравится.Но иногда я нахожу, что ORM - что-то вроде смирительной рубашки.Все данные, которые я перетаскиваю назад и вперед в базу данных, легко помещаются в 1 ГБ ОЗУ.Даже если бы проект вырос на несколько порядков, он все равно уместился бы в 1 ГБ.

Мне бы хотелось решение, при котором моему приложению нужно только читать с диска при запуске, но записывать на диск неявно, когда я обновляю свойобъекты.Меня не волнует какое-либо увеличение скорости, которое это может дать мне.Что мне действительно нужно, так это дополнительная гибкость.Если у меня есть проблема, которая бы хорошо подходила для связанного списка, дерева или какой-либо другой структуры данных, мне не пришлось бы переносить ее на реляционную базу данных.

Python был бы хорош, но другие языки хороши,Я в стадии исследования по этому вопросу.Я хочу понять, какие решения существуют.При поиске в этом вопросе я получил много откликов, связанных с различными проектами Nosql.Но Nosql, насколько я понимаю, это все, что вы делаете, когда вы перерастаете реляционные базы данных, потому что у вас слишком много данных.Я действительно на другом конце спектра.У меня так мало данных, что реляционная база данных на самом деле излишня.

Объектные базы данных - это еще одна вещь, которая возникла, когда гуглил этот вопрос, который напомнил мне Zope и ZODB.Я немного поболтал с Zope и очень не любил это.Но читая немного об объектных базах, я подумал, что это может быть то, что я ищу.С другой стороны, их общая неспособность привлечь пользователей вызывает у меня подозрение.Объектные базы данных существуют уже очень давно и до сих пор не завоевали популярность.Я думаю, это значит, что с ними что-то не так?

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Если вы ищете " хранение структур данных в памяти " и " резервное копирование их на диск ", вы действительно ищете систему постоянного кэширования и Redis идеально подходит для всех.

Если вы хотите использовать django, есть встроенная система кеша, которая подключается к бэкэнду redis через Redis-Cache проект,Более того, структуры данных, размещенные в Redis, имеют однозначное сопоставление со структурами данных Python, и поэтому все довольно просто.

Я не уверен, если пропустить концепцию самой базы данных,отличная идея.База данных обеспечивает такие большие возможности в плане агрегации, аннотирования, отношений и т. Д., Все в пределах приемлемых уровней производительности, пока вы не достигнете действительно большого масштаба.

Возможно, другой идеей было бы использовать База данных SQLite в памяти .SQLite настолько распространен в наши дни, что исчез в инфраструктуре.Он встроен в приложения Android, iphone и поддерживает все стандартные библиотеки.Это также потрясающее программное обеспечение, разработанное и протестированное настолько хорошо, что очень трудно выдвинуть доводы против его использования.

1 голос
/ 29 июня 2011

Компания, в которой я работаю (Starcounter), создает базу данных, которая работает именно так, как вы описываете. Мы работаем с базой данных в течение нескольких лет с нашими партнерами-клиентами и собираемся сделать продукт общедоступным. Основная причина, по которой мы его создали, заключается в простоте использования и производительности. Я буду рад выслать вам копию, если вы отправите мне сообщение на нашем корпоративном форуме (я Старконтер Джек). По предмету по базам данных ОО; причина того, что базы данных ОО потерпели неудачу, в основном потому, что они были больше экспериментами, чем реальными продуктами. Они были плохо реализованы, поддерживали только парадигму ОО и игнорировали стандарты, такие как SQL и ODBC. Им также не хватало стабильности, производительности и зрелости. Их история - это аналоги ранних планшетов, электронных книг и смартфонов за десятилетие или два до iPhone, iPad и Kindle. Но, как и в случае с любой технологией, есть две волны (посмотрите «цикл рекламы»). Пока первая волна разочарует, вторая будет хорошей. Первый будет основываться на концепциях и идеях и будет лишен коммерческого успеха и практического использования. Вторая волна не захочет иметь ничего общего с затхлым запахом неудач первой и поэтому будет использовать новые и свежие сокращения и модное слово. Будущая база данных возникнет из движения NoSQL. Будет добавлена ​​поддержка SQL, и многие подумают, что это новинка. Это добавит хорошую интеграцию с языком (и большинство языков ооо), и многие подумают, что это тоже ново. Это поддержит документы, и многие будут думать, что это будет новым. Многие вновь откроют для себя необходимость транзакций и т. Д. Некоторые сварливые старики попытаются сказать нам, что все, что мы сделали, - это заново изобрели существующие идеи. В каком-то смысле они будут правы; в некоторых отношениях они не будут. На этот раз концепции созрели. Будут добавлены новые идеи и прагматизм. Но опять же, iPad все еще в каком-то смысле КПК.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...