[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-12 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

New patch changes how handlers work:

* Beasting found a seed which uncovered a major problem with their current 
operation. They were trying to be too honest with the index and e.g. 
revert/delete upon any exception that occurred.

* Thanks to MDW, Mike and I decided to keep the handlers simple -- if a handler 
successfully copies + syncs the revision files, then this is considered the 
new revision.

* Kissing the index is now done not through IndexWriter, but rather deleting 
all files not referenced by last commit.
** That cleanup is a best-effort only ... if it fails, it just logs this 
information and not act on it. Cleanup can happen later too.

* That means that if you have a really nasty crazy IO system (like MDW 
sometimes acts), the Replicator is not the one that's going to care about it. 
The app will hit those weird errors in other places too, e.g. when it tries to 
refresh SearcherManager or perform search.
** These errors are not caused by the Replicator or bad handler operation. I.e. 
if the handler successfully called fsync(), yet the IO system decides to fail 
later ... that's really not the handler's problem.

* Therefore the handlers are now simpler, don't use IW (and the crazy need to 
rollback()), and once files were successfully copied + sync'd, no more 
exceptions can occur by the handler (except callback may fail, but that's ok).

* I also removed the timeout behavior the test employed -- now that 
ReplicationClient has isUpdateThreadAlive(), assertHandlerRevision loops as 
long as the client is alive. If there's a serious bug, test-framework will 
terminate the test after 2 hours ...

* ReplicationClient.startUpdateThread is nicer -- allows starting the thread if 
updateThread != null, but !isAlive.

Now beasting this patch.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-12 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Patch adds instance InfoStream members instead of relying on the static 
default. Beasted 10K+ iterations for both IndexReplicationClientTest and 
IndexAndTaxonomyReplicationClientTest, all pass.

I think it's ready. I plan to commit it tomorrow.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-11 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Good idea Mike. I factored out touchIndex, cleanupFilesOnFailure and copyFiles 
to static utilities on IndexReplHandler.

Maybe instead of the static utilities, we can have an abstract IRH with two 
impls: SingleIndexReplicationHandler and IndexAndTaxoReplHandler. It can 
provide the utility methods as protected, plus implement the general framework 
for index replication, using abstract callbacks that are implemented by the 
concrete handlers. But perhaps we should do it later.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-11 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Mike tripped a seed which was reproducible only on Linux which uncovered a bug 
in the handlers -- writing the segments.gen file should be done only after 
updateHandlerState() is called, and from what the handler says is its last 
state. Otherwise, we could write segments.gen w/ gen=7, but kissing the 
index, or updating the state (reading commits) trips an error, the handler is 
reset back to the last revision it knows is good, and we end up w/ a 
segments.gen file from the future. This then causes DirReader.open to fail w/ 
FNFE looking for a futuristic segments_N file.

MockDirWrapper is a nasty bitch. It should be called 
WhackoIOSubSystemDirectory! :)

Patch improves the handlers + make the tests more resilient so they don't enter 
an infinite loop (that's part of what Mike hit).

I'm beasting more. Please review the handlers' segments.gen writing logic.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-10 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Mike found a seed which tripped a test bug. Fixed it and on the way made the 
test less sensitive to time changes (i.e. it waited up to 20 seconds for the 
index to get updated, otherwise failed) and added some other improvements (to 
the test only).

Let's search for more seeds :).

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-10 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Forgot to include one change -- handleUpdateEx should fail if the exception it 
hits is not IOE. Previous patch called super.handle(), which only logged it. 
But I think it's fair to say that the test shouldn't hit any exception, and 
terminate the client if it does.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-09 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Patch resolves all remaining noocmmits. I made both IndexReplicationHandler and 
IndexAndTaxonomyReplicationHandler more resilient to errors but carefully 
reverting any changes made to the target indexes on errors. Also ensure that 
segments_N files are written last.

I also added code to write segments.gen. To do that I factored out 
SegmentInfos.writeSegmentsGen which takes a Directory and generation. It is now 
used by SIS.finishCommit and the handlers.

Would appreciate if someone can review the handlers, and whether they can be 
written in a more resilient ways.

I want to beast IndexReplicationClientTest and 
IndexAndTaxonomyReplictionClientTest checkConsistencyOnExceptions before 
committing. If anyone's interested to help, just fire {{ant test 
-Dtestcase=IndexReplicationHandlerTest 
-Dtestsm.method=testConsistencyOnExceptions -Dtests.iters=1000}} (and same for 
IndexAndTaxonomyReplicationClientTest) and let me know the seeds that failed.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-08 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Patch fixes a bug in IndexReplicationHandler (still need to fix in 
IndexAndTaxonomy) and adds some nocommits which I want to take care before I 
commit it.

However, I hit a new test failure, which reproduces with the following command 
{{ant test -Dtestcase=IndexReplicationClientTest 
-Dtests.method=testConsistencyOnExceptions 
-Dtests.seed=EAF5294292642F1:6EE70BB59A9FC3CA}}.

The error is weird. I ran the test w/ -Dtests.verbose=true and here's the 
troubling parts from the log:

{noformat}
ReplicationThread-index: MockDirectoryWrapper: now throw random exception 
during open file=segments_a
java.lang.Throwable
at 
org.apache.lucene.store.MockDirectoryWrapper.maybeThrowIOExceptionOnOpen(MockDirectoryWrapper.java:364)
at 
org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:522)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:281)
at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:340)
at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:668)
at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:515)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:343)
at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:682)
at 
org.apache.lucene.replicator.IndexReplicationHandler.revisionReady(IndexReplicationHandler.java:208)
at 
org.apache.lucene.replicator.ReplicationClient.doUpdate(ReplicationClient.java:248)
at 
org.apache.lucene.replicator.ReplicationClient.access$1(ReplicationClient.java:188)
at 
org.apache.lucene.replicator.ReplicationClient$ReplicationThread.run(ReplicationClient.java:76)
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: init: current 
segments file is segments_9; 
deletionPolicy=org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy@117da39a
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: init: load 
commit segments_9
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: init: load 
commit segments_a
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: now checkpoint 
_0(5.0):C1 _1(5.0):C1 _2(5.0):c1 _3(5.0):c1 _4(5.0):c1 _5(5.0):c1 _6(5.0):c1 
_7(5.0):c1 _8(5.0):c1 [9 segments ; isCommit = false]
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: 0 msec to 
checkpoint
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: deleteCommits: 
now decRef commit segments_9
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: delete 
segments_9
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: init: create=false



IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: startCommit(): 
start
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: startCommit 
index=_0(5.0):C1 _1(5.0):C1 _2(5.0):c1 _3(5.0):c1 _4(5.0):c1 _5(5.0):c1 
_6(5.0):c1 _7(5.0):c1 _8(5.0):c1 changeCount=1
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: done all syncs: 
[_2.si, _7.si, _5.cfs, _1.fnm, _4.cfs, _8.si, _4.cfe, _5.cfe, _0.si, _0.fnm, 
_6.cfe, _8.cfs, _3.cfs, _4.si, _7.cfe, _2.cfs, _5.si, _6.cfs, _1.fdx, _8.cfe, 
_1.fdt, _1.si, _7.cfs, _0.fdx, _3.si, _6.si, _3.cfe, _2.cfe, _0.fdt]
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: commit: 
pendingCommit != null
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: commit: wrote 
segments file segments_a
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: now checkpoint 
_0(5.0):C1 _1(5.0):C1 _2(5.0):c1 _3(5.0):c1 _4(5.0):c1 _5(5.0):c1 _6(5.0):c1 
_7(5.0):c1 _8(5.0):c1 [9 segments ; isCommit = true]
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: deleteCommits: 
now decRef commit segments_a
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: delete _9.cfe
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: delete _9.cfs
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: delete _9.si
IFD 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: 0 msec to 
checkpoint
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: commit: done
IW 0 [Wed May 08 22:47:46 WST 2013; ReplicationThread-index]: at close: 
_0(5.0):C1 _1(5.0):C1 _2(5.0):c1 _3(5.0):c1 _4(5.0):c1 _5(5.0):c1 _6(5.0):c1 
_7(5.0):c1 _8(5.0):c1
IndexReplicationHandler 0 [Wed May 08 22:47:46 WST 2013; 
ReplicationThread-index]: updateHandlerState(): currentVersion=a 
currentRevisionFiles={index=[Lorg.apache.lucene.replicator.RevisionFile;@9bc2e26e}
IndexReplicationHandler 0 [Wed May 08 22:47:46 WST 2013; 
ReplicationThread-index]: {version=9}
{noformat}

I debug traced it and here's what I think is happening:

* MDW throws FNFE for segments_a on 

[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-06 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

bq. maybe also call MDW.setRandomIOExceptionRateOnOpen

Thanks Mike! I added that and a slew of problems surfaced, most of them in the 
test, but I improved the handlers' implementation to cleanup after themselves 
if e.g. a copy or sync to the handlerDir failed. While this wasn't a bug, it 
leaves the target index directory clean.

There's one nocommit which bugs me though -- I had to add 
dir.setPreventDoubleWrite(false) because when the handler fails during copying 
of say _2.fdt to the index dir, the file is deleted from the indexDir, and the 
client re-attemts to upgrade. At this point, MDW complains that _2.fdt was 
already written to, even though I deleted it.

Adding this setPrevent was the only way I could make MDW happy, but I don't 
like it since I do want to catch errors in the handler/client if they e.g. 
attempt to copy over an existing file.

Maybe we can make MDW respond somehow to delete()? I know that has bad 
implications on its own, e.g. code which deletes and then accidentally 
recreates files with older names ... any ideas?

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-05 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Added testConsistencyOnException to test the client and handlers' behavior when 
they encounter exceptions (I use MockDirWrapp diskFull and randomIOE to 
simulate that).

I think this module is basically ready. I.e. it comes with tests, javadocs and 
pretty much does what it was written to do. I'm sure there's room for 
improvement, but I don't think this should hold off the commit. So unless there 
are any objections, I intend to commit in by Tuesday. If people want to do a 
thorough review, I don't mind waiting with the commit, but just drop a comment 
on the issue to let me know.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch, 
 LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-02 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Patch contains the Replicator code + all needed stuff to make it a valid module 
(ivy, maven, licenses etc.). A big portion of the patch is due to the 
ivy/maven/licenses things, so if you focus on the code, it's not that big.

I ran precommit and it fails with this cryptic error:

{noformat}
-documentation-lint:
 [echo] checking for broken html...
[jtidy] Checking for broken html (such as invalid tags)...
   [delete] Deleting directory 
D:\dev\lucene\lucene-replicator\lucene\build\jtidy_tmp
 [echo] Checking for broken links...
 [exec] Traceback (most recent call last):
 [exec]   File 
D:\dev\lucene\lucene-replicator\dev-tools/scripts/checkJavadocLinks.py, line 
260, in
 [exec] Crawl/parse...
 [exec]  module
 [exec] if checkAll(sys.argv[1]):
 [exec]   File 
D:\dev\lucene\lucene-replicator\dev-tools/scripts/checkJavadocLinks.py, line 
160, in checkAll
 [exec] allFiles[fullPath] = parse(fullPath, open('%s/%s' % (root, f), 
encoding='UTF-8').read())
 [exec]   File 
D:\dev\lucene\lucene-replicator\dev-tools/scripts/checkJavadocLinks.py, line 
110, in parse
 [exec] parser.feed(html)
 [exec]   File /usr/lib/python3.2/html/parser.py, line 142, in feed
 [exec] self.goahead(0)
 [exec]   File /usr/lib/python3.2/html/parser.py, line 188, in goahead
 [exec] k = self.parse_endtag(i)
 [exec]   File /usr/lib/python3.2/html/parser.py, line 454, in 
parse_endtag
 [exec] self.handle_endtag(elem.lower())
 [exec]   File 
D:\dev\lucene\lucene-replicator\dev-tools/scripts/checkJavadocLinks.py, line 
92, in handle_endtag
 [exec] raise RuntimeError('%s %s:%s: saw /%s but expected /%s' % 
(self.baseURL, self.getpos()[0], self.getpos()[1], tag, self.stack[-1]))
 [exec] RuntimeError: file:///build/docs/core/allclasses-frame.html 680:0: 
saw /body but expected /div
{noformat}

Does anyone know what this is? I searched for div and I don't have any. Also, 
if I run 'ant documentation' from top-level, it passes. I ran this w/ Oracle 
1.7. I did find a closing /body tag with no opening tag under the jetty 
license, but I don't think it's related?

Otherwise, maven check passes, and tests compile and run successfully.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-02 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Patch updates IndexRevision and IndexAndTaxonomyRevision following the recent 
changes to SDP (not requiring snapshot ID). I also noticed I put grouping in 
pom.template rather than facet - fixed.

As for this weird error I got, I noticed that the offending files under 
test-framework had an extra line none of the other modules seemed to have: div 
role=navigation title=All Classes. I have no idea how it got there. So I 
ran 'ant clean documentation' and it passed! I will run precommit tomorrow.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



[jira] [Updated] (LUCENE-4975) Add Replication module to Lucene

2013-05-02 Thread Shai Erera (JIRA)

 [ 
https://issues.apache.org/jira/browse/LUCENE-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-4975:
---

Attachment: LUCENE-4975.patch

Patch adds @lucene.experimental to all classes. I also excluded all the licesne 
files from the patch, so that it's smaller and easier to review.

 Add Replication module to Lucene
 

 Key: LUCENE-4975
 URL: https://issues.apache.org/jira/browse/LUCENE-4975
 Project: Lucene - Core
  Issue Type: New Feature
Reporter: Shai Erera
Assignee: Shai Erera
 Attachments: LUCENE-4975.patch, LUCENE-4975.patch, LUCENE-4975.patch


 I wrote a replication module which I think will be useful to Lucene users who 
 want to replicate their indexes for e.g high-availability, taking hot backups 
 etc.
 I will upload a patch soon where I'll describe in general how it works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org