#plone #content-type #dexterity
#plone #content-type #ловкость
Вопрос:
Я пытаюсь написать облегченный тип контента, который работает аналогично сообщению Facebook.
-
Вся схема содержимого — это просто текстовое поле. Нет заголовка, описания.
-
Он должен быть содержательным и управляться CMFCore: у него должен быть FTI, portaltype, чтобы мы могли создавать / просматривать контент с помощью стандартного метода; он поддерживает каталог.
-
Они будут иметь отношение / ссылку друг к другу.
-
Количество объектов будет огромным, скажем, 10-100 млн.
Наиболее похожим на это является объект comment (plone.app.discussion). Хотя я просмотрел plone.app.discussion, я обнаружил, что реализация контента действительно сложная, со слишком большим количеством базовых классов низкого уровня. В большинстве частей я либо вообще не понимаю этого, либо его нельзя повторно использовать вне варианта использования комментариев, и для меня он имеет мало ссылочного / примерного значения.
Итак, я хочу спросить, сколько накладных расходов будет, если я пойду по высокоуровневому пути фреймворка по сравнению с низкоуровневым, который прошел plone.app.discussion?
Ответ №1:
Я не думаю, что p.a. обсуждение подходит для вас.
Тип ловкости может быть подходящим, но вам нужно настроить производительность. Если производительность будет проблемой, это будет из-за вещей, которые делают типы содержательными (например, FTI, базовые классы CMF), поэтому ничто не будет легче, чем Dexterity, и отвечать вашим требованиям, но вы можете подумать о том, действительно ли вы хотите хранить все в реляционномбаза данных или что-то еще вместо этого. Однако это не должно быть строго необходимым.
Мартин
Ответ №2:
Plone не будет масштабироваться до 10 миллионов элементов в своем каталоге (самый большой, о котором я слышал, составляет что-то вроде 400 тыс.). Я бы предложил создать ваше приложение с помощью облегченной структуры, такой как Pyramid.
Комментарии:
1. Как вы думаете, в чем проблема? ZODB не может масштабироваться по-крупному? каталог слишком велик, чтобы поместиться в памяти клиента? каталог плохо реализован, так что запрос более миллиона объектов занимает слишком много ЦП?
2. ZODB здесь не проблема. Проблема в том, что portal_catalog Plone становится единственной точкой соперничества при каждой записи в базу данных. К сожалению, вся навигация Plone построена на основе каталога, что затрудняет асинхронное обновление каталога. Это необходимо исправить, но это долгосрочный проект.