If no filename is specified, an in-memory only datastore is created