3

I'm going to develop file storage system. Mainly I will store text documents. I read many questions and answers and got some information about file management systems on top of which I may develop my own.

  1. Alfresco uses filesystem and DB reference to FS, Apache Jackrabbit uses fs||db and Modeshape uses fs||db||nosql db(cassandra,mongo)
  2. Blobs are slower than FS especially in dealing with large files (>1MB) but blobs more reliable and provide backup,migration, consistency support out of box. As I don't want to store many large files the performance difference between fs and blob became blurred.
  3. I decided to store blob not in relational DB but in mongo db, because
    • mongodb has GridFS under the hood, which provides chunked processing of binary data, replication between servers out of box;
    • mongodb good for storing key/value which is docid/blob in my case;
    • AFAIK, facebook uses mongo db for storing images and media (but they merge many files to one blob)
  4. Many CMS systems like Magnolia, Hippo CMS and LogocalDOC based on Jacrabbit which may only provide FS||DB and don't relevant for me as I want mongodb. Alfresco is too cumbersome for my small requirements ans also doesn't support nosql DB and I decided to choose ModeShape.

Question: What is exact profit of using Modeshape instead of simply creating own small web app and directly write to mongodb and gain benefits of GridFS?

The only answer from myself is that Modeshape also comes with bundled Lucene engine for indexed search. I'm not sure about versions of documents - does it specially written in Modeshape or I can simply rely on mongodb to deal with this task? Does modeshape provide additional mechanisms to provide integrity of data and reliable storage or it simply relies on underlying database?

I also would like to use file storage system as REST service under JBOSS Keycloak and not sure is it possible to put Modeshape under Keycloak. So, my question is should I develop own app and thus gain flexible develop, integrate it with mongoDB, put it under Keycloak and other custom wishes or I should use Modeshape and gain some advantages? What is that advantages? Will it really decrease code amount from my side? Is mongoDB enough for developing simple file storage system with backups, versioning, reliable storage of UTF-8 documents?

  • One of these days, more people will figure at that the "tags" on questions here are meant to be directed at your relevant audience, and not a "tag cloud" of every tech or term you asked in the question. Try to keep the tags relevant to the people you really need to reach. I only see two that are actually valid here. And possibly two more in the content that would be more appropriate than the other two that should not be here. – Blakes Seven Aug 06 '15 at 06:13
  • @BlakesSeven, ok, removed jackrabbit. Other tags looks relevant for me. –  Aug 06 '15 at 06:26
  • I would strongly "suggest" that the MongoDB tag has little relevance here given what you are talking about in your question and especially *"any NoSQL DB"* makes it not very specific to that tag. The "storage" tag is a bit "meh!" and another useless tag on StackOverflow. If anything "jackrabbit" is much more valid as you seem to be talking about that. And I would have added "jboss" and "keycloak" since they also seem integral to your question. The things you are really asking about should be relevant here. Right now you basically have "modeshape" (main topic) as the only relevant thing. – Blakes Seven Aug 06 '15 at 06:32
  • I wouldn't remove mongodb because getting info about reliability, integrity, versioning out of box may influence on my final decision. I may choose mongo and rely on its features. From other side, modeshape somehow complement mongodb and I want to learn and measure level of that complementing features. As a mongo db specialist, you may elaborate about versioning and releveance of mongodb for file storage system and thus your answer may be relevant for me even if it doesn't touch modeshape. –  Aug 06 '15 at 06:42
  • 2
    I am actually trying to get you to rethink the scope of your question and what you specifically ask. Right now it borders on being an *"opinion war"* between favoured technologies, or at the very least is *"too broad"* for asking too many things at once. If there were not problems, then there would be no commentary and likely a meaningful answer. – Blakes Seven Aug 06 '15 at 06:47

1 Answers1

4

Answer provided on JBOSS forums