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


##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/session/Session.java:
##########
@@ -88,6 +88,11 @@ public SessionId sessionId() {
         return sessionId;
     }
 
+    /** Returns the duration in millis after which the session will be 
considered expired if no one touched it in the middle. */
+    public long getIdleTimeoutMs() {

Review Comment:
   ```suggestion
       public long idleTimeoutMs() {
   ```



##########
modules/api/src/main/java/org/apache/ignite/sql/Session.java:
##########
@@ -215,12 +215,20 @@ default long[] executeBatch(@Nullable Transaction 
transaction, String dmlQuery,
     CompletableFuture<Void> executeScriptAsync(String query, @Nullable 
Object... arguments);
 
     /**
-     * Return default query timeout.
+     * Return default query timeout which bound query execution time. In case 
a query take more time it's will be interrupted.
      *
      * @param timeUnit Timeunit to convert timeout to.
      * @return Default query timeout in the given timeunit.
      */
-    long defaultTimeout(TimeUnit timeUnit);
+    long defaultQueryTimeout(TimeUnit timeUnit);
+
+    /**
+     * Return default idle session timeout. The duration after which the 
session will be considered expired if no one use it.
+     *
+     * @param timeUnit Timeunit to convert timeout to.
+     * @return Default session timeout in the given timeunit.
+     */
+    long defaultIdleSessionTimeout(TimeUnit timeUnit);

Review Comment:
   ```suggestion
       /**
        * Return the idle timeout.
        *
        * <p>The maximum idle time (that is, time when no requests are 
performed on behalf the session) in milliseconds, after which this
        * session will be considered expired.
        *
        * @param timeUnit Timeunit to convert timeout to.
        * @return Default session timeout in the given timeunit.
        */
       long idleTimeout(TimeUnit timeUnit);
   ```



##########
modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlCursorCloseRequest.java:
##########
@@ -37,8 +36,8 @@ public static CompletableFuture<Void> 
process(ClientMessageUnpacker in, ClientRe
             throws IgniteInternalCheckedException {
         long resourceId = in.unpackLong();
 
-        AsyncResultSet asyncResultSet = 
resources.remove(resourceId).get(AsyncResultSet.class);
+        var asyncResultSet = 
resources.remove(resourceId).get(ClientSqlResultSet.class);

Review Comment:
   `var` is not allowed in this case. Please see 
   
https://cwiki.apache.org/confluence/display/IGNITE/Java+Code+Style+Guide#JavaCodeStyleGuide-3Usingvarkeyword



##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/session/SessionManager.java:
##########
@@ -21,31 +21,65 @@
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 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 {
+    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

Review Comment:
   ```suggestion
        * @param igniteInstanceName The name of the current node.
   ```



##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/SessionImpl.java:
##########
@@ -70,24 +70,29 @@ public class SessionImpl implements Session {
 
     private final int pageSize;
 
+    private final long sessionTimeout;
+
     private final PropertiesHolder props;
 
     /**
      * Constructor.
      *
      * @param qryProc Query processor.
      * @param pageSize Query fetch page size.
+     * @param sessionTimeoutMs Session timeout in milliseconds

Review Comment:
   ```suggestion
        * @param sessionTimeoutMs Session timeout in milliseconds.
   ```



##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/session/SessionManager.java:
##########
@@ -21,31 +21,65 @@
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 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 {
+    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. */

Review Comment:
   ```suggestion
       /** Session expiration worker. */
   ```



-- 
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