0

I just started learning microstream. After going through the examples published to microstream github repository, I wanted to test its performance with an application that deals with more data.

Application source code is available here.

Instructions to run the application and the problems I faced are available here

To summarize, below are my observations

  • While loading a file with 2.8+ million records, processing takes 5 minutes
  • While calculating statistics based on loaded data, application fails with an OutOfMemoryError

Why is microstream trying to load all data (4 GB) into memory? Am I doing something wrong?

Sudhir
  • 1,339
  • 2
  • 15
  • 36

1 Answers1

1

MicroStream is not like a traditional database and starts from the concept that all data are in memory. And an Object graph can be stored to disk (or other media) when you store this through the StorageManager.

In your case, all data are in 1 list and thus when accessing this list it reads all records from the disk. The Lazy reference isn't useful how you have used it since it just handles the access to the one list with all data.

Some optimizations that you can introduce.

Hope this helps you solve the issues you have at the moment