File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java Micro Edition and the fly likes Special considerations for working with large local datasource Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Mobile » Java Micro Edition
Bookmark "Special considerations for working with large local datasource" Watch "Special considerations for working with large local datasource" New topic

Special considerations for working with large local datasource

todd runstein
Ranch Hand

Joined: Feb 15, 2005
Posts: 64
We need a simple lookup application (find customer information, lookup a part number, etc) that runs on handheld devices that are disconnected from the internet and/or our network. We plan on placing the data (about 500MB) in an external memory card and having the application access the data form this location. The information would be updated when the device is connected to the network, but the application will be used "away from the office".

I'm concerned about the performance of using that large of a dataset on a mobile device. If the dataset is loaded entirely into memory, won't the device barf? On the other hand, if it's not loaded into memory, won't lookups be extremely slow? How do you deal with a large local database?

As you can tell, I don't have a lot of experience with J2ME yet. Any suggestions or ideas before I jump into this would be very much appreciated.

Mark Spritzler

Joined: Feb 05, 2001
Posts: 17276

OK let's look at some possible solutions and their tradeoffs

1. Pointbase has a database for devices and also has a neat server tool for updating when the device is connected. Might be your solution in one product. Trade-off, it costs money.

2. How much data are they really going to be looking for. Maybe a small subset of the data is stored locally for those times that they aren't connected. Trade-off - if they need something that isn't locally they are well SOL.

3. Definetly use lazy loading so that all the data isn't in memory at one time. If all the data is stored locally provide a "file reading" way to get to the data, and only store the most used data in memory (caching) You could even try to implement some form of caching similar to the data that Oracle stores in the SGA for faster querying. Trade-off, more code for you to write.

Hope that helps.


Perfect World Programming, LLC - iOS Apps
How to Ask Questions the Smart Way FAQ
I agree. Here's the link:
subject: Special considerations for working with large local datasource
It's not a secret anymore!