Форум сайта python.su
igor.kaistОчень зря. Вещь просто прекрасная, но нужно чётко определится с задачей.
что то не очень лестные отзывы слышал…
Офлайн
ZZZВот с этим как раз проблемы :)
Вещь просто прекрасная, но нужно чётко определится с задачей.
{'type':'catalog','name':'wedding','photos':[photo1,photo2,photo3]}
{'type':'news','title':'Some title','photos':[photo2]}
{'type':'photo','url':'/images/1.jpg','title':'Some title'}
Офлайн
Ну тогда лучше ZODB врядли можно что-нить придумать.
Но фотографии лучше на файловой держать и nginx'ом отдавать, а в БД держать только ссылки… Но думаю, что ты и без меня это знаешь. :-)
Офлайн
ZZZАбсолютно согласен, для данной задачи - пэрсык!
Ну тогда лучше ZODB врядли можно что-нить придумать.
Офлайн
igor.kaistв монго есть коллекции: не обязательно хранить тип:
Текущая задача достаточно простая, сайтик с портфолио фотографа (меня). Категории, фотографии и прочие мелочи. Хочу что то типа этого:{'type':'catalog','name':'wedding','photos':[photo1,photo2,photo3]}
{'type':'news','title':'Some title','photos':[photo2]}
{'type':'photo','url':'/images/1.jpg','title':'Some title'}
db.catalog.save( {'name':'wedding','photos':[photo1,photo2,photo3]} )
db.news.save( {'title':'Some title','photos':[photo2]} )
db.photo.save( {'url':'/images/1.jpg','title':'Some title'} )
Офлайн
o7412369815963Да, это уже детали. У меня, например, одна и та же фотография, может быть в нескольких местах. И в портфолио и в новости о событии. Один раз загрузил, вписал title и используй где хочешь.
не понятно зачем фотки отдельно, их можно отдельно если например нужна возможность их комментирования, комментарии пихать в этот же документ, а вообще вариантов архитектур можно напридумывать много.
o7412369815963Вот тоже к этому начинаю приходить. Да и меньше время на разработку, а время это деньги.
По своему опыту пришел к выводу, что архитектуру нужно строить так, что-бы данные хранились в максимально готовом виде
Офлайн
Вибачте не втримався і таки відпишу про ZODB українською.
ZODB не дуже добрий вибір де мало оперативки. ZODB написана на пітоні, через це в неї купа пітонівських проблем. Страшенні проблеми з пам'яттю (з кешем), (проблеми проявляються в так званих borrowed references кеша крім яких переважно є звичайні референси, яких неможливо позбутись через Ghost objects) великі проблеми з багато-процесністю/потоковістю. Навіть використовуючи BTrees і розуміючи як вони працюють дуже легко зжерти всю оперативку, не спеціально перетворивши їх на список. Далеко не завжди вдається не перетворювати BTrees в списки (в сорсах plone є такі місця). Крім того є PersistentMapping який треба використовувати тільки в специфічних випадках. Дуже важко і так само не завжди можливо зробити щоб зобд жерла мало памяті і працювали швидко. А ще є Catalog - цікава штука, з ним проблем нема, але все ж таки вартує розібратись як він працює. Одне в ньому погано - все треба робити явно.
В ZODB один плюс - це простота.
Отредактировано (Март 23, 2011 00:30:21)
Офлайн
Всі проблеми ZODB дуже сильно проявляються в Plone. Для того щоб видалити одного користувача сайту треба весь контент сайту підняти в оперативку (через локальні ролі) і він вже на 95відсотків залишиться там назавжди (pickle cache + ghost objects). Розмір БД на диску росте від звичайних запитів просто так (через portal_factory), правда zodb pack допомагає.
PS. Я дуже люблю ZODB, багато її використовував і скоріше всього буду використовувати надалі.
Отредактировано (Март 23, 2011 01:07:00)
Офлайн
ZODB как энтропия - всегда почему-то только растет :)
Особенно на больших объемах с этим проблемы, но если для домашней странички, то можно использовать и не заморачиваться.
Офлайн
опс, ZODB лочится у меня, если со второго потока пытаться открыть… Юзаю FileStorage, что то не по себе как то стало…
Офлайн