perfsonar-dev - r1622 - trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType
Subject: perfsonar development work
List archive
- From:
- To:
- Subject: r1622 - trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType
- Date: Fri, 8 Sep 2006 04:57:17 -0400
Author: mac
Date: 2006-09-08 04:57:16 -0400 (Fri, 08 Sep 2006)
New Revision: 1622
Modified:
trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSRegisterAction.java
Log:
Performance improvement. Instead of several separate XUpdates (remove old
entries, insert metadata, insert data elements), they go all together in one
request.
Modified:
trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSRegisterAction.java
===================================================================
---
trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSRegisterAction.java
2006-09-07 21:17:58 UTC (rev 1621)
+++
trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSRegisterAction.java
2006-09-08 08:57:16 UTC (rev 1622)
@@ -175,12 +175,12 @@
logger.debug("LSRegisterAction: old data will be replaced by
new set of data");
- removeUpdate = XUPDATE_HEADER +
+ removeUpdate =
"<xu:remove
select=\"/nmwg:store[@type='"+LS_STORE_COLLECTION_TYPE+"']/nmwg:metadata[@id='"
+keyValue+"']\" />\n" +
"<xu:remove
select=\"/nmwg:store[@type='"+LS_STORE_COLLECTION_TYPE+"']/nmwg:data[@metadataIdRef='"
- +keyValue+"']\" />\n" +
- XUPDATE_FOOTER;
+ +keyValue+"']\" />\n";
+
} else {
@@ -197,11 +197,9 @@
requestMetadata.setId(accessPoint);
//Prepare XUpdate for Metadata
- String updateMeta = XUPDATE_HEADER +
- "<xu:append
select=\"/nmwg:store[@type='"+LS_STORE_COLLECTION_TYPE+"']\"
child=\"last()\">\n" +
+ String updateMeta = "<xu:append
select=\"/nmwg:store[@type='"+LS_STORE_COLLECTION_TYPE+"']\"
child=\"last()\">\n" +
XMLUtils.serializeXML(requestMetadata) +
- "\n</xu:append>\n"+
- XUPDATE_FOOTER;
+ "\n</xu:append>\n";
//Prepare XUpdate data
@@ -236,35 +234,40 @@
//Prepare XUpdate for Data
//fill updateData structure
- updateData[datanum] = XUPDATE_HEADER+
- "<xu:append
select=\"/nmwg:store[@type='"+LS_STORE_COLLECTION_TYPE+"']\"
child=\"last()\">\n" +
- XMLUtils.serializeXML(requestData) +
- "\n</xu:append>\n"+
- XUPDATE_FOOTER;
-
- datanum++;
+ updateData[datanum] =
+ "<xu:append
select=\"/nmwg:store[@type='"+
+ LS_STORE_COLLECTION_TYPE+"']\" child=\"last()\">\n" +
+ XMLUtils.serializeXML(requestData) +
+ "\n</xu:append>\n";
+
+ datanum++;
}
//if no errors and exceptions reported/thrown, put metadata and
data into DB
-
+
+
+ StringBuffer update=new StringBuffer(XUPDATE_HEADER);
+
//remove old data (if necessary)
if (removeUpdate!=null) {
- logger.debug("LSRegisterAction: Remove Metadata and
Data:\n"+removeUpdate);
- xmlStorageManager.store(removeUpdate); //XUpdate
+ update.append(removeUpdate);
}
//put metadata
- logger.debug("LSRegisterAction: Insert Metadata:\n"+updateMeta);
- xmlStorageManager.store(updateMeta); //XUpdate
-
- //put all data
- for (int i=0; i<updateData.length; i++) {
- logger.debug("LSRegisterAction: Insert Data:\n"+updateData[i]);
- xmlStorageManager.store(updateData[i]); //XUpdate
+ update.append(updateMeta);
+
+ logger.debug("LSRegisterAction: "+((removeUpdate!=null)?"remove old
entries":"")+", insert metadata and ["+updateData.length+"] data elements");
+
+ for (int i=0; i<updateData.length; i++) {
+ update.append(updateData[i]);
}
+ update.append(XUPDATE_FOOTER);
+ //XUpdate
+ xmlStorageManager.store(update.toString());
+
//update control time - last modification
updateTime(keyValue, xmlStorageManager); //TODO: change
xmlStorageManager to LSstorage-control
@@ -294,8 +297,6 @@
response.addChild(responseMetadata[j]);
}
- logger.debug("LSRegisterAction: end");
-
return response;
}
- r1622 - trunk/perfsonar/src/org/perfsonar/service/lookupService/xmlType, svnlog, 09/08/2006
Archive powered by MHonArc 2.6.16.