Skip to content

Commit

Permalink
Remooved a bottleneck during import task.
Browse files Browse the repository at this point in the history
  • Loading branch information
giastfader committed Jul 23, 2015
1 parent 3b9cb65 commit 8a6f566
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 20 deletions.
4 changes: 2 additions & 2 deletions app/com/baasbox/BBConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,8 @@ public static String getRootPassword() {
return configuration.getString(ROOT_PASSWORD);
}

public static int getExportBufferSize(){
return configuration.getInt(DB_EXPORT_BUFFER_SIZE);
public static int getImportExportBufferSize(){
return configuration.getInt(DB_IMPORT_EXPORT_BUFFER_SIZE);
}

//metrics
Expand Down
2 changes: 1 addition & 1 deletion app/com/baasbox/IBBConfigurationKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public interface IBBConfigurationKeys {

public static final String DB_SIZE_THRESHOLD = "baasbox.db.size";
public static final String DB_ALERT_THRESHOLD = "baasbox.db.alert";
public static final String DB_EXPORT_BUFFER_SIZE = "baasbox.db.export.buffer_size";
public static final String DB_IMPORT_EXPORT_BUFFER_SIZE = "baasbox.db.import_export.buffer_size";


public static final String SOCIAL_MOCK = "baasbox.social.mock";
Expand Down
11 changes: 8 additions & 3 deletions app/com/baasbox/db/async/ExportJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ public void run() {
FileOutputStream tempJsonOS = null;
FileInputStream in = null;
try{
File f = new File(this.fileName);
//File f = new File(this.fileName);
File f = File.createTempFile("export",".temp");

dest = new FileOutputStream(f);
zip = new ZipOutputStream(dest);

Expand All @@ -62,7 +64,7 @@ public void run() {
ZipEntry entry = new ZipEntry("export.json");
zip.putNextEntry(entry);
in = new FileInputStream(tmpJson);
final int BUFFER = BBConfiguration.getExportBufferSize();
final int BUFFER = BBConfiguration.getImportExportBufferSize();
byte buffer[] = new byte[BUFFER];

int length;
Expand All @@ -82,7 +84,10 @@ public void run() {

tmpJson.delete();
manifest.delete();


File finaldestination=new File(this.fileName);
FileUtils.moveFile(f, finaldestination);

}catch(Exception e){
BaasBoxLogger.error(ExceptionUtils.getMessage(e));
}finally{
Expand Down
22 changes: 9 additions & 13 deletions app/com/baasbox/service/dbmanager/DbManagerService.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package com.baasbox.service.dbmanager;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
Expand All @@ -34,26 +33,21 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.comparator.LastModifiedFileComparator;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.xmlbeans.impl.piccolo.io.FileFormatException;

import com.baasbox.service.logging.BaasBoxLogger;
import play.libs.Akka;
import play.libs.Json;
import play.mvc.Result;
import play.mvc.Http.MultipartFormData;
import play.mvc.Http.MultipartFormData.FilePart;
import scala.concurrent.duration.Duration;

import com.baasbox.BBConfiguration;
import com.baasbox.BBInternalConstants;
import com.baasbox.configuration.IosCertificateHandler;
import com.baasbox.dao.exception.FileNotFoundException;
import com.baasbox.db.DbHelper;
import com.baasbox.db.async.ExportJob;
import com.baasbox.service.logging.BaasBoxLogger;
import com.baasbox.util.FileSystemPathUtil;

public class DbManagerService {
Expand Down Expand Up @@ -130,6 +124,7 @@ public static List<String> getExports(){

public static void importDb(String appcode,ZipInputStream zis) throws FileFormatException,Exception{
File newFile = null;
FileOutputStream fout = null;
try{
//get the zipped file list entry
ZipEntry ze = zis.getNextEntry();
Expand All @@ -139,18 +134,16 @@ public static void importDb(String appcode,ZipInputStream zis) throws FileFormat
}
if(ze!=null){
newFile = File.createTempFile("export",".json");
FileOutputStream fout = new FileOutputStream(newFile);
for (int c = zis.read(); c != -1; c = zis.read()) {
fout.write(c);
}
fout = new FileOutputStream(newFile);
IOUtils.copy(zis, fout,BBConfiguration.getImportExportBufferSize());
fout.close();
}else{
throw new FileFormatException("Looks like the uploaded file is not a valid export.");
}
ZipEntry manifest = zis.getNextEntry();
if(manifest!=null){
File manifestFile = File.createTempFile("manifest",".txt");
FileOutputStream fout = new FileOutputStream(manifestFile);
fout = new FileOutputStream(manifestFile);
for (int c = zis.read(); c != -1; c = zis.read()) {
fout.write(c);
}
Expand Down Expand Up @@ -190,6 +183,9 @@ public static void importDb(String appcode,ZipInputStream zis) throws FileFormat
if(zis!=null){
zis.close();
}
if (fout!=null){
fout.close();
}
} catch (IOException e) {
// Nothing to do here
}
Expand Down
2 changes: 1 addition & 1 deletion conf/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ orient.baasbox.admin_password=internal_admin
orient.baasbox.path=db/baasbox
orient.baasbox.backup.path=db/backup
orient.baasbox.MVCC.maxRetries=100
baasbox.db.export.buffer_size=1024000
baasbox.db.import_export.buffer_size=1024000


#push general settings
Expand Down

0 comments on commit 8a6f566

Please sign in to comment.