Installing ensemble on Amazon + InnoDB (Problem!)
This is an open discussion with 17 replies, filed under Troubleshooting.
Search
table types InnoDB shouldn't be much of an issue; I've had some switched when required (only case if you're doing text search on an old sql version) but you should be fine in most cases.
As for the issue; never used Amazon per-se so maybe someone else can help out
It depends on what version of MySQL Amazon RDS supports.
For the most part, you can swap your tables to InnoDB, in fact, we have an ticket to do so where possible on Github. The one table that may throw a curveball is the Textarea field, as this uses FULLTEXT indexes for datasource filtering. MySQL 5.6 supports FULLTEXT on InnoDB tables, where prior versions don't.
My guess is Amazon won't, as Rackspace doesn't either as their distribution package hasn't been updated with it yet.
From the Amazon RDS FAQ:
As of today, Amazon RDS supports the MySQL major versions MySQL 5.1 and MySQL 5.5. We plan to support additional MySQL major versions in the future.
Hi guys,
Thanks for your responses.
Brendo, the client did get a warning about the FULLTEXT - you're bang on the money.
Excuse my ignorance - but what does this mean - will we be unable to deploy the site in this server as it is?
Also with regards to the other issue - is it related maybe?
Thanks again.
@nathan: you can ask your client to just install MySQL on their EC2 instance. I have multiple Symphony installations running on EC2 instances without issues. It just means that you need to manage the MySQL server yourself instead of being able to leverage the advantages of Amazon RDS.
@nathanhornby the FULLTEXT warning, is normal. It would only effect you if you are running searches on any TEXT nodes. It could depend on the fields you are using, and what you are trying to filter with in DataSources, usually if you have handles I think it should work.
I'd suggest you give it a good test before putting it live, if you decide to leave your setup as is.
Hi guys,
Thanks for the follow up. I'll pass this info on and see what we can do!
Cheers,
Nathan
Any news on this? Did you manage to get it up and running using Amazon RDS?
Hi Michael,
I've left that info with the client so should have an update soon.
They're not keen on losing the RDS features, so I think that's a non starter - however I'm hoping ignoring the FULLTEXT issue won't cause any problems.
Shouldn't the server requirements state that it requires MySQL 5.6, rather than 5.0? Or could this be due to an extension? Think the client might be a bit cheesed as I sent them the server requirements a while back, and naturally they're not correlating.
Shouldn't the server requirements state that it requires MySQL 5.6, rather than 5.0?
That ain't correct. But we might add "with MyISAM storage engine".
I did a bit of research, and according to the Amazon docs RDS can run with MyISAM, although they say that you might have recovery problems:
DB Instance Backups - (section "Automated Backups with Unsupported Storage Engines")
Gotcha.
Thanks for the info Michael. Databases certainly aren't a speciality of mine - I know as much as I need to, which isn't very much really. So I really appreciate the pointers.
Since I am interested in Amazon RDS myself, I did a bit of research on this. Turns out that you should better use MySQL's InnoDB tables if you want to capitalise the full potential of RDS.
Like @brendo mentioned, the Textarea field is the only core field which uses a FULLTEXT index. (But don't forget: It may also be used by extensions, like the Reflection Field.) If you don't attempt to do any datasource filtering on a textarea (which performs a fulltext search on the MySQL level)—and in fact I never did that—you can think about the following:
Remove the fulltext index from your textareas' database table(s)
Remove the FULLTEXT key from the field's
createTable()
function (to be safe for the future)in the field's
buildDSRetrievalSQL()
function, change theWHERE
clause fromAND MATCH (t{$field_id}_{$this->_key}.value) AGAINST ('{$data}' IN BOOLEAN MODE)
to
AND t{$field_id}_{$this->_key}.value LIKE '%{$data}%'
This will prevent SQL errors if you ever use a textarea field for datasource filtering. Filtering will still "work somehow"—honestly I am not a MySQL expert, so I don't know the difference. And as I said, I am not really interested in MySQL fulltext search on textareas…
(You should repeat the above for other field types containing a
MATCH
statement andFULLTEXT
indexes.)Change all database tables to use
InnodDB
storage.Change all
CREATE TABLE
statements (in Symphony and its extensions) to use theInnodDB
storage engine.
I am rather sure that this procedure would make Symphony's database run fine on RDS.
The TextBox Field is the only other one I know about that uses FULLTEXT
Yes, it's the only core field. But as I said above, when it comes to extensions, I know that the Reflection Field uses FULLTEXT
.
So there’s pretty much no reliable way of switching to InnoDB?
My RDS instance has farted out twice already for unknown reasons, and Amazon is saying MyISAM is not recommended:
As a side note, you use many MyISAM tables, which we generally recommend against for their issues in recovery. Please see our FAQ for more details. MyISAM can also cause some locking issues in certain scenarios, but I can't say if that's the case here.
So there’s pretty much no reliable way of switching to InnoDB?
Well, when you make all changes then it is reliable. Is it easy? No, quite the contrary. You need to be very sure updates do not break your changes - which is quite a headache. At this moment I would advice against using InnoDB (I've tried, and failed for a lack of time).
I know we've talked about this a number of times, but I would really, really, really like MyISAM to be dropped in favor of InnoDB. RDS is one reason, clustering and general reliability is another.
AWS has FULLTEXT in v5.6
http://aws.amazon.com/about-aws/whats-new/2013/07/01/amazon-rds-mysql-5-6/
What other issues come up?
Create an account or sign in to comment.
Hi guys,
We have a client that we've just passed an ensemble to; however they can't get past the first page on installation and are getting no errors. Basically they hit the 'Proceed with installation' button and nothing happens.
Anyone experienced this before?
It's a 64-bit CentOS 6.x server with updates installed, and the following configuration:
Also, a separate but related issue. The client's server uses an Amazon RDS MySQL instance which apparently means that the table type needs to be InnoDB. Again, hoping that someone with experience with Amazon servers might be able to shed some light on the issue.