Projects tigase _server server-core Issues #636
Create section in documentation about minimal and recommended versions of supported databases (#636)
Closed
Andrzej Wójcik (Tigase) opened 9 years ago
Due Date
2016-03-31

Create section about minimal and recommended versions of supported databases which will allow people to check in documentation requirements to use Tigase XMPP Server, as right now we do not have any information about databases versions supported by Tigase XMPP Server.

Artur Hefczyc commented 9 years ago

This is a good idea. Wojciech, please provide necessary information to Daniel so he can update our documentation.

wojciech.kapcia@tigase.net commented 9 years ago

Andrzej, you've proposed during our conversation about the topic following versions (and I think some are currently mandatory as a result of features available only in such versions, for example Postgres):

  • Postgres - 9.4

  • MS SQL Server - 2008 R2

  • MySQL - 5.6

I've bumped recently Derby driver to @10.12.1.1@, but in this case I don't think there is much problem with the version requirement as it solely depends on the library version which we include with the server.

There is also Mongo version to think about. Currently we ship driver in version 2.12.3 which, according to Java Driver Compatibility supports MongoDB version 2.6 and newer, which should be supported for another 1-2 years (tho, dates are still TBD).

I've looked a bit for background information:

Version      Current minor     Supported     First release date      EOL date
9.5          9.5.0             Yes           January 2016            January 2021
9.4          9.4.5             Yes           December 2014           December 2019
9.3          9.3.10            Yes           September 2013          September 2018
9.2          9.2.14            Yes           September 2012          September 2017
9.1          9.1.19            Yes           September 2011          September 2016

Bottomline - I think that we can quite freely approach topic of supported versions (most likely database deployment for Tigase would be exclusive, maybe except for MS SQL Server deployments) and use features from versions 1-2 years old.

Andrzej Wójcik (Tigase) commented 9 years ago

Yes, this were my suggestions.

As for PostgreSQL, I'm using SQL syntax supported since 9.4 in new version of MA/UA stored procedures so I suppose that we should assume this as current minimal requirement.

MySQL 5.6 is I think best candidate as version 5.6 (if I'm correct) introduced a lot of changes in transactions management, etc.

As for Derby, I think we should also list this DB and required versions - I know it is used mostly for testing and internally, however it is possible to use client-server mode.

SQLServer 2008 R2 - I suggested this version as very often bigger companies like to use older software and opt for extended support. Newer versions of SQLServer mostly add some features or fix some issues. However from version 2012 it is possible to use pagination of SQL results (limit-offset) in native TSQL form which is not available if 2008 R2, so it would be good to use 2012 as minimal required version which would allow us to use this very useful feature in future development.

%kobit what do you think about this change?

As for MongoDB usage of 2.6 for current release is OK. However in versions from 3.0 a lot of changes were done in MongoDB so I would suggest to keep 2.6 as minimal requirement for 7.1.0 release and consider update to 3.0 or newer for 7.2.0 release. (I would like to test our implementation on 3.0 version or newer with new driver before change to 3.0 for 7.2.0).

%kobit any objections?

Another question is support for MariaDB. Right now we do not test MariaDB support, but I think it may be worth to consider this as MariaDB is opensourced fork of MySQL - some linux distributions prefer MariaDB over MySQL (if I'm correct).

Daniel Wisnewski commented 9 years ago

I have used Tigase with MS SQL server Express 2014, as it's a stripped down version of SQL Server 2014, it may be safe to say that it is supported as well. I have not run extensive testing, but can on my system if needed.

Artur Hefczyc commented 9 years ago

Andrzej, I am OK with your suggestion.

I think we should have something like - supported versions and recommended versions. Supported would be versions we know Tigase works with and recommended is the one which we use ourselves, so we have most experience with.

Andrzej Wójcik (Tigase) commented 9 years ago

Ok, so this should look like in following table:

  • Tigase XMPP Server 7.1.0

| Database | Recommended version | Required version | Additional informations | |---|---|---| | | DerbyDB | 10.12.1.1 | 10.12.1.1 | | | MySQL | 5.6 | 5.6 | | | SQLServer | 2012 | 2008 R2 | | | PostgreSQL | 9.4.5 | 9.4 | | | MongoDB | 2.6 | 2.6 | Driver not working with MongoDB 3.0 or newer (new driver may need changes in code and testing, so I would leave it for release of 7.2) |

  • Tigase XMPP Server 7.2.0-SNAPSHOT

| Database | Recommended version | Required version | Additional informations | |---|---|---| | | DerbyDB | 10.12.1.1 | 10.12.1.1 | | | MySQL | 5.6 | 5.6 | | | SQLServer | 2014 | 2012 | 2012 needed so we count use fetch-offset pagination feature | | PostgreSQL | 9.5 | 9.4 | New UA schema requires at least 9.4 | | MongoDB | 3.2 | 3.0 | TODO: uprade driver and implementation (test that all works fine - 3.0 was a big rewrite in MongoBD) - now we need version 2.6 and not newer! |

as for 7.2 table - this requrements are not ready (ie. for MongoDB we need 2.6 at this point), but this I think should be requirements for database for next version when we release it.

%wojtek do you agree?

wojciech.kapcia@tigase.net commented 9 years ago

I would decrease required version for MySQL to 5.5 as we are not having actual hard requirement for any features from 5.6. For 7.2 we may bump Recommended version to 5.7.

We may consider checking MariaDB and mentioning potential compatibility as well (locally I'm using Server version: 10.0.12-MariaDB Homebrew and haven't encountered any problems, but still)

Apart from that IMHO looks good.

Andrzej Wójcik (Tigase) commented 9 years ago

Finally this should look like in following tables:

  • Tigase XMPP Server 7.1.0

| Database | Recommended version | Required version | Additional informations | |---|---|---| | | DerbyDB | 10.12.1.1 | 10.12.1.1 | | | MySQL | 5.6 | 5.5 | | | SQLServer | 2012 | 2008 R2 | | | PostgreSQL | 9.4.5 | 9.4 | | | MongoDB | 2.6 | 2.6 | Driver not working with MongoDB 3.0 or newer (new driver may need changes in code and testing, so I would leave it for release of 7.2) |

  • Tigase XMPP Server 7.2.0-SNAPSHOT

| Database | Recommended version | Required version | Additional informations | |---|---|---| | | DerbyDB | 10.12.1.1 | 10.12.1.1 | | | MySQL | 5.7 | 5.6 | | | SQLServer | 2014 | 2012 | 2012 needed so we count use fetch-offset pagination feature | | PostgreSQL | 9.5 | 9.4 | New UA schema requires at least 9.4 | | MongoDB | 3.2 | 3.0 | TODO: uprade driver and implementation (test that all works fine - 3.0 was a big rewrite in MongoBD) - now we need version 2.6 and not newer! but this will change | | MariaDB | ? | ? | Basic features works with 10.0.12-MariaDB Homebrew but is not fully tested |

as for 7.2 table - this requrements are not ready (ie. for MongoDB we need 2.6 at this point), but this I think should be requirements for database for next version when we release it.

I think this is what we need to place in documentation now and we should add this additional informations as well - maybe in other form.

%kobit - please review versions and if you agree then assign this to Daniel so he will add informations in proper places.

Artur Hefczyc commented 9 years ago

Looks good to me. I would only change "Required version" to "Lowest supported version". Also, as, we will need to update/create a table like this for each new version, we need to add a step for this in our internal document/wiki page which described new version release process. (we do have such wiki page, right?)

wojciech.kapcia@tigase.net commented 9 years ago

(private comment due to private links)

Artur Hefczyc wrote:

Looks good to me. I would only change "Required version" to "Lowest supported version". Also, as, we will need to update/create a table like this for each new version, we need to add a step for this in our internal document/wiki page which described new version release process.

%kobit

I think it doesn't have to be included as the release step. Given the current workflow of the documentation (its being "attached" to the version of the server) when it's included in our documentation and we are creating a change that would bump the requirement then in addition to modifying schema/pom.xml we would need to correct documentation and then this information would be applicable to all the subsequent versions, which include also nightly and it's not exclusive to the release of new version IMHO.

(we do have such wiki page, right?)

Yes, we have - https://projects.tigase.org/projects/private/wiki/Releasing_a_new_version_of_the_Tigase_XMPP_Server (there is also page for JaXMPP library)

Daniel Wisnewski commented 9 years ago

I've uploaded the documentation to release branch.

%wojtek I think we can get around the changes by just making sure this particular table is correct when we switch from building v7.1 to v7.2 on jenkins. If documentation is version specific I think we can be okay with where it is, and I'll just build new enhancements/changes for v7.2 when the switch is made. I integrated the table into the database heading file, so no new files are made with the change.

issue 1 of 1
Type
Task
Priority
Normal
Assignee
RedmineID
3891
Version
tigase-server-8.0.0
Spent time
2h 30m
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#636
Please wait...
Page is in error, reload to recover