databricks/iceberg-rest-image

Image doesn't use in-memory database per default

Closed this issue · 3 comments

Sejmou commented

The documentation of this image on DockerHub mentions that it uses an 'in memory backend'. However, I tested it locally and noticed that the catalog was in fact persisted (i.e. it still existed after rebooting the container). I assume this is due to an error in the source code.

I think the connection string jdbc:sqlite:file:/tmp/iceberg_rest_mode=memory in

catalogProperties.putIfAbsent(
        CatalogProperties.URI, "jdbc:sqlite:file:/tmp/iceberg_rest_mode=memory");

needs to be replaced. Currently, this creates an iceberg_rest_mode=memory file in the tmp directory of the container that is persisted and is just a regular sqlite DB file.

From the README example, this looks to be on purpose, since you can already list namespaces on start.

Kudo's to @danielcweeks 🙌