Hello,
        Pardon me if this has been already answered somewhere and I
apologize for a lengthy post. I was wondering if anybody could help me
understand Replication internals a bit more. We have a single
master-slave setup (solr 1.4.1) with the configurations as shown
below. Our environment is quite commit heavy (almost 100s of docs
every 5 minutes), and all indexing is done on Master and all searches
go to the Slave. We are seeing that the slave replication performance
gradually decreases and the speed decreases < 1kbps and ultimately
gets backed up. Once we reload the core on slave it will be work fine
for sometime and then it again gets backed up. We have mergeFactor set
to 10 and ramBufferSizeMB is set to 32MB and solr itself is running
with 2GB memory and locktype is simple on both master and slave.

I am hoping that the following questions might help me understand the
replication performance issue better (Replication Configuration is
given at the end of the email)

1. Does the Slave get the whole index every time during replication or
just the delta since the last replication happened ?

2. If there are huge number of queries being done on slave will it
affect the replication ? How can I improve the performance ? (see the
replications details at he bottom of the page)

3. Will the segment names be same be same on master and slave after
replication ? I see that they are different. Is this correct ? If it
is correct how does the slave know what to fetch the next time i.e.
the delta.

4. When and why does the index.<TIMESTAMP> folder get created ? I see
this type of folder getting created only on slave and the slave
instance is pointing to it.

5. Does replication process copy both the index and index.<TIMESTAMP> folder ?

6. what happens if the replication kicks off even before the previous
invocation has not completed ? will the 2nd invocation block or will
it go through causing more confusion ?

7. If I have to prep a new master-slave combination is it OK to copy
the respective contents into the new master-slave and start solr ? or
do I have have to wipe the new slave and let it replicate from its new
master ?

8. Doing an 'ls | wc -l' on index folder of master and slave gave 194
and 17968 respectively...I slave has lot of segments_xxx files. Is
this normal ?

MASTER

<requestHandler name="/replication" class="solr.
ReplicationHandler" >
    <lst name="master">
        <str name="replicateAfter">startup</str>
        <str name="replicateAfter">commit</str>
        <str name="replicateAfter">optimize</str>

        <str name="confFiles">schema.xml,stopwords.txt</str>
        <str name="commitReserveDuration">00:00:10</str>
    </lst>
</requestHandler>


SLAVE

<requestHandler name="/replication" class="solr.ReplicationHandler" >
    <lst name="slave">
        <str name="masterUrl">master core url</str>
        <str name="pollInterval">00:03:00</str>
        <str name="compression">internal</str>
        <str name="httpConnTimeout">5000</str>
        <str name="httpReadTimeout">10000</str>
     </lst>
</requestHandler>


REPLICATION DETAILS FROM PAGE

Master     master core url
Poll Interval     00:03:00
Local Index     Index Version: 1296217104577, Generation: 20190
    Location: /data/solr/core/search-data/index.20110429042508
    Size: 2.1 GB
    Times Replicated Since Startup: 672
    Previous Replication Done At: Fri May 06 15:41:01 EDT 2011
    Config Files Replicated At: null
    Config Files Replicated: null
    Times Config Files Replicated Since Startup: null
    Next Replication Cycle At: Fri May 06 15:44:00 EDT 2011
    Current Replication Status     Start Time: Fri May 06 15:41:00 EDT 2011
    Files Downloaded: 43 / 197
    Downloaded: 477.08 KB / 588.82 MB [0.0%]
    Downloading File: _hdm.prx, Downloaded: 9.3 KB / 9.3 KB [100.0%]
    Time Elapsed: 967s, Estimated Time Remaining: 1221166s, Speed: 505 bytes/s


Ravi Kiran Bhaskar

Reply via email to