We have logging system in which JMS server is used to send logging message.Once message reaches Queue, Queue receiver parses the message and inserts into Oracle DB.Messages generated by client processes are huge and many times, querying the DB takes long time.Root cause is DB insertion is quite slow compared to message generation(Message generation is huge-1.3 million message/day on average).
I wanted to check if MongoDB fits into this system instead of Oracle. Logging/Exception schema is quite simple and have 10/15 columns each.for each logging message, we attach Transaction data(average size-50 to 100KB)
If storing and searching(and later purging) are the only three activities involved for logging and exception, is MongoDB a better option ?
(i have also read here that using JMS for logging is not a good design .but its aleady in place and plays much bigger role!So only backend i m considering MongoDB)
We have logging system in which JMS server is used to send logging message.Once
Share
If your data is going to grow bigger by each day, then of course, you can consider MongoDB.
There are two main reasons for that.
You don’t really worry much about the data based on your requirement as it is just a log message and might not be so important even if you lose a few messages. The point is that, if you are trying for a transaction across documents that will not happen by default in MongoDB. If you don’t have any such transactions, then you are good to go with MongoDB and not going to lose any messages. But remember, MongoDB operations are atomic in nature within a document.
Since it is a logging, you might like to add a few column which is a real good fit in MongoDB as these are totally schemaless and you should be able to add new elements when the need arises without patching the old data (not necessarily).
You can add as much as Shard servers as your data grows and you should be able to scale across nodes (in a horizontal fashion).
Good luck!