I have large number of images that I need to access on per-pixel-basis in my app. The images are downloaded from web and are quite large (4k). Update is done several times a day (tousands of images), reading is non-stop.
Currently I use PostGis and store images tiled in raster column type. However, performance is not the best, mainly updates are quite slow (transaction, index update etc).
So I would like to use NoSQL database, since I really dont need SQL.
My workflow is:
Insertion – download image -> split it to tiles of size 64×64 (compress them if necessary with arithetic or huffman coder) -> store tiles in database
Selection – read pixel (x, y) -> locate tile -> retrieve tile -> “unpack” tile in memory -> locate pixel (x, y) -> return value to user
What database should I use for this purpose? I have looked to MongoDB and Cassandra. The later one seems more appropriate for this task.