Requirement for changing MySQL version requirement from 5.05+ to 5.1+
As discovered by the above jira searchable attributes were running into a deadlock problem on one of the indexes on the table. The reason it happened is because MySQL 5.0 does kind of a "greedy" index locking called gap locking by default even with our recommended transaction isolation level set to READ_COMMITED. With MySQL 5.1+ this gap checking is skipped with READ_COMMITTED set. See the following from the MySQL 5.1 documentation: http://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-model.html
In MySQL 5.1, if the READ COMMITTED isolation level is used or the innodb_locks_unsafe_for_binlog system variable is enabled, there is no InnoDB gap locking except for foreign-key constraint checking and duplicate-key checking. Also, record locks for non-matching rows are released after MySQL has evaluated the WHERE condition.
There is also a workaround for 5.0 by setting innodb_locks_unsafe_for_binlog to true that can be noted for institutions that have to run 5.0. However we believe the 5.1 requirement to be a better choice. http://dev.mysql.com/doc/refman/5.0/en/innodb-record-level-locks.html