Hello,
We're planning to use SOLR for our project, got some questions. So I asked some Qs yesterday, got no answers whatsoever. Wondering if they didn't make sense, or if the e-mail was too long... :-) Anyway, I'll try to ask them again and hope for some answers this time. It's a very new experience for us so any help is really appreciated. First, some numbers we're expecting. - The average size of a doc: ~100K - The number of indexes: 1 - The query response time we're looking for: < 200 - 300ms - The number of stored docs: 1st year: 500K - 1M 2nd year: 2-3M - The estimated number of concurrent users per second 1st year: 15 - 25 2nd year: 40 - 60 - The estimated number of queries 1st year: 15 - 25 2nd year: 40 - 60 Now the questions 1) Should we do sharding or not? If we start without sharding, how hard will it be to enable it? Is it just some config changes + the index rebuild or is it more? My personal opinion is to go without sharding at first and enable it later if do get a lot of documents. 2) How should we organize our clusters to ensure redundancy? Should we have 2 or more identical Masters (means that all the updates/optimisations/etc. are done for every one of them)? An alternative, afaik, is to reconfigure one slave to become the new Master, how hard is that? 3) Basically, we can get servers of two kinds: * Single Processor, Dual Core Opteron 2214HE * 2 GB DDR2 SDRAM * 1 x 250 GB (7200 RPM) SATA Drive(s) * Dual Processor, Quad Core 5335 * 16 GB Memory (Fully Buffered) * 2 x 73 GB (10k RPM) 2.5" SAS Drive(s), RAID 1 The second - more powerful - one is more expensive, of course. How can we take advantage of the multiprocessor/multicore servers? Is there some special setup required to make, say, 2 instances of SOLR run on the same server using different processors/cores? 4) Does it make much difference to get a more powerful Master? Or, on the contrary, as slaves will be queried more often, they should be the better ones? Maybe just the HDDs for the slaves should be as fast as possible? 5) How many slaves does it make sense to have per one Master? What's (roughly) the performance gain from 1 to 2, 2 -> 3, etc? When does it stop making sense to add more slaves? As far as I understand, it depends mainly on the size of the index. However, I'd guess the time required to do a push for too many slaves can be a problem too, correct? Thanks, Andrey.