juliuszsompolski commented on code in PR #42221:
URL: https://github.com/apache/spark/pull/42221#discussion_r1280016548


##########
connector/connect/server/src/main/scala/org/apache/spark/sql/connect/config/Connect.scala:
##########
@@ -121,4 +121,18 @@ object Connect {
       .version("3.5.0")
       .booleanConf
       .createWithDefault(false)
+
+  val CONNECT_USER_SESSION_CACHE_SIZE =
+    ConfigBuilder("spark.connect.userSession.cacheSize")
+      .doc("Sets the cache size of user session.")
+      .version("4.0.0")
+      .intConf
+      .createWithDefault(100)
+
+  val CONNECT_USER_SESSION_CACHE_TIMEOUT =
+    ConfigBuilder("spark.connect.userSession.cacheTimeout")
+      .doc("Sets the cache timeout of user session.")
+      .version("4.0.0")
+      .intConf
+      .createWithDefault(3600)

Review Comment:
   I am not sure if we want to keep the session cache semantics being like it 
is now in the long term.
   Because of that, I would not codify these configs into documented public 
configs, that will later restrict us from changing the behaviour of the cache.
   For example
   - should we have this global limit of how many sessions there are at all? so 
that a malicious user can flood the server with sessions, and get other 
people's sessions evicted?
   - should the timeout be 3600 seconds? There is currently no way to close 
session, so a client that goes away just leaves it hanging for an hour. We 
should have some mechanism for sessions liveness, like e.g. a heartbeat from 
client that they are still there, and then likely a timeout that is much lower 
if the client doesn't go away. But since we need to maintain backwards 
compatibility with old client, we need to leave it working with 1h timeout for 
old clients...
   
   I am working on designing these matters, and I think we shouldn't put the 
current behaviour into user facing comment, so that we maintain flexibility of 
changing it...
   
   Maybe .internal() for now would be fine, because I see the value in just 
having something to control it for now?
   
   cc @grundprinzip 



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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to