Build: #238 was successful Scheduled with changes by Guus der Kinderen

Code commits

Openfire (master)

  • Guus der Kinderen

    Guus der Kinderen 486ad31778dc309ce9c6f68c8b0063976876b3cb

    OF-2524: Add database index for MUC room log retrieval
    When loading the MUC room history for a single room, a query is executed that is not optimized by the existing database indexes:

    `SELECT sender, nickname, logTime, subject, body, stanza FROM ofMucConversationLog WHERE logTime>? AND roomID=? AND (nickname IS NOT NULL OR subject IS NOT NULL) ORDER BY logTime`

    On Ignite's server, this takes more than 400 milliseconds to execute.

    When room preloading is disabled, all rooms that are being used need to be loaded from memory. Looking at the admin console will load all rooms on that page. If that contains 25 rooms, then this query alone causes a delay of many seconds before the page is loaded.

    • distribution/src/database/openfire_db2.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/openfire_hsqldb.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/openfire_mysql.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/openfire_oracle.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/openfire_postgresql.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/openfire_sqlserver.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/openfire_sybase.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_db2.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_hsqldb.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_mysql.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_oracle.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_postgresql.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_sqlserver.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • distribution/src/database/upgrade/34/openfire_sybase.sql (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
    • xmppserver/src/main/java/org/jivesoftware/database/SchemaManager.java (version 486ad31778dc309ce9c6f68c8b0063976876b3cb)
  • Guus der Kinderen

    Guus der Kinderen 67510a07f373fddd5fb0c9e20f79d2ebc8dae76f

    OF-2524: Add MUC message history in bulk
    Instead of loading message and adding to MUC room history one-by-one, do this in a batch.

    With OF-2499, adding a message requires a lock to be held. In clustering, the repeated acquiring and releasing of that lock adds notable delays.

    This commit prevents much of this overhead by adding all history in one go, replacing the lock contention for each message, with one singular lock.

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/HistoryStrategy.java (version 67510a07f373fddd5fb0c9e20f79d2ebc8dae76f)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRoomHistory.java (version 67510a07f373fddd5fb0c9e20f79d2ebc8dae76f)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/FMUCHandler.java (version 67510a07f373fddd5fb0c9e20f79d2ebc8dae76f)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/MUCPersistenceManager.java (version 67510a07f373fddd5fb0c9e20f79d2ebc8dae76f)