Hi there,

I need some advice on how Bi-Directional CDCR is properly configured.

I've created a collection on Site A (3 Solr nodes, 5 ZooKeepers). I've also 
created a collection on site B (3 Solr nodes, 5 ZooKeepers). These both have 
the same number of shards (not sure if that is a factor or not?)

I've configured the solrconfig.xml file as below on SiteA. I've then done the 
same on SiteB, where zkHosts are siteA's and the source and target have 
switched around. Once these were done I then ran the config update to ZooKeeper 
on both sites.

    <updateLog class="solr.CdcrUpdateLog">
    <str name="dir">${solr.ulog.dir:}</str>
    <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
              </updateLog>


              <requestHandler name="/update" class="solr.UpdateRequestHandler">
  <lst name="defaults">
    <str name="update.chain">cdcr-processor-chain</str>
  </lst>
</requestHandler>

<updateRequestProcessorChain name="cdcr-processor-chain">
  <processor class="solr.CdcrUpdateProcessorFactory"/>
  <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>

<requestHandler name="/cdcr" class="solr.CdcrRequestHandler">
  <lst name="replica">
    <str 
name="zkHost">siteA-zook01:2181,siteA-zook02:2181,siteA-zook03:2181,siteA-zook04:2181,siteA-zook05:2181</str>
    <!--
    If you have chrooted your Solr information at the target you must include 
the chroot, for example:
    <str 
name="zkHost">siteA-zook01:2181,siteA-zook02:2181,siteA-zook03:2181,siteA-zook04:2181,siteA-zook05:2181/solr</str>
    -->
    <str name="source">siteACollection</str>
    <str name="target">siteBCollection</str>
  </lst>

  <lst name="replicator">
    <str name="threadPoolSize">8</str>
    <str name="schedule">1000</str>
    <str name="batchSize">128</str>
  </lst>

  <lst name="updateLogSynchronizer">
    <str name="schedule">1000</str>
  </lst>

After is I then did the following:


  *   Start ZooKeeper on Site A
  *   Start ZooKeeper on Site B
  *   Start SolrCloud on Site A
  *   Start SolrCloud on Site B
  *   I then activated the CDCR on Site A and Site B using the CDCR API
  *   I then disabled the buffer on Site A and Site B using the Disable Buffer 
API

When started up, all documents on Site A appeared to syncronise across to Site 
B and their corresponding shards. However when I create a new document, it will 
send across to Site A but won't to Site B. Site B will however recognize that 
the number of documents aren't current.

Not sure if I have missed something along the way here? I'm using Solr version 
7.7.1 on a Windows Server 2016 OS.

Thanks,

Daniel

Reply via email to