Author: shalin
Date: Thu May 28 09:11:12 2009
New Revision: 779497
URL: http://svn.apache.org/viewvc?rev=779497&view=rev
Log:
SOLR-1152 -- Snapshoot on ReplicationHandler should acccept location as a
request parameter
Modified:
lucene/solr/trunk/CHANGES.txt
lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
lucene/solr/trunk/src/java/org/apache/solr/handler/SnapShooter.java
Modified: lucene/solr/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=779497&r1=779496&r2=779497&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Thu May 28 09:11:12 2009
@@ -228,6 +228,8 @@
56. SOLR-1051: Support the merge of multiple indexes as a CoreAdmin and an
update command (Ning Li via shalin)
+57. SOLR-1152: Snapshoot on ReplicationHandler should acccept location as a
request parameter (shalin)
+
Optimizations
----------------------
1. SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the
Modified:
lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java?rev=779497&r1=779496&r2=779497&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
Thu May 28 09:11:12 2009
@@ -128,7 +128,7 @@
} else if (command.equals(CMD_GET_FILE_LIST)) {
getFileList(solrParams, rsp);
} else if (command.equals(CMD_SNAP_SHOOT)) {
- doSnapShoot(rsp);
+ doSnapShoot(solrParams, rsp);
} else if (command.equals(CMD_SNAP_PULL)) {
new Thread() {
public void run() {
@@ -244,11 +244,11 @@
return snapPullLock.isLocked();
}
- private void doSnapShoot(SolrQueryResponse rsp) {
+ private void doSnapShoot(SolrParams params, SolrQueryResponse rsp) {
try {
IndexCommit indexCommit = core.getDeletionPolicy().getLatestCommit();
if (indexCommit != null) {
- new SnapShooter(core).createSnapAsync(indexCommit.getFileNames(),
this);
+ new SnapShooter(core,
params.get("location")).createSnapAsync(indexCommit.getFileNames(), this);
}
} catch (Exception e) {
LOG.warn("Exception during creating a snapshot", e);
@@ -820,7 +820,7 @@
}
if (snapshoot) {
try {
- SnapShooter snapShooter = new SnapShooter(core);
+ SnapShooter snapShooter = new SnapShooter(core, null);
snapShooter.createSnapAsync(core.getDeletionPolicy().getLatestCommit().getFileNames(),
ReplicationHandler.this);
} catch (Exception e) {
LOG.error("Exception while snapshooting", e);
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/SnapShooter.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/SnapShooter.java?rev=779497&r1=779496&r2=779497&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/SnapShooter.java
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/SnapShooter.java Thu May
28 09:11:12 2009
@@ -43,9 +43,15 @@
private SolrCore solrCore;
private SimpleFSLockFactory lockFactory;
- public SnapShooter(SolrCore core) throws IOException {
+ public SnapShooter(SolrCore core, String location) throws IOException {
solrCore = core;
- snapDir = core.getDataDir();
+ if (location == null) snapDir = core.getDataDir();
+ else {
+ File base = new File(core.getCoreDescriptor().getInstanceDir());
+ snapDir = org.apache.solr.common.util.FileUtils.resolvePath(base,
location).getAbsolutePath();
+ File dir = new File(snapDir);
+ if (!dir.exists()) dir.mkdirs();
+ }
lockFactory = new SimpleFSLockFactory(snapDir);
}