Re: tiniest SQL + tiniest app-server
On Thu, 7 Jan 2010, tnorgd wrote:
I have a command-line based java program that does a lot of stuff and
its single run take a couple of days. I would like to monitor its
progress in a way smarter than just reading output text file.
I would like to make it writing to a SQL database, then I could look on
charts through a web browser. I run tests on my laptop, so I would need
the smallest possible SQL database. Idealy a single jar file I could
launch in a terminal.
Derby, HSQL, H2.
Derby is part of java 1.6, so if you're using that, that will provide the
smallest code footprint. If not, i'm afraid i don't know the sizes of the
jars off the top of my head, although i remember being surprised by how
big Derby was back when it was Cloudscape. In terms of RAM footprint,
according to its own propaganda, H2 is generally a bit smaller than Derby:
and faster than either Derby or HSQL.
However, i would seriously question your need for a relational database.
They're the default choice for data storage these days, but for no
goodreason. You only actually need one when (a) you have strong
requirements about data integrity, concurrency, transactionality, etc,
*and* (b) you need a highly general query interface. For a situation where
one process appends records to a log, and another reads from it, you
Personally, i'd stick with a text (which could mean CSV of XML) file, or
possibly a directory full of text files. Less disk footprint, less memory
and processor overhead, and honestly no harder to write. You can still
write a webapp to browse the data, but back it with the filesystem. Plus,
you can look at the data with a text editor, grep, etc, which eases
development and gives you flexibility.
Moreover I need a webserwer, preferably also a single jar.
The two famous webservers in the Java world are Tomcat and Jetty. My
impression is that Jetty is smaller.
If this is paradise, i wish i had a lawnmower.