You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/04/08 15:07:17 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2186] more work on cluster stability

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 64b8fe7  [OPENMEETINGS-2186] more work on cluster stability
64b8fe7 is described below

commit 64b8fe7dbcd52789f85639c09a597fca63934882
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Apr 8 22:07:02 2020 +0700

    [OPENMEETINGS-2186] more work on cluster stability
---
 .../apache/openmeetings/web/app/ClientManager.java | 25 ++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index 562bb0e..fd62743 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -102,13 +102,17 @@ public class ClientManager implements IClientManager {
 
 	@PostConstruct
 	void init() {
+		log.debug("Cluster:: PostConstruct");
+		onlineClients.putAll(map());
+		onlineRooms.putAll(rooms());
+		onlineServers.putAll(servers());
 		map().addEntryListener(new ClientListener(), true);
 		rooms().addEntryListener(new RoomListener(), true);
 		servers().addEntryListener(new EntryUpdatedListener<String, ServerInfo>() {
 
 			@Override
 			public void entryUpdated(EntryEvent<String, ServerInfo> event) {
-				log.trace("ServerListener::Update");
+				log.debug("Cluster:: Server was updated {} -> {}", event.getKey(), event.getValue());
 				onlineServers.put(event.getKey(), event.getValue());
 			}
 		}, true);
@@ -189,9 +193,12 @@ public class ClientManager implements IClientManager {
 	}
 
 	public void serverAdded(String serverId, String url) {
-		ServerInfo si = new ServerInfo(url);
-		servers().put(serverId, si);
-		onlineServers.put(serverId, si);
+		if (!onlineServers.containsKey(serverId)) {
+			ServerInfo si = new ServerInfo(url);
+			servers().put(serverId, si);
+			log.debug("Cluster:: server with id '{}' was added", serverId);
+			onlineServers.put(serverId, si);
+		}
 	}
 
 	public void serverRemoved(String serverId) {
@@ -201,6 +208,7 @@ public class ClientManager implements IClientManager {
 				exit(e.getValue());
 			}
 		}
+		log.debug("Cluster:: server with id '{}' was removed", serverId);
 		servers().remove(serverId);
 		onlineServers.remove(serverId);
 	}
@@ -237,6 +245,7 @@ public class ClientManager implements IClientManager {
 
 	private void addRoomToServer(String serverId, Room r) {
 		if (!onlineServers.get(serverId).getRooms().contains(r.getId())) {
+			log.debug("Cluster:: room {} was not found for server '{}', adding ...", r.getId(), serverId);
 			IMap<String, ServerInfo> servers = servers();
 			servers.lock(serverId);
 			ServerInfo si = servers.get(serverId);
@@ -372,6 +381,7 @@ public class ClientManager implements IClientManager {
 
 	public String getServerUrl(Room r, Function<String, String> inGenerator) {
 		if (onlineServers.size() == 1) {
+			log.debug("Cluster:: The only server found");
 			return null;
 		}
 		Function<String, String> generator = inGenerator == null ? baseUrl -> {
@@ -463,12 +473,14 @@ public class ClientManager implements IClientManager {
 
 		public void add(Room r) {
 			if (rooms.add(r.getId())) {
+				log.debug("Cluster:: room {} is added to server, whole list {}", r.getId(), rooms);
 				capacity += r.getCapacity();
 			}
 		}
 
 		public void remove(Room r) {
 			if (rooms.remove(r.getId())) {
+				log.debug("Cluster:: room {} is removed from server, whole list {}", r.getId(), rooms);
 				capacity -= r.getCapacity();
 			}
 		}
@@ -484,6 +496,11 @@ public class ClientManager implements IClientManager {
 		public Set<Long> getRooms() {
 			return rooms;
 		}
+
+		@Override
+		public String toString() {
+			return "ServerInfo[rooms: " + rooms + "]";
+		}
 	}
 
 	public static class InstantToken implements Serializable {