sqlite - Need to store LOTS of data on Android device, thinking of going OODB -


i'm working on project that's based on android. without getting many details, software run on custom built device. hardware never change , same. that's definite plus :)

with said, project requiring store loads , loads of data on device - upwards of 3m rows in tables. sqlite handles scanning many rows fine us, problem comes in when start doing complex joins bring related data need. we've thought denormalizing database afraid push database outside realm of usable.

we looking using object oriented database, db4o or neodatis. our hope storing objects can rid of our relations on row level , store them on object (just oop). problem have not been able find performance related benchmarks (at least not recent ones) of these odbs running , being used on android.

does have experience oodbs on android and/or storing , accessing large amount of data? if advice provide appreciated.

-- edit

here's example of problem we're facing. it's not related our app (my nda says can't post specific) example represents problem well.

imagine we're building application monitor every vehicle that's driving on new jersey turnpike @ given time. given car need track car make , model, how many people in car , what's demographic of people in car. end data looks -

car

id | color | make_id | in_toll_lane | model_id

make

id | name

model

id | name | make_id

car_person

id | age | sex | is_driver | car_id

toll_lanes

id | cars_in_line | ideal_cars_in_line | ideal_occupants

this data going changing frequently. it's going rather huge, there no doubts lot of people driving down nj pike @ given time.

with data need able snap shot, on demand, of who's driving on pike. need able take snap shot of males driving, or females on turnpike. need able search age, sex, make, model, etc.

now imagine need figure out toll lane each car should go based on number of people in car, ideal number of occupants, number of cars in line, , ideal number of cars should in line.

this simple example, though pretty representative of our problem.

-- end edit

thanks in advance!

here observations, though suspect not directly.

i think main questions are: going discover complex relations via application runtime logic events generate or change data or going have dump data store , discover un-anticipate relations via query?

if business logic populate model can create model based views of different slices of data model e.g. collections know cars having male/female drivers. in case, basically, relations semi-static changing ( while data values on other end of relations changing lot ). if case, why try , store data in database technology forcing recalculate relations (join). waste of cpu , why see poor performance model gets complex. so, once answer these questions, clear if odb or rdb best choice.

now question becomes, run on android , handle huge data? think cannot help. work @ versant has ( db4o , versant ) odb. db4o run on android, right choice huge data ... no. not unless have isolated data can in separate databases , accessed in isolation , not sound me situation. our other database, versant mean't handle huge data in near real-time, client 100% java, server written in c, not run on android.

i think need research see has odb can handle huge data on android.

best, -robert


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -