Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 421854

Summary: Campaigns: convert Campaign tables to MyISAM
Product: Community Reporter: Denis Roy <denis.roy>
Component: WebsiteAssignee: phoenix.ui <phoenix.ui-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Denis Roy CLA 2013-11-15 11:50:06 EST
We're currently using InnoDB for the Campaign* tables, and CampaignImpressions has 112 million rows.

Under some circumstances, it is possible to overwhelm the master DB server with inserts.  If the tables use MyISAM, we can use INSERT DELAYED, which will a) return control to the client immediately, without waiting for the insert to occur and b) allow MySQL to batch inserts, reducing overhead and disk time.

The INSERT itself if performed here:
http://git.eclipse.org/c/www.eclipse.org/membership.git/tree/promo/promos.php

Do note that before converting the table, we'd have to stop writing into it, otherwise Apache clients will pile up on www.eclipse.org and could end up DoS'ing ourselves.
Comment 1 Denis Roy CLA 2013-11-15 11:50:57 EST
Apologies, the INSERT is performed here:
http://git.eclipse.org/c/www.eclipse.org/membership.git/tree/promo/impression.class.php
Comment 2 Denis Roy CLA 2014-07-16 09:27:18 EDT
The other issue is that InnoDB tables tend to grow and never release space.  Right now, CampaignImpressions is a whopping 21G yet it only has 100M rows.
Comment 3 Denis Roy CLA 2014-07-16 13:06:27 EDT
Done.  The table size went from 21G to 12G in the process.

http://git.eclipse.org/c/www.eclipse.org/membership.git/commit/?id=f243c372c8c9ea4b0a4731b4f0c37aab3ea1f7e0