From cdfc1c8149f4a947e422d7a0f0eff08ad06ebb4a Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@z.dgerhardt.net>
Date: Sun, 7 May 2017 23:36:55 +0200
Subject: [PATCH] Filter sessions on the DB side to check if key is available

This should massively reduce the time needed for session creation.
Additionally, the `Transactional` annotation has been removed because
it did not have any effect in this case.
---
 src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index e8c1ae5a2..9c3134dbf 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -499,9 +499,9 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 	}
 
 	@Override
-	@Transactional(isolation = Isolation.READ_COMMITTED)
 	public boolean sessionKeyAvailable(final String keyword) {
 		final View view = new View("session/by_keyword");
+		view.setKey(keyword);
 		final ViewResults results = getDatabase().view(view);
 
 		return !results.containsKey(keyword);
-- 
GitLab