You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/02/06 16:33:33 UTC

svn commit: r1241043 - in /incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki: FusekiCmd.java mgt/ActionBackup.java

Author: andy
Date: Mon Feb  6 15:33:32 2012
New Revision: 1241043

URL: http://svn.apache.org/viewvc?rev=1241043&view=rev
Log:
Better backup process

Modified:
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
    incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/mgt/ActionBackup.java

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java?rev=1241043&r1=1241042&r2=1241043&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/FusekiCmd.java Mon Feb  6 15:33:32 2012
@@ -356,6 +356,7 @@ public class FusekiCmd extends CmdARQ
         
         if ( mgtPort > 0 )
         {
+            Fuseki.configLog.info("Management services on port "+mgtPort) ;
             mgtServer = ManagementServer.createManagementServer(mgtPort) ;
             try { mgtServer.start() ; }
             catch (java.net.BindException ex)

Modified: incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/mgt/ActionBackup.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/mgt/ActionBackup.java?rev=1241043&r1=1241042&r2=1241043&view=diff
==============================================================================
--- incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/mgt/ActionBackup.java (original)
+++ incubator/jena/Jena2/Fuseki/trunk/src/main/java/org/apache/jena/fuseki/mgt/ActionBackup.java Mon Feb  6 15:33:32 2012
@@ -29,6 +29,7 @@ import java.io.PrintWriter ;
 import java.util.concurrent.Callable ;
 import java.util.concurrent.ExecutorService ;
 import java.util.concurrent.Executors ;
+import java.util.zip.GZIPOutputStream ;
 
 import javax.servlet.http.HttpServletRequest ;
 import javax.servlet.http.HttpServletResponse ;
@@ -40,6 +41,7 @@ import org.apache.jena.fuseki.server.Dat
 import org.apache.jena.fuseki.servlets.HttpAction ;
 import org.apache.jena.fuseki.servlets.ServletBase ;
 import org.openjena.atlas.io.IO ;
+import org.openjena.atlas.lib.FileOps ;
 import org.openjena.atlas.logging.Log ;
 import org.openjena.riot.out.NQuadsWriter ;
 
@@ -82,21 +84,26 @@ public class ActionBackup extends Servle
         scheduleBackup(action, dataset) ;
     }
 
-    private void scheduleBackup(final HttpAction action, final String dataset)
+    static final String BackupArea = "backups" ;  
+    
+    private void scheduleBackup(final HttpAction action, String dataset)
     {
+        final String ds = dataset.startsWith("/")? dataset : "/"+dataset ;
+        
         String timestamp = Utils.nowAsString("yyyy-MM-dd_HH-mm-ss") ;
-        final String filename = "backups" + dataset + "_" + timestamp ;
+        final String filename = BackupArea + dataset + "_" + timestamp ;
+        FileOps.ensureDir(BackupArea) ;
         
         try {
             final Callable<Boolean> task = new Callable<Boolean>() {
                 @Override
                 public Boolean call() throws Exception
                 {
-                    log.info(format("[%d] Start backup %s to '%s'", action.id, dataset, filename)) ;
+                    log.info(format("[%d] Start backup %s to '%s'", action.id, ds, filename)) ;
                     action.beginRead() ;
                     try {
                         backup(action.getActiveDSG(), filename) ;
-                        log.info(format("[%d] Finish backup %s to '%s'", action.id, dataset, filename)) ;
+                        log.info(format("[%d] Finish backup %s to '%s'", action.id, ds, filename)) ;
                     }
                     catch ( RuntimeException ex )
                     {
@@ -152,8 +159,22 @@ public class ActionBackup extends Servle
     {
         try
         {
-            OutputStream out = new FileOutputStream(backupfile) ;
-            out = new BufferedOutputStream(out) ;
+            OutputStream out ;
+            if ( false )
+            {
+                // This seems to achive about the same as "gzip -6"
+                // It's not too expensive in elapsed time but it's not zero cost.
+                // GZip, large buffer.
+                out = new FileOutputStream(backupfile+".gz") ;
+                out = new GZIPOutputStream(out, 8*1024) ;
+                out = new BufferedOutputStream(out) ;
+            }
+            else
+            {
+                out = new FileOutputStream(backupfile) ;
+                out = new BufferedOutputStream(out) ;
+            }
+            
             NQuadsWriter.write(out, dsg) ;
             out.close() ;
         }