Database as a service (DbaaS) over dimensions--performance, scalability, & reliability? MySql Database as a service:


Amazon
Xeround


Another eg. PostgreSQL Database-as-a-Service.
You can get the list of similar products here.

Does anyone have details on their performance, reliability, and scalability of these DbaaS? Reading literature on these products make them sound too good to be true. And my inner cynical sense tells me to question the claims.
The only thing I would like to comment on is Xeround

I tried out the XEROUND MySQL Instance

I found out that it only has three(3) Stroage Engines

mysql show engines;
+---------+---------+-----------------------------------------------------------+--------------+------+------------+
| Engine  | Support | Comment                                                   | Transactions | XA   | Savepoints |
+---------+---------+-----------------------------------------------------------+--------------+------+------------+
| Xeround | DEFAULT | Xeround MySQL storage engine                              | YES          | NO   | NO         |
| MyISAM  | YES     | Default engine as of MySQL 3.23 with great performance    | NO           | NO   | NO         |
| MEMORY  | YES     | Hash based, stored in memory, useful for temporary tables | NO           | NO   | NO         |
+---------+---------+-----------------------------------------------------------+--------------+------+------------+
3 rows in set (0.01 sec)


If you want ACID-compliant transactions, you have to use XEROUND Storage Engine. Most users are familiar with InnoDB since it has been with MySQL long before Oracle and Sun became involved. There are about 50 variables to tune and monitor.

Here is everything for XEROUND

mysql show variables like 'x%';
+----------------------------------+--------------------------------------------------------+
| Variable_name                    | Value                                                  |
+----------------------------------+--------------------------------------------------------+
| xeround_transaction_memory_limit | 128                                                    |
| xeround_transactional_ddl        | OFF                                                    |
| xeround_xdapc_socket             | /opt/xeround/sys_819/v3.0.1.43/xdrm/mysql/xdapc_socket |
+----------------------------------+--------------------------------------------------------+
3 rows in set (0.01 sec)


Not much you can tune there.

You are at XEROUND's mercy for tuning the transactional behavior

Questions


Can you disable the ACID compliance of XEROUND ?
Does XEROUND have multiple levels of Transaction Isolation to support MVCC ?
Are there shared or separate tablespaces per table or per user ?
Any limitations on the row length or the number of columns ?
How does XEROUND do crash recovery ?


Hey, one could only guess at these things right now.

I am sure that reading literature on the XEROUND Storage Engine turns up nothing you can do that a DBA would be expected to do for configuration, optimization, and overall tuning.

IMHO I would not use the XEROUND Storage Engine from any transactions until an adequate Whitepaper comes out on how to use it, tune it, and configure it. In addition, some internals you can understand would be nice as well. Otherwise, the XEROUND Storage Engine is just as mysterious to the public as is the Storage Engine of PostgreSQL, SQL Server, and Oracle.

As long as users only use the MyISAM Storage Engine and are not performing any ACID-compliant transactions, you should be fine.

As a good rule of thumb, stick to DB Services that will support MyISAM and InnoDB.