Я хотел бы больше изучить тему полных шаблонов проектирования данных. В частности, различные сочетания технологий хранения, обработки, кэширования и извлечения данных. Другими словами, посмотрите, сколько компонентов используется в больших системах, таких как facebook.
Насколько я знаю, мы RBMS и NoSQL. Однако многие другие технологии (за пределами постоянного хранения данных) критически относятся к реальному использованию данных - например, memcached, Тем не менее, я не могу найти много основополагающих шаблонов проектирования, которые должны использоваться, чтобы использовать большинство архитектур.
Есть ли у кого-нибудь ссылки на статьи о шаблонах дизайна всего пакета, которые могут быть выполнены с использованием различных смесей компонентов системы базы данных?
Это не вопрос для лучших практик DB, таких как нормализация базы данных. Это не вопрос о том, как лучше использовать определенные технологии.
Какие шаблоны проектирования можно использовать для правильного смешивания странных технологий, чтобы использовать каждую из сильных сторон для разработки полных и эффективных систем? От кэширования, до CRUD, масштабирования, целостности данных.
Например, на небольших общих хостах я могу запускать такие вещи, как блоги с SQLite, так как почти все читает и не пишет. С другой стороны, некоторые проекты относятся к low-end VPS, и я могу использовать кэш MySQL + APC (это все-таки один сервер) для потрясающей производительности при высокой скорости чтения/записи. С более чем одним VPS memcached - чемпион!
Я также являюсь поклонником MongoDB и PostgreSQL. Однако MongoDB не использует никаких ограничений RAM, поэтому у вас действительно должен быть отдельный сервер. Тем не менее, хранение больших объектов в MongoDB и оставление остальной части важных данных на PostgreSQL является беспроигрышной.
Однако, это все очень простые варианты дизайна. Крупномасштабные приложения разработаны с гораздо большей абстракцией, чтобы способствовать масштабированию и уменьшению точек отказа.