저는 Ruby에서 실시간 데이터 분석 작업을위한 알고리즘을 개발 중입니다. 상당히 큰 데이터 세트 때문에 병목 현상이 CPU입니다. 따라서 필요한 성능을 얻으려면 다른 코어에서 병렬로 더 많은 코어를 사용해야합니다.분산 컴퓨팅을위한 Ruby 라이브러리?
내 질문은 다음과 같은 기능을 제공하는 기존의 루비 라이브러리가 있는지 여부입니다 : (노드에 가입하고 떠나) 동적 재구성에 이상적으로 주인없는
- 클러스터 관리, 및 내결함성 어느 정도는
- 제 (활성) 노드 계산 작업의 배포, 오류 처리는 실시간 기능을 보장하기 위해
- 고속 (직접?) 통신 (등 직업 시도)
나는 이미 살펴 봤습니다.
- DRb : 수동 노드 처리가 너무 낮고 내결함성이 없습니까?
- DCell : Mature? 자동 클러스터 관리?
- Resque/Sidekiq : 좋은,하지만 실시간으로 권장되지
- Spark 조회 : : 좋은,하지만 너무 느린 (폴링 레디 스, 자고 노동자, ...)
- Riak지도 /는 감소 복합 재료, enterprisy을 ?
마지막 수단 : 다른 플랫폼을위한 해결책이 없을 수도 있습니다. 아마도 Java (예, JRuby!) 또는 node.js.
당신은 AMQP 보석와 함께 Eventmachine 보석 봤어? 코어 및 스레드를 lscpu 및 nproc과 함께 읽은 다음 시작/실행/작성시 Eventmachine :: run 메소드에서 필요로하는 함수와 함께 사용했습니다. 이것은 아주 성공적이었다. – Dany
AMQP 및 다른 클래식 대기열에 관해서는 속도 (실시간은 밀리 초 범위를 의미) 및 자동 오류 처리가 걱정됩니다. –