ygerzhedovich commented on code in PR #1004:
URL: https://github.com/apache/ignite-3/pull/1004#discussion_r954808500


##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/session/SessionManager.java:
##########
@@ -20,32 +20,73 @@
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.sql.engine.CurrentTimeProvider;
+import org.apache.ignite.internal.sql.engine.exec.LifecycleAware;
 import org.apache.ignite.internal.sql.engine.property.PropertiesHolder;
+import org.apache.ignite.internal.thread.IgniteThread;
+import org.apache.ignite.internal.util.worker.IgniteWorker;
 import org.jetbrains.annotations.Nullable;
 
 /**
  * A manager of a server side sql sessions.
  */
-public class SessionManager {
+public class SessionManager implements LifecycleAware {
+    /** Check period in ms. */
+    private static long checkPeriod = TimeUnit.SECONDS.toMillis(10);
+
+    private static final IgniteLogger LOG = 
Loggers.forClass(SessionManager.class);
+
+    /** Active sessions. */
     private final Map<SessionId, Session> activeSessions = new 
ConcurrentHashMap<>();
+
     private final CurrentTimeProvider timeProvider;
 
+    /** session expiration worker. */
+    private final IgniteWorker expirationWorker;
+
+    private final AtomicBoolean startedFlag = new AtomicBoolean(false);
+
+
     /**
      * Constructor.
      *
+     * @param igniteInstanceName String igniteInstanceName
      * @param timeProvider A time provider to use for session management.
      */
-    public SessionManager(CurrentTimeProvider timeProvider) {
+    public SessionManager(String igniteInstanceName, CurrentTimeProvider 
timeProvider) {
         this.timeProvider = timeProvider;
+
+        expirationWorker = new IgniteWorker(LOG, igniteInstanceName, 
"session_cleanup-thread", null) {
+            @Override
+            protected void body() throws InterruptedException {
+                while (!isCancelled()) {
+                    blockingSectionBegin();
+                    try {
+                        Thread.sleep(checkPeriod);
+                    } finally {
+                        blockingSectionEnd();
+                    }
+
+

Review Comment:
   done



##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/session/SessionManager.java:
##########
@@ -20,32 +20,73 @@
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.sql.engine.CurrentTimeProvider;
+import org.apache.ignite.internal.sql.engine.exec.LifecycleAware;
 import org.apache.ignite.internal.sql.engine.property.PropertiesHolder;
+import org.apache.ignite.internal.thread.IgniteThread;
+import org.apache.ignite.internal.util.worker.IgniteWorker;
 import org.jetbrains.annotations.Nullable;
 
 /**
  * A manager of a server side sql sessions.
  */
-public class SessionManager {
+public class SessionManager implements LifecycleAware {
+    /** Check period in ms. */
+    private static long checkPeriod = TimeUnit.SECONDS.toMillis(10);
+
+    private static final IgniteLogger LOG = 
Loggers.forClass(SessionManager.class);
+
+    /** Active sessions. */
     private final Map<SessionId, Session> activeSessions = new 
ConcurrentHashMap<>();
+
     private final CurrentTimeProvider timeProvider;
 
+    /** session expiration worker. */
+    private final IgniteWorker expirationWorker;
+
+    private final AtomicBoolean startedFlag = new AtomicBoolean(false);
+

Review Comment:
   done



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to