2012-05-08 25 views
5

Chúng tôi đang chạy một thiết lập master-slave với Solr 3.6 bằng cách sử dụng tính năng tự động cam kết tùy chọn sau:Solr xuất hiện để chặn cập nhật yêu cầu trong khi cam kết

maxDocs: 500000

maxTime: 600000

Chúng tôi có khoảng 5 triệu tài liệu trong chỉ mục của chúng tôi chiếm khoảng 550GB. Chúng tôi đang chạy cả hai chủ và nô lệ trên Amazon EC2 XLarge trường hợp (4 lõi ảo và 15GB). Chúng tôi không có thông lượng viết đặc biệt cao - khoảng 100 tài liệu mới mỗi phút.

Chúng tôi đang sử dụng Jetty làm vùng chứa có 6 GB được phân bổ cho nó.

Vấn đề là khi cam kết đã bắt đầu, tất cả yêu cầu cập nhật của chúng tôi sẽ bắt đầu tính thời gian (chúng tôi không thực hiện các truy vấn đối với hộp này). Bản thân cam kết dường như mất khoảng 20-25 phút trong thời gian đó chúng tôi không thể thêm bất kỳ tài liệu mới nào vào Solr.

Một trong những câu trả lời trong câu hỏi sau đây gợi ý sử dụng 2 lõi và trao đổi chúng sau khi được cập nhật đầy đủ. Tuy nhiên điều này có vẻ hơi hơn một chút.

Solr requests time out during index update. Perhaps replication a possible solution?

Có điều gì khác tôi nên được xem xét về lý do tại sao Solr có vẻ là chặn yêu cầu? Tôi lạc quan hy vọng có một "dontBlockUpdateRequestsWhenCommitting" cờ trong cấu hình mà tôi đã bỏ qua ...

Rất cám ơn,

+0

Bạn sử dụng phiên bản Solr nào? – kamaci

Trả lời

1

Theo lý do tiền thưởng và các vấn đề nêu tại câu hỏi ở đây là một giải pháp từ Solr:

Solr có khả năng được gọi là SolrCloud bắt đầu bằng 4.x phiên bản của Solr. Thay vì kiến ​​trúc master/slave trước đó có các nhà lãnh đạo và bản sao. Các nhà lãnh đạo chịu trách nhiệm lập chỉ mục các tài liệu và bản sao trả lời các truy vấn. Hệ thống được quản lý bởi Zookeeper. Nếu một nhà lãnh đạo đi xuống một trong các bản sao của nó được chọn làm người lãnh đạo mới.

Tất cả trong tất cả nếu bạn muốn chia quy trình lập chỉ mục của bạn với SolrCloud một cách tự động vì có một người dẫn đầu cho mỗi phân đoạn và họ chịu trách nhiệm lập chỉ mục cho tài liệu của phân đoạn. Khi bạn gửi một truy vấn vào hệ thống sẽ có một số nút Solr (tất nhiên nếu có các nút Solr nhiều hơn số phân đoạn) không chịu trách nhiệm lập chỉ mục tuy nhiên sẵn sàng trả lời truy vấn. Khi bạn thêm bản sao khác, bạn sẽ nhận được kết quả truy vấn nhanh hơn (nhưng nó sẽ gây ra lưu lượng truy cập mạng nội bộ hơn khi lập chỉ mục, v.v.)

-1

Đối với những người đang gặp phải vấn đề tương tự, nguyên nhân của sự cố của tôi là tôi có quá nhiều trường trong tài liệu, tôi đã sử dụng các trường tự động * _t và số trường phát triển khá nhanh, và khi số đó đạt đến một số nhất định, nó chỉ cần hog và cam kết sẽ mất mãi mãi. Thứ hai, tôi đã có một số nỗ lực để làm một hồ sơ, nó kết thúc phần lớn thời gian được tiêu thụ bởi string.intern() chức năng gọi, có vẻ như số lượng các lĩnh vực trong tài liệu quan trọng, khi con số đó tăng lên, string.intern() có vẻ chậm hơn.

Nguồn solr4 xuất hiện không còn sử dụng chuỗi.intern() nữa. Nhưng số lượng lớn các trường vẫn giết hiệu suất khá dễ dàng.

Các vấn đề liên quan