Advanced

Managing multisite content from a single Drupal instance

This article explains a practical implementation of a technique outlined in the article "Sharing Drupal tables between databases using MySQL5 Views".

Problem

You have multiple (multisite) Drupal sites and you would like to manage the content for all of these sites through a single interface. Depending on the nature of a given piece of content, you may want the content published on one, several or all of your subsites, but you do not want to have to create copies of the same content for each site.

Solution

Taxonomy plus MySQL5 views. (NOTE: this solution will not work with versions of MySQL prior to 5.)

 

hook_settings pain

IMHO, the worst part of Drupal is having to learn the API.

The core developers are constantly refactoring the heart of Drupal, which is a good thing overall. But it makes it very difficult for the average developer to keep up with the API.

Major version releases prior to 4.7 required a developer to make relatively few changes to his module to make it compatible with the new release. 4.7, on the other hand, requires pretty much a complete rewrite of a given 4.6 module.

Sharing Drupal tables between databases using MySQL5 Views

Problem:

You have a "master" database that contains data from multiple Drupal sites and you want to share it among them. Normally, you could use table prefixing to allow each of your sites to point to a single table. But what if you do not want content from one site to "bleed" across to the other sites? Let's say you have a network of Drupal sites sharing a user database. You want to share that user's information across your entire network of sites, but only make the information visible from those sites to which the user has subscribed. Or maybe you want to populate baz.com with users who meet some arbitrary criteria. There are lots of possibilities here, but nobody's paying me to write this, so let's get on with it.

The Weak Link in Drupal Scalability (99.9% of you can ignore this article)

Drupal is as scalable as the applications it relies on. While there's nothing preventing Drupal itself from being scaled across any number of web servers, scalability of open-source databases such as MySQL and PostgreSQL is an ongoing issue.

While these databases do support replication, that's not always enough. For a very small percentage of websites, daily user visits are counted not in hundreds or thousands but in hundreds of thousands. Chances are pretty good that you're site is not in this minority, but if it is (or if you anticipate it will be), you will need to consider the limitations imposed by resources that are necessarily shared by the tools you are using. It doesn't do much good to have 100 redundant webservers if they are sharing a single NFS mount. Likewise, open-source database technology currently suffers from a lack of "shared nothing" capability.

Syndicate content