Project

General

Profile

MongoDB Status

Joan Pujol
Added almost 3 years ago

Currently I'm using MongoDB for a project and it will be my preferred DB for use with Tigase.

But after reading some documentation and using text installation it's not clear to me if MongoDB is supported at the same level af other databases in terms of stability and performance.

At this moment is MongoDB recommeded or it's better to stay for MySQL and if I need use two separate databases?

Also I've a doubt in terms of version support. Is MongoDB 3.2 supported? It's clear to me that the last driver is planned for 7.2. But what about DB version? According documentation you can use 2.14 driver with Mongo 3.2


Replies (7)

Added by Andrzej Wójcik IoT 1 CloudTigaseTeam almost 3 years ago

We support MongoDB, however we keep it in separate subproject as we do not want to include MongoDB Java driver as dependency to Tigase XMPP Server.

We test MongoDB implementation same as other databases for issues and error, however MongoDB support is rather new feature while we support other databases for longer period of time - so they are better tested.

MongoDB 3.2 requires MongoDB Java driver 2.14. It is should be possible to replace driver in older version to make it work, but in Tigase XMPP Server 7.1.0-SNAPSHOT we already updated driver to 2.14 to add support for MongoDB 3.2

In 7.2 we will update driver once again to 3.2.1 or newer and rewrite our code to use new MongoDB Java driver API.

Added by Joan Pujol almost 3 years ago

Thanks Andrzej.

And do you make performance tests with MongoDB? Is performance paired with other databases, better? worse?

Added by Andrzej Wójcik IoT 1 CloudTigaseTeam almost 3 years ago

As I tested MongoDB performance (small test), then performance was good - mostly better that for normal database, however recently we identified few performance issues in our implementation and we will work on fixing it for Tigase XMPP Server 7.2.0

Added by Joan Pujol almost 3 years ago

Thank you very much Andrezej.

Only one more question about it. Do you know if there is some medium sized production instalaltions using MongoDB by now?

Added by Andrzej Wójcik IoT 1 CloudTigaseTeam almost 3 years ago

It is hard to tell as I do not know what you mean by medium sized installation, ie. what type of services you want to run: PubSub? MUC? MessageArchiving? number of connected users?

However as far as I can tell not many users decide to use MongoDB as data storage for Tigase XMPP Server.

Added by Joan Pujol almost 3 years ago

For medium sized I expected something bigger than a closed corporate installation with some hundreds or few thousands of users.

My use case is to support a open mobile application published to Google Play.

I don't expect an huge number of concurrent users initially, but it will be nice to be able to handle about 10K concurrent users without clustering. And then if application gets traction I will invest in clustering and fine tunning it.

I asked about MongoDB because some data for the app fits better a NOSQL approach, and I prefer to have only one database.

And about services I will use mainly PubSub and MUC.

Added by Wojciech Kapcia TigaseTeam almost 3 years ago

Joan Pujol wrote:

For medium sized I expected something bigger than a closed corporate installation with some hundreds or few thousands of users.

My use case is to support a open mobile application published to Google Play.

I don't expect an huge number of concurrent users initially, but it will be nice to be able to handle about 10K concurrent users without clustering. And then if application gets traction I will invest in clustering and fine tunning it.

I asked about MongoDB because some data for the app fits better a NOSQL approach, and I prefer to have only one database.

And about services I will use mainly PubSub and MUC.

This is still very vague.

What is the exact use-case? Because while you may utilize PubSub or MUC you may only have a fraction of users there, without much messages being send. Will those users have huge rosters? Reconnect frequently? Etc.

There is also distinction between online users and total users count (registered)

In general Tigase should not have problem with huge count of the latter while out of the box, by the rule of thumb, single instance should handle easily 100k users.

As Andrzej said - while some choose to use MongoDB it's minority.

    (1-7/7)