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

Code commits

Openfire (master)

  • Guus der Kinderen

    Guus der Kinderen 4f9fa577d381982493a19659bdd96cf396adb40e

    OF-2531: Remove unneeded JID-based lock in MUC
    To fix https://igniterealtime.atlassian.net/browse/OF-1649 a user/JID-based lock was introduced. This lock made the creation of a user-and-joining-a-room atomic with respect to the cleanup action remove-all-users-that-are-not-in-any-room.

    With the rewrite of MUC in https://igniterealtime.atlassian.net/browse/OF-2224 (and friends), the cleanup of users is no longer based on room membership, but on duration since last activity. This will prevent https://igniterealtime.atlassian.net/browse/OF-1649. The lock that was put in place now no longer serves a purpose, and should be removed.

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/MultiUserChatServiceImpl.java (version 4f9fa577d381982493a19659bdd96cf396adb40e)
  • Guus der Kinderen

    Guus der Kinderen 8ea20d392fe85aacf8e7eb834de05cc11fbc7291

    OF-2530: Optimize MUC Message History cache usage
    When reading or writing cached MUC messages, the entire collection of messages is serialized between cluster nodes. This adds an unacceptable amount of overhead, for every message that is added.

    In this commit, the singular cached entity (a list of messages), is separated into two parts:
    - A cached entity that represents a list of message references per chatroom
    - messages, by reference

    The purpose of this is to optimize the scenario of  adding a message (which is expected to happen more frequently than reading the history). By having to update only a list of references, instead of a list of actual objects, the amount of data that is to be operated on is reduced significantly.

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/HistoryStrategy.java (version 8ea20d392fe85aacf8e7eb834de05cc11fbc7291)
    • xmppserver/src/main/java/org/jivesoftware/util/cache/CacheFactory.java (version 8ea20d392fe85aacf8e7eb834de05cc11fbc7291)