summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/fs4/mplex/ConnectionPool.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/fs4/mplex/ConnectionPool.java')
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/mplex/ConnectionPool.java90
1 files changed, 0 insertions, 90 deletions
diff --git a/container-search/src/main/java/com/yahoo/fs4/mplex/ConnectionPool.java b/container-search/src/main/java/com/yahoo/fs4/mplex/ConnectionPool.java
deleted file mode 100644
index e84adfbef2c..00000000000
--- a/container-search/src/main/java/com/yahoo/fs4/mplex/ConnectionPool.java
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.fs4.mplex;
-
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Logger;
-import java.util.Iterator;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import com.yahoo.log.LogLevel;
-/**
- * Pool of FS4 connections.
- *
- * @author Tony Vaagenes
- */
-public class ConnectionPool {
-
- private final static int CLEANINGPERIOD = 1000; // Execute every second
- private final Queue<FS4Connection> connections = new ConcurrentLinkedQueue<>();
- private final AtomicInteger activeConnections = new AtomicInteger(0);
- private final AtomicInteger passiveConnections = new AtomicInteger(0);
- private static final Logger log = Logger.getLogger(ConnectionPool.class.getName());
-
- class PoolCleanerTask extends TimerTask {
- private final ConnectionPool connectionPool;
- public PoolCleanerTask(ConnectionPool connectionPool) {
- this.connectionPool = connectionPool;
- }
-
- public void run() {
- try {
- connectionPool.dropInvalidConnections();
- } catch (Exception e) {
- log.log(LogLevel.WARNING,
- "Caught exception in connection pool cleaner, ignoring.",
- e);
- }
- }
- }
-
- public ConnectionPool() {
- }
-
- public ConnectionPool(Timer timer) {
- timer.schedule(new PoolCleanerTask(this), CLEANINGPERIOD, CLEANINGPERIOD);
- }
-
- private void dropInvalidConnections() {
- for (Iterator<FS4Connection> i = connections.iterator(); i.hasNext();) {
- FS4Connection connection = i.next();
- if (!connection.isValid()) {
- i.remove();
- }
- }
- }
-
- private FS4Connection registerAsActiveIfNonZero(FS4Connection connection) {
- activeConnections.incrementAndGet();
- passiveConnections.decrementAndGet();
- return connection;
- }
-
- public FS4Connection getConnection() {
- return registerAsActiveIfNonZero(connections.poll());
- }
-
- void releaseConnection(FS4Connection connection) {
- assert(connection != null);
- activeConnections.decrementAndGet();
- if (connection.isValid()) {
- passiveConnections.incrementAndGet();
- connections.add(connection);
- }
- }
-
- void createdConnection() {
- activeConnections.incrementAndGet();
- }
-
- int activeConnections() {
- return activeConnections.get();
- }
-
- //unused connections in the pool
- int passiveConnections() {
- return passiveConnections.get();
- }
-}