2012-02-02 4 views
0

내가 스트리밍 백엔드를 설계하기위한 다음과 같은 요구 한 스트리밍 거의 실시간으로 설계 :백엔드

  1. 문서 20 개 문서/초 @ 추가하기됩니다. 각 문서에는 타임 스탬프 필드가 있습니다.
  2. 검색은 주로 (예 : 문서가 마지막 20 분에 도착 보여줘) 타임 스탬프 범위를 기반으로
  3. 검색 QueriesPerSecond : 2 일 이상
  4. 문서가 계속 크론에 의해 (최적화를 위해 삭제 될 수 100 개 검색/초)

Solr (SolrReplication/NRT 사용)을 사용하려고 생각 중입니다. Solr의 문제점은 기본적으로 빈번한 업데이트/삭제입니다. 최신 데이터의 경우 각 업데이트에 커밋해야합니다 (그렇지 않으면 데이터가 검색 자에게 표시되지 않습니다). pollInterval을 1 분으로 설정하면 마스터/서버가 모두 종료 될 수 있습니다. NRT/SolrCloud는 옵션 중 하나 일 수 있지만 안정성에 대해서는 확실하지 않습니다.

SQL/NoSQL 아키텍처를 기반으로 한 다른 접근 방식이나 제안 사항이 있습니까?

+0

검색이 주로 타임 스탬프 인 경우 Solr을 사용하는 이유는 주로 전체 텍스트 검색 엔진입니까? –

+0

Solr은 나중의 시점에서 검색 기능을 제공 할 때 잠재적 인 이점으로 생각한 옵션 중 하나였습니다. mysql을 제안하고 있습니까? –

+0

내가 말하고자하는 것은 관계형 또는 비 관계형 데이터베이스는 일반적인 쿼리를 실행할 수 있지만 Solr은 * 전체 텍스트 * 검색 엔진으로 사용하기위한 것입니다. 따라서 전체 텍스트 쿼리를 수행하지 않을 경우 다른 데이터베이스를 선택하는 것이 좋습니다. –

답변

0

mysql + memcached. 페이스 북은 광범위하게 지원되고 널리 지원되는 두 가지 무료 및 오픈 소스 패키지에서 전체 사이트를 운영합니다.

+0

새로운 쿼리마다 새로운 timestamp_range가 있으므로 memcached가 도움이 될지 잘 모릅니다. mysql의 슬레이브 대기 시간이 마스터 값으로 업데이트되는 것에 대한 아이디어는 무엇입니까? 나는 그것이 60 초 미만이되기를 원한다. –

+0

@PrasenjitMukherjee 대기 시간을 최소화하면서 동일한 LAN에있는 두 서버를 모두 가정하면 마스터 - 슬레이브 복제 업데이트에 대해 1 초 미만을 기대할 수 있습니다. – siliconwafer