• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Special considerations for working with large local datasource

 
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.

Todd
 
ranger
Posts: 17347
11
Mac IntelliJ IDE Spring
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.

Mark
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic