Is H2 database suitable as embedded database with large tables?
<p>Our application currently uses H2 as an embedded database and we have the following scenario:</p>

<ul>
<li><p>The H2 is used as a "temporary database". Data inserted in H2 is periodically sent to/inserted into an Oracle database (the "official" one) every 30 minutes by an application task, and the deleted from H2;</p></li>
<li><p>This main "temporary table" has an average of 183 rows inserted per hour in one single table.</p></li>
<li><p>We have two other large tables (21 million and 1.5 million records, respectively) used by the main application task just for querying. There's another application task that incrementally updates these tables from Oracle, updating in H2 rows that where created/updated/deleted in Oracle since last synchronization. It also happens at every 30 minutes.</p></li>
</ul>

<p>We have been using H2 for 1.5 years so far with no problems, but we've found the following warning about H2 in <a href="https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Administration_and_Configuration_Guide/chap-Datasource_Management.html#The_Example_Datasource" rel="noreferrer">Red Hat official documentation</a>:</p>

<blockquote>
  <p>However, it should not be used in a production environment. It is a very small, self-contained datasource that supports all of the standards needed for testing and building applications, but is not robust or scalable enough for production use.</p>
</blockquote>

<p>Is H2 designed and reliable to be used in production environment in a scenario like this one?</p>

<p>Are there any benchmarks that support this? The <a href="http://h2database.com/html/performance.html" rel="noreferrer">H2 official performance benchmark</a> shows execution times and performance usage, but do not say anything about data volume.</p>