ILuffZhe commented on a change in pull request #2698:
URL: https://github.com/apache/calcite/pull/2698#discussion_r840515045
##########
File path:
elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/ElasticsearchSchemaFactory.java
##########
@@ -53,6 +60,24 @@
private static final Logger LOGGER =
LoggerFactory.getLogger(ElasticsearchSchemaFactory.class);
+ // RestClient objects allocate system resources and are thread safe. Here, we
+ // cache them using a key derived from the hashCode()s of the parameters that
+ // define a RestClient.
+ private static Cache<Integer, RestClient> restClients =
CacheBuilder.newBuilder()
+ .maximumSize(1000)
+ .expireAfterAccess(1, TimeUnit.HOURS)
+ .removalListener(new RemovalListener<Integer, RestClient>() {
+ public void onRemoval(RemovalNotification<Integer, RestClient> notice)
{
Review comment:
Please check the CI.
##########
File path:
elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/ElasticsearchSchemaFactory.java
##########
@@ -53,6 +60,24 @@
private static final Logger LOGGER =
LoggerFactory.getLogger(ElasticsearchSchemaFactory.class);
+ // RestClient objects allocate system resources and are thread safe. Here, we
+ // cache them using a key derived from the hashCode()s of the parameters that
+ // define a RestClient.
+ private static Cache<Integer, RestClient> restClients =
CacheBuilder.newBuilder()
+ .maximumSize(1000)
Review comment:
Do you ever test the pool size and expireTime in your own project?(No
leak problem?) Or, how do you choose them?
--
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]