![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Subject: personal desktop or embedded database engine Hello, I am looking for a database engine with the following characteristics: a) It should handle up to 2GB-4GB of raw data (total database size storing 4GB of raw data should not exceed dozen or so gigabytes), allocated into dozen or so tables, and several million rows; many of rows holding CLOB and BLOB data (most of them will be no longer than few kilobytes, but no artificial limit of 1MB, for instance, should be put on LOB size). Disk space consumption should be reasonably proportional to raw data size stored, for example large rollback or metadata areas are not welcome. Data structures complexity will be low. Unicode support is required. b) It should be installable on Windows and Linux, with MacOS as a bonus, but MacOS is not a must. Packing into single installer with a Java application should be easy. The Java application will start and stop database server, in a totally transparent manner, if database engine is designed to run in a separate process, or database engine will share the process with the user Java application. It should be reasonably SQL-compliant database, with a JDBC driver. Triggers, stored procedures, complex data types etc. are not necessary. c) Administration tasks should be reduced to minimum. Database must be very reliable and must be resistant to the user Java application crashes, host OS crashes etc. Backup and recovery from backup should be straightforward off the shelf or it should be easy to provide end user with such capabilities. d) Database licence must allow it to be embedded and redistributed with a commercial application, i.e. GNU GPL is out of scope. LGPL, Apache-style, Mozilla, BSD and similar are acceptable. Commercial licences are acceptable, too, providing the database is not priced per end user. A good example of a commercial database with acceptable pricing policy is QED pure Java embeddable database, where single licence allows a developer to publish unlimited number of a final application. So far, I have tried pure Java Hypersonic SQL (HSQL) and Axion embeddable databases but they are not reliable when dataset grows. Data volume did not even go close to my requirements. Another pure Java database, QED, seems to have data volume limitations below my requirements, too. Technically, MySQL seems to be able to fulfill my requirements; there is an example of a Java application with MySQL embedded called JOSE Chess, but MySQL commercial licence would require me to pay few hundret dollars at least for each end-user licence, which is simply not feasible for an application priced dozen or so dollars, that is why I put the condition for the database not to be priced per end user. PostgreSQL, another popular Open Source database, is not feasible because it runs poorly on Windows, with Cygwin libraries only, which are GPL-licenced. As far as I know, Windows is not supported by Postgres development team. |
#3
| |||
| |||
|
|
Subject: personal desktop or embedded database engine Hello, I am looking for a database engine with the following characteristics: a) It should handle up to 2GB-4GB of raw data (total database size storing 4GB of raw data should not exceed dozen or so gigabytes), allocated into dozen or so tables, and several million rows; many of rows holding CLOB and BLOB data (most of them will be no longer than few kilobytes, but no artificial limit of 1MB, for instance, should be put on LOB size). Disk space consumption should be reasonably proportional to raw data size stored, for example large rollback or metadata areas are not welcome. Data structures complexity will be low. Unicode support is required. b) It should be installable on Windows and Linux, with MacOS as a bonus, but MacOS is not a must. Packing into single installer with a Java application should be easy. The Java application will start and stop database server, in a totally transparent manner, if database engine is designed to run in a separate process, or database engine will share the process with the user Java application. It should be reasonably SQL-compliant database, with a JDBC driver. Triggers, stored procedures, complex data types etc. are not necessary. c) Administration tasks should be reduced to minimum. Database must be very reliable and must be resistant to the user Java application crashes, host OS crashes etc. Backup and recovery from backup should be straightforward off the shelf or it should be easy to provide end user with such capabilities. d) Database licence must allow it to be embedded and redistributed with a commercial application, i.e. GNU GPL is out of scope. LGPL, Apache-style, Mozilla, BSD and similar are acceptable. Commercial licences are acceptable, too, providing the database is not priced per end user. A good example of a commercial database with acceptable pricing policy is QED pure Java embeddable database, where single licence allows a developer to publish unlimited number of a final application. So far, I have tried pure Java Hypersonic SQL (HSQL) and Axion embeddable databases but they are not reliable when dataset grows. Data volume did not even go close to my requirements. Another pure Java database, QED, seems to have data volume limitations below my requirements, too. Technically, MySQL seems to be able to fulfill my requirements; there is an example of a Java application with MySQL embedded called JOSE Chess, but MySQL commercial licence would require me to pay few hundret dollars at least for each end-user licence, which is simply not feasible for an application priced dozen or so dollars, that is why I put the condition for the database not to be priced per end user. PostgreSQL, another popular Open Source database, is not feasible because it runs poorly on Windows, with Cygwin libraries only, which are GPL-licenced. As far as I know, Windows is not supported by Postgres development team. Looking forward for your help, Piotr |
![]() |
| Thread Tools | |
| Display Modes | |
| |