Drupal Related

Case study: Big gains from small changes

Drupal News, Tips & Tricks - Wed, 02/22/2012 - 16:22

Four Kitchens (via DrupalFire)

One of our clients came to us with a performance issue on their Drupal 6 multi-site installation. Views were taking ages to save, the admin pages seemed unnecessarily sluggish, and clearing the cache put the site in danger of going down. They reported that the issue was most noticeable in their state-of-the-art hosting environment, yet was not reproducible on a local copy of the site — a baffling scenario as their 8 web heads and 2 database servers were mostly idle while the site struggled along.

Our performance analysis revealed two major issues. After implementing fixes, we saw the average time to save a Drupal view drop from 2 minutes 20 seconds to 4.6 seconds — a massive improvement. Likewise, the time to load the homepage on a warm cache improved from 2.3 seconds to 621 milliseconds. The two bugs that accounted for these huge gains turned out to be very interesting:

1. Intermediary system causes MySQL queries to slow down

Simple queries that are well indexed and cached, can see significant lag when delivering packets through an intermediary. This actually has nothing to do with Drupal, as it is reproducible from the MySQL command line utility. (It’s probably a bug in the MySQL libraries but we’re not entirely sure.) It could also be a problem with the intermediary but we’ve reproduced it in two fairly different systems: F5’s load balancer proxy and VMWare Fusion’s network drivers/stack.

For example:

SELECT cid, data, created, expire, serialized FROM cache_menu WHERE cid IN (x)

A query like this one should execute in a millisecond or less. In our client’s case, however, we found that 40ms was being added to the query time. The strange part is that this extra delay only occurred when the size of the data payload returned was above a certain threshold, so most of the time, similar queries returned quickly, but around 10–20 of these simple queries had 40ms or more added to their execution time, resulting in significant slowdowns.

We briefly debugged the MySQL process and found it to be waiting for data. Unfortunately, we didn’t pursue this much further as the simple workaround was apparent: reroute the MySQL traffic directly to the database instead of through the F5 load balancer. The net change from applying this simple modification is that the time to save a view was reduced to 25.3 seconds.

2. Database prefixing isn’t designed to scale as the number of prefixes increases

Drupal can be configured to share a database with another system or Drupal install. To do this, it uses a function called db_prefix_tables() to add prefixes to table names so they don’t collide with other applications’ table names. Our client was using the table prefixing system to allow various sub-sites to share data such as views and nodes, and thus they had 151 entries in the db_prefixes list.

The problem is that db_prefix_tables() is not well optimized for this implementation edge case. It will run an internal PHP function called strtr() (string token replace) for each prefix, on every database query string. In our case, saving a view executed over 9200 queries, meaning strtr() was called more than 1.4 million times!

We created a fix using preg_replace_callback() which resulted in both the number of calls and execution time dropping dramatically. Our view could now be saved in a mere 10.3 seconds. The patch is awaiting review in the Drupal issue queue, and there’s a patch for Pressflow 6, too, in case someone needs it before it lands in core.

The final tweaks included disabling the administration menu and the query logger. At that point, we finally reached a much more palatable 4.6 seconds for saving a view — still not as fast as it could be, but given the large number of views in the shared system, a respectable figure.

Categories: All Feeds, Drupal Related

Enterprise Images

New Drupal Modules - Tue, 02/21/2012 - 16:00

Enterprise Images is an App for managing images content and displaying image galleries. It is a part of the Open Enterprise distribution but can be installed on any Drupal 7 site.
Features
video content type using media fields
view listing page and block of events that can be filtered by categories
categories...

read more

Categories: All Feeds, Drupal Related

Commerce Order Invoice

New Drupal Modules - Tue, 02/21/2012 - 16:00

Provides invoicing features for Drupal Commerce using Orders. This differs from Commerce Invoice in that it uses existing entity types rather than introducing a new "invoice" entity type; this results in less complexity and less duplicated code.
This module introduces a new "Invoice" state for orders...

read more

Categories: All Feeds, Drupal Related

Provision Git

New Drupal Modules - Tue, 02/21/2012 - 16:00

Provision Git is a backend Drush module built for the AEgir Hostmaster/Provision system. This is only for use with provision, the backend component of AEgir. It does not provide any front-end tasks to Hostmaster.
This project is intended to be as low level as possible so that other more complex tasks...

read more

Categories: All Feeds, Drupal Related

REST Auth

New Drupal Modules - Tue, 02/21/2012 - 16:00

Overview
This module allows users to login to the site using a RESTful web service. If the user is associated with a Drupal user, that user is logged in. If not, a new user is created.
This module assumes that the web service returns a JSON payload and that both a username (or email) and a password are...

read more

Categories: All Feeds, Drupal Related

UUID User Revision

New Drupal Modules - Tue, 02/21/2012 - 16:00

This project adds UUID support for the User Revision module.

Project Information

Maintenance status: Actively maintained
Development status: Under active development
Last modified: February 22, 2012

read more

Categories: All Feeds, Drupal Related

dslm

New Drupal Modules - Tue, 02/21/2012 - 16:00

DSLM - Drupal Symlink Manager
DSLM is a set of Drush commands for managing symlinking Drupal sites back to a central set of Drupal cores and installation profiles.
Dependencies
drush

Configuration and Installation
The first thing you'll want to do is set up your DSLM base folder. The DSLM base folder...

read more

Categories: All Feeds, Drupal Related

Tiny-IDS | a tiny intrusion detection system

New Drupal Modules - Tue, 02/21/2012 - 16:00

Minimalist, but performant intrusion detection system that monitors Drupal for malicious activities and targets to be simple to understand and easy to use.
Detection
Tiny-IDS tries to detect following types of intrusion attacks:
XSS (Cross Site Scripting)
Makes it possible to embed foreign content and...

read more

Categories: All Feeds, Drupal Related

What to look forward to in Drupal 8

Drupal News, Tips & Tricks - Tue, 02/21/2012 - 08:10

Cocomore (via DrupalFire)

Story header graphic logos associated with the Drupal 8 initiatives

I was already planning to provide an overview of what’s been going on in the various Drupal 8 initiatives even before last week, when Dries announced the timeline for Drupal 8, which includes a “feature freeze” for Drupal 8 in only a little more than nine months from now, and planned release at the DrupalCon Europe, in late August 2013.

Drupal 7’s Plateau of Productivity?

I think we reached the Plateau of Productivity for Drupal 6 sometime in late 2009, about 18 months after its release. At that point there was no advantage to developing in Drupal 5, and Drupal 7 was still a long way off. --Dries Buytaert, June 8, 2011 (about 5 months after Drupal 7’s release)While most of the top Drupal 6 modules are now available, in some state or another, for Drupal 7, and I would certainly choose Drupal 7 for a large Drupal-based project that is not expected to be deployed for some time, from the outcry of protests I think there are a lot of people who would not agree that Drupal 7 is yet at its Plateau of Productivity. There is still plenty of reason to build sites on Drupal 6, especially if you need particular features (e.g Nodewords / Metatag functioning properly, among others) and if you need to deploy the site now, with those features ready for use. Dries indicated that he thought Drupal 6 reached its Plateau of Productivity in late 2009, about 18 months after its initial release. At that point, there were fewer than 20,000 sites using Drupal 5 and more than 200,000 sites using Drupal 6. While this order-of-magnitude-greater-usage is not likely to ever be seen comparing Drupal 7 vs Drupal 6 usage (at least not before Drupal 8 is released), I do think that it’s significant that Drupal 7 usage has finally overtaken Drupal 6. That said, I don’t think we are truly at Drupal 7’s Plateau of Productivity, the point where building a new site on Drupal 6 would be “pointless”. Both in terms of time-after-release and usage statistics, it is arguably premature to say we are quite to that point yet.

Quibbling aside, I also don’t think it matters whether we believe we have reached the Plateau of Productivity for Drupal 7, or not — and it certainly doesn’t matter whether we are all in agreement about that. I do think we are ready to see core development for Drupal 8 get kicked into high gear and I don’t think it will significantly delay the development of the contrib modules or resolving core issues in Drupal 7 which are the final barrier, in my view, to truly reaching its Plateau of Productivity. Additionally, many of the fixes and features going into Drupal 8 are regularly being back-ported to Drupal 7, and there is increased discussion of relaxing the criteria for what can be back-ported to Drupal 7, so I see the increased attention to Drupal 8 core development as exciting: a win-win for the whole Drupal community. We now have a release date for Drupal 8, which is important for business decisions, and a better timeline to facilitate a roadmap for the final stages of determining feature inclusion.

Drupal 8 Core Initiatives

Currently there are 6 official Drupal 8 Core Initiatives which are working on various aspects of desired improvements to core. There are others likely to be added to the list as soon as a bit more progress has been made on the current list and/or as qualified individuals step up to take on some of the other “top 10” desired improvements we had on our collective community wishlist. Some of the improvements require fixes to issues plaguing Drupal 7 and 6 and have been backported. Most of the others involve dozens, if not hundreds, of related issues. Following is a brief summary of each of the current core initiatives and what their priority goals are for Drupal 8. In the interest of brevity, the explanations leave out a lot of juicy details, but for those who haven’t been paying close attention and who might like to get involved, I hope this summary is useful:

Web Services and Context Core Initiative

The Web Services and Context Core Initiative (WSCCI, pronounced “Whiskey”), formerly referred to as the “Butler” project, is a core initiative led by Larry Garfield of Palantir.net, aka “Crell” on Drupal.org. While the traditionally typical HTTP request has been for HTML pages, the modern Web has brought with it the need for HTTP services which deliver information which is not necessarily in the form of HTML. This is especially true for mobile applications, but also applies to feeds and other communications via HTTP. The goal is to “take Drupal from being a first-class Web CMS to being a first-class REST server which includes a first-class Web CMS”. Really, this initiative spans a huge range of related issues and without writing an article many times the length of this one, I could not possibly cover everything, but…

read more

Categories: All Feeds, Drupal Related

Drupalcon Denver - Feb 21, 2012 - LAST DAY FOR EARLY BIRD PRICING

Drupal News, Tips & Tricks - Tue, 02/21/2012 - 07:03

Matthew Saunders (via DrupalFire)

Want to save $50? If you're planning on going to Drupalcon Denver today is the last possible day to get in at the early bird pricing. At midnight Mountain Time, the price goes from $350 to $400. That extra $50 in Denver would a REALLY nice meal for a couple of people with drinks. It could get two people into the official party. It is an Association membership with $20 left over. Come on? What are you waiting for? REGISTER today to access more than 104 sessions including core conversations, three GREAT keynotes, more Birds of a Feather conversations than you can shake a stick at. That does not even include the networking opportunities.

If you register today, that comes to $70/day. That increases by $10/day tonight (February 21/2012) at midnight.

REGISTER FOR DRUPALCON DENVER NOW!

read more

Categories: All Feeds, Drupal Related

Refocusing WSCCI

Drupal News, Tips & Tricks - Mon, 02/20/2012 - 19:18

Larry Garfield (via DrupalFire)

As Dries has already reported, we held a summit meeting at the Acquia offices in Boston last week. It was a good sprint for a couple of reasons. For one, a large number of leading core developers got more clearly on the same page about the direction of Drupal core. For another, we were able to break the "too big to swallow" logjam that has been plaguing the Web Services and Context Core Initiative (WSCCI).

read more

Categories: All Feeds, Drupal Related

Domain RobotsTxt

New Drupal Modules - Mon, 02/20/2012 - 16:00

This module allows you to add additional lines to each domain's robots.txt file. The most frequently used scenario is probably to exclude a certain domain from being indexed by search engines entirely. You would use:Disallow: /
Requirements:
Domain Access
RobotsTxt

The admin settings form is at:admin/structure/domain/robotstxt

...

read more

Categories: All Feeds, Drupal Related

jQuery UI Multiselect

New Drupal Modules - Mon, 02/20/2012 - 16:00

This module integrates the jQuery UI Multiselect plugin with existing list widgets.
The jQuery plugin is demonstrated at http://www.quasipartikel.at/multiselect.
The advantages of this interface over regular selection lists are:
Separate columns for selected and available items, offering a clear view...

read more

Categories: All Feeds, Drupal Related

Hide Forums

New Drupal Modules - Mon, 02/20/2012 - 16:00

If you use core forum module, you can hide selected forums from list using this module.

Project Information

Maintenance status: Actively maintained
Development status: Under active development
Module categories: Utility
Last modified: February 21, 2012
...

read more

Categories: All Feeds, Drupal Related

Urban Airship

New Drupal Modules - Mon, 02/20/2012 - 16:00

Description
This module allows site administrators to use a Drupal site to send push notifications to the Urban Airship service.
What can I do with this module?
Send push notifications to mobile devices via Urban Airship
Display a Views listing of all previously-sent push notifications
Delete previously-sent...

read more

Categories: All Feeds, Drupal Related

Date iCal

New Drupal Modules - Mon, 02/20/2012 - 16:00

This module contains code to create an iCal feed in Views. It has been pulled out of the Calendar iCal module because it has no dependency on Calendar and it could be used on any view. The code has also been generalized so that it will work for any entity, not just nodes. It creates an 'iCal' view mode...

read more

Categories: All Feeds, Drupal Related

Enterprise Video

New Drupal Modules - Mon, 02/20/2012 - 16:00

Enterprise Video is an App for managing video content on your site. It is a part of the Open Enterprise distribution but can be installed on any Drupal 7 site.
Features
video content type using media fields
view listing page and block of events that can be filtered by categories
categories block view

Installation
Install...

read more

Categories: All Feeds, Drupal Related

Forrst

New Drupal Modules - Mon, 02/20/2012 - 16:00

Display your latest Forrst snaps on your Drupal website.
What is Forrst?
Forrst helps you improve your craft as a developer or designer. Share your work, get feedback, and grow.
For more information, visit http://www.forrst.com
Features
Specify the number of snaps to display (between 1 and 3).
You can...

read more

Categories: All Feeds, Drupal Related

Extensible BBCode

New Drupal Modules - Mon, 02/20/2012 - 16:00

BBCode (Bulletin Board code) is a lightweight markup language used on many message boards. Its distinguishing feature is the use of HTML-like markup tags enclosed in square brackets, as in "[b]...[/b]" for bold text. Beyond a few emphasis marks (bold, italic, underline), hyperlinks and images, there...

read more

Categories: All Feeds, Drupal Related

Tivoli Access Manager Authentication

New Drupal Modules - Mon, 02/20/2012 - 16:00

This module allows site users to authenticate using Tivoli Access Manager (TAM), when a user visits user/tamauth and they have the appropriate headers in their request. When a user visits the TAM url they will be authenticated and have their roles synced from the headers to Drupal.
All configuration...

read more

Categories: All Feeds, Drupal Related

Pages




Subscribe to jordanpeterson.me aggregator - Drupal Related