Inode allocation on Amazon AWS RDS (Relation Database Service)

The attached storage used by Amazon’s managed Relational Database Service has a known issue where the bytes per inode ratio is very high (default on RHEL5 systems is 4096, to be found in /etc/mke2fs.conf). Amazon does not allow any administrative access to these instances so there is no way to reformat the filesystem to allocate more inodes, or attach storage the user can format with a different ratio.
This becomes problematic for databases that have many small tables (generally MyISAM tables, or InnoDB with the innodb_file_per_table setting) which quickly consume the available inodes. When the inode allocation is exhausted MySQL responds with
"ERROR 1030 (HY000): Got error 28 from storage engine"
The only current solution is to increase the size of attached storage, which increases the number of inodes (at the same fixed ratio). This is an expensive and inelegant fix; the RDS team are aware of the problem and working on a solution.
The difficulty of a solution in this context is RDS’s one-size-fits-all paradigm: many small tables are considered fringe usage and not accounted for, and allowing customers to set their own bytes to inode ratio will lead to wastefulness as admins over-estimate their total allocation.
My preferred solution would be to attach this metadata to an RDS instance (so it persists through disk resizing operations) but abstract it from the customer or only allow support to modify its value.
Recent Posts
- Travis CI Chef Cookbooks
- The network is reliable
- Jeremy Ashkenas – Taking JavaScript Seriously with Backbone.js
- Signs that you’re a good programmer
- Signs that you’re a bad programmer
- How to Test Software (or: Teach Yourself to be a QA)
- Know Your Onions (and Antipatterns)
- Clean Code and Clean TDD Cheat Sheets
- The Definitive Guide to Bash Command Line History
- The analogy of print and code reviews
Archives
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- October 2010
- April 2010
- March 2010
Pages
Recent Comments





