0

Does anyone know if there are any set cache limits within BreezeJS in the client side persistence manager? We are choosing how we attack a disconnected scenario depending on how much data we can pull down from the server to the client before hitting issues. We don't need to pull down the entire database, but a user with a large data set could need to pull down a substantial set of data.

Also are there different limits with different browsers?

Matt
  • 3,305
  • 11
  • 54
  • 98

1 Answers1

0

There is no real memory limit, just the amount of memory on your machine. However, depending on the speed of your machine, other limiting factors include

  • The time needed to query against the local cache. Local queries all require iterating over collections in local memory. This is usually really fast, but if you have enormous collections, speed might become an issue. This will be very dependent on the size of the collection and the speed of your machine.
  • Time to load the cache either from the server or via import from the local file system could become very time-consuming with a very large cache.
  • If you are using the knockout model library ( instead of the backingStore model library), memory consumption is much higher for any given set of entities. This is simply an artifact of the way that knockout properties work.

For all of these, your best bet is to try it and see.

Jay Traband
  • 17,053
  • 1
  • 23
  • 44
  • Hi Jay, Thanks for the response. So really I could pull in for example an entire 3 GB database and store it into the Breeze Persistence Manager and go disconnected? Also will this be persistent in the fact if the browser gets closed and reopened it wont be blown away? – Matt Mar 23 '15 at 21:22
  • In order to persist it you need to call EntityManager.exportEntities, and then reimport them later with EntityManager.importEntities. Both of these calls can be slow with lots of entities, so I would check first. 3GB is a lot of local data. – Jay Traband Mar 23 '15 at 21:35
  • Hi Jay, When you call the exportEntities what storage does it store down to? Im just getting sporadic results on storing large quantities of data down to the browser (i.e. I can store so many mb's in chrome but the same doesnt fly in internet explorer or safari on the ipad). – Matt Mar 23 '15 at 21:54
  • exportEntities just returns a string that you need to put into localStorage. See http://www.getbreezenow.com/documentation/exportimport – Jay Traband Mar 24 '15 at 00:40