as per application there will be multiple images per record[201700000000002...]. images can be of different types [current, viewable] like one image is marked as bCurrent=true and another with bCurrent=false. then there will be search where I need to search image related to record which have bCurrent=true/false. if I make documents per image then number of documents will be increased [more than billions]
-----Original Message----- From: aa mm [mailto:[email protected]] Sent: Wednesday, June 14, 2017 6:11 PM To: [email protected] Subject: Re: Store meta data of millions of images for search purpose What each document represents? Why do you need to generate ids? Is this a requirement? If not, and image file name is unique, then you can make it so each document represents an image. _id will be the image file name, and thus you won't need a view to access an image, you'll need only the image name. Assaf. בתאריך 14 ביוני 2017 01:13 PM, "Ajay Pawaskar" <[email protected]> כתב: Hi, I am having question related to storing millions/billions of document in Couch DB and use view to get required documents. I would like to know about performance/scalability of views/ Couch DB in following case. I have application where I need to store meta data of millions/billions of images for search purpose. Images will be added/updated/deleted/retrieve on regular basis [10000/20000 per day]. we are thinking to store these documents in following format e.g. { "_id": "201700000000002", /* this will be generated by our application*/ "_rev": "1-b85e805bdd293a5f727517beea9512b3", "12398712397129": {"bCurrent": true, "bCanView": true} /*"12398712397129" is image file name*/ "98127397192319": {"bCurrent": false, "bCanView": false}} /*"98127397192319" is image file name*/ } { "_id": "201700000000003", /* this will be generated by our application*/ "_rev": "1-b85e83432d293a5f727517beea9512b3", "89723979823929": {"bCurrent": true, "bCanView": true} /*"12398712397129" is image file name*/ "92347324667324": {"bCurrent": false, "bCanView": false}} /*"98127397192319" is image file name*/ "72832532467217": {"bCurrent": true, "bCanView": false}} /*"72832532467217" is image file name*/ } so if user want to get current image for record 201700000000002 we will be having following view function(doc) { for(var prop in doc){ if(prop!="_id" && prop!="_rev"){ if(doc[prop].bCurrent!==undefined && doc[prop].bCurrent){ emit(doc._id, { RecordID: doc._id,ImageID: prop,bCurrent: doc[prop].bCurrent, doc[prop].bCanView}); } } } which will be called with key "201700000000002". but as mentioned earlier Images will be added/updated/deleted/retrieve on regular basis [10000/20000 per day] how this going to affect views performance? Regards, Ajay.
