|
From: <ha...@us...> - 2006-11-08 20:19:15
|
Revision: 1360
http://svn.sourceforge.net/cogkit/?rev=1360&view=rev
Author: hategan
Date: 2006-11-08 12:19:08 -0800 (Wed, 08 Nov 2006)
Log Message:
-----------
added some debug to resource cache
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2006-11-08 19:55:58 UTC (rev 1359)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2006-11-08 20:19:08 UTC (rev 1360)
@@ -122,6 +122,8 @@
inUse.add(fileResource);
return fileResource;
}
+
+ private Throwable lastRelease;
public void releaseResource(FileResource resource) {
if (resource == null) {
@@ -129,14 +131,27 @@
}
synchronized (this) {
logger.debug("Releasing resource for " + resource.getServiceContact());
- if (!inUse.contains(resource)) {
- throw new RuntimeException("Attempted to release resource that is not in use");
+ /*
+ * if (!inUse.contains(resource)) { throw new
+ * RuntimeException("Attempted to release resource that is not in
+ * use"); }
+ */
+ if (inUse.remove(resource)) {
+ order.addLast(resource);
+ releaseTimes.put(resource, new Long(System.currentTimeMillis()));
+ if (logger.isDebugEnabled()) {
+ logger.debug("Resource successfully released");
+ lastRelease = new Throwable();
+ }
}
- inUse.remove(resource);
- order.addLast(resource);
- releaseTimes.put(resource, new Long(System.currentTimeMillis()));
+ else {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Resource was previously released", new Throwable());
+ logger.debug("Previous release: ", lastRelease);
+ }
+ }
+ checkIdleResourceCount();
}
- checkIdleResourceCount();
}
private void removeResource(FileResource resource) {
@@ -211,18 +226,18 @@
cache.checkIdleResourceAges();
}
}
-
+
public static class ResourceStopper implements Runnable {
private LinkedList resources;
private boolean running;
-
- public ResourceStopper () {
+
+ public ResourceStopper() {
resources = new LinkedList();
running = false;
}
-
+
public void addResource(FileResource fr) {
- synchronized(this) {
+ synchronized (this) {
resources.add(fr);
if (!running) {
running = true;
@@ -233,7 +248,7 @@
}
}
}
-
+
public void run() {
FileResource fr = nextResource();
while (fr != null) {
@@ -245,13 +260,13 @@
}
fr = nextResource();
}
- synchronized(this) {
+ synchronized (this) {
running = false;
}
}
-
+
private FileResource nextResource() {
- synchronized(this) {
+ synchronized (this) {
if (resources.isEmpty()) {
return null;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2006-11-28 23:09:20
|
Revision: 1436
http://svn.sourceforge.net/cogkit/?rev=1436&view=rev
Author: hategan
Date: 2006-11-28 15:09:19 -0800 (Tue, 28 Nov 2006)
Log Message:
-----------
and now with fewer System.err.printlns
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2006-11-28 22:55:47 UTC (rev 1435)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2006-11-28 23:09:19 UTC (rev 1436)
@@ -266,7 +266,6 @@
public void addResource(FileResource fr) {
synchronized (this) {
- System.err.println("Scheduling " + fr + " for closing");
resources.add(fr);
if (!running) {
running = true;
@@ -282,9 +281,7 @@
FileResource fr = nextResource();
while (fr != null) {
try {
- System.err.println("Stopping " + fr);
fr.stop();
- System.err.println("Stopped " + fr);
}
catch (Exception e) {
logger.warn("Failed to stop resource", e);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-02-26 18:51:26
|
Revision: 1591
http://svn.sourceforge.net/cogkit/?rev=1591&view=rev
Author: hategan
Date: 2007-02-26 10:51:16 -0800 (Mon, 26 Feb 2007)
Log Message:
-----------
moved exception to debug
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-02-23 18:25:29 UTC (rev 1590)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-02-26 18:51:16 UTC (rev 1591)
@@ -297,7 +297,8 @@
fr.stop();
}
catch (Exception e) {
- logger.info("Failed to stop resource", e);
+ logger.info("Failed to stop resource");
+ logger.debug("Failed to stop resource", e);
}
fr = nextResource();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-02-26 18:53:21
|
Revision: 1592
http://svn.sourceforge.net/cogkit/?rev=1592&view=rev
Author: hategan
Date: 2007-02-26 10:53:09 -0800 (Mon, 26 Feb 2007)
Log Message:
-----------
moved exception to debug
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-02-26 18:51:16 UTC (rev 1591)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-02-26 18:53:09 UTC (rev 1592)
@@ -297,8 +297,12 @@
fr.stop();
}
catch (Exception e) {
- logger.info("Failed to stop resource");
- logger.debug("Failed to stop resource", e);
+ if (logger.isDebugEnabled()) {
+ logger.debug("Failed to stop resource", e);
+ }
+ else {
+ logger.info("Failed to stop resource");
+ }
}
fr = nextResource();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-11-23 21:20:12
|
Revision: 1836
http://cogkit.svn.sourceforge.net/cogkit/?rev=1836&view=rev
Author: hategan
Date: 2007-11-23 13:20:07 -0800 (Fri, 23 Nov 2007)
Log Message:
-----------
cache on the whole service (including provider) rather than only the host name
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-11-09 23:55:06 UTC (rev 1835)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-11-23 21:20:07 UTC (rev 1836)
@@ -10,6 +10,7 @@
package org.globus.cog.abstraction.impl.file;
import java.io.IOException;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
@@ -28,7 +29,6 @@
import org.globus.cog.abstraction.interfaces.FileResource;
import org.globus.cog.abstraction.interfaces.SecurityContext;
import org.globus.cog.abstraction.interfaces.Service;
-import org.globus.cog.abstraction.interfaces.ServiceContact;
public class FileResourceCache {
private static Logger logger = Logger.getLogger(FileResourceCache.class);
@@ -47,7 +47,7 @@
private LinkedList order;
private Map releaseTimes;
- private Map fileResources;
+ private Map fileResources, services;
private Set invalid;
private Set inUse;
private Timer timer;
@@ -56,11 +56,12 @@
private ResourceStopper stopper;
public FileResourceCache() {
- fileResources = new Hashtable();
+ fileResources = new HashMap();
+ services = new HashMap();
inUse = new HashSet();
invalid = new HashSet();
order = new LinkedList();
- releaseTimes = new Hashtable();
+ releaseTimes = new HashMap();
stopper = new ResourceStopper();
}
@@ -72,11 +73,10 @@
logger.debug("Got request for resource for " + service);
}
checkTimer();
- ServiceContact contact = service.getServiceContact();
FileResource fileResource;
synchronized (this) {
- if (fileResources.containsKey(contact)) {
- List resources = (List) fileResources.get(contact);
+ if (fileResources.containsKey(service)) {
+ List resources = (List) fileResources.get(service);
Iterator i = resources.iterator();
while (i.hasNext()) {
fileResource = (FileResource) i.next();
@@ -111,7 +111,6 @@
logger.debug("Instantiating new resource for " + service);
}
String provider = service.getProvider();
- ServiceContact contact = service.getServiceContact();
if (provider == null) {
throw new InvalidProviderException("Provider is null");
}
@@ -121,17 +120,18 @@
}
FileResource fileResource = AbstractionFactory
.newFileResource(provider);
- fileResource.setServiceContact(contact);
+ fileResource.setServiceContact(service.getServiceContact());
fileResource.setSecurityContext(securityContext);
List resources;
- if (fileResources.containsKey(contact)) {
- resources = (List) fileResources.get(contact);
+ if (fileResources.containsKey(service)) {
+ resources = (List) fileResources.get(service);
}
else {
resources = new LinkedList();
- fileResources.put(contact, resources);
+ fileResources.put(service, resources);
}
resources.add(fileResource);
+ services.put(fileResource, service);
inUse.add(fileResource);
return fileResource;
}
@@ -184,9 +184,12 @@
private void removeResource(FileResource resource) {
synchronized (this) {
- if (fileResources.containsKey(resource.getServiceContact())) {
- List resources = (List) fileResources.get(resource
- .getServiceContact());
+ Service service = (Service) services.remove(resource);
+ if (service == null) {
+ return;
+ }
+ if (fileResources.containsKey(service)) {
+ List resources = (List) fileResources.get(service);
resources.remove(resource);
stopper.addResource(resource);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ha...@us...> - 2007-11-29 20:47:27
|
Revision: 1848
http://cogkit.svn.sourceforge.net/cogkit/?rev=1848&view=rev
Author: hategan
Date: 2007-11-29 12:47:15 -0800 (Thu, 29 Nov 2007)
Log Message:
-----------
collapsed sync blocks
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-11-26 19:27:13 UTC (rev 1847)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/file/FileResourceCache.java 2007-11-29 20:47:15 UTC (rev 1848)
@@ -12,7 +12,6 @@
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -72,9 +71,9 @@
if (logger.isDebugEnabled()) {
logger.debug("Got request for resource for " + service);
}
- checkTimer();
FileResource fileResource;
synchronized (this) {
+ checkTimer();
if (fileResources.containsKey(service)) {
List resources = (List) fileResources.get(service);
Iterator i = resources.iterator();
@@ -230,7 +229,7 @@
this.maxIdleTime = maxIdleTime;
}
- private synchronized void checkTimer() {
+ private void checkTimer() {
if (timer == null) {
timer = new Timer(true);
timer.schedule(new ResourceSwipe(this), 60000, 60000);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|