2014-11-13 9 views
5

Redis를 Aerospike로 교체 할 것을 고려 중이며, Aerospike가 Redis의 정렬 된 세트와 동일한 기능 및 성능을 애플리케이션 내에서 제공 할 수 있는지 알고 싶습니다. 신속하게 세트에 항목을 삽입하고 읽고 업데이트 할 수 있어야합니다. 나는 또한 그들에 대한 범위 쿼리를 수행 할 수 있어야하고 집합의 임의 항목의 순위를 신속하게 검색 할 수 있어야합니다.Aerospike의 대규모 정렬 목록은 정렬 된 정렬 세트의 리더 보드와 일치 할 수 있습니까?

답변

6

Aerospike에는 현재 리더 보드 기능이 내장되어 있지 않습니다. 그러나 이는 사용자 정의 함수 (UDF) W 대형 데이터 유형 (LDT)을 사용하여 빌드 할 수있는 많은 기능 중 하나입니다.

이것이 작동하는 방식은 두 개의 대규모 주문 LDT를 사용하는 UDF 세트를 사용하는 것입니다. 하나의 LLIST는 기본 컬렉션을 관리하고 다른 LLIST는 리더 보드/스코어 보드 순서 (기본적으로 기본 컬렉션에 인덱스로 사용됨)를 제공합니다.

UDF는 사용자 상호 작용 (기본 값 읽기/쓰기/삭제 및 리더 보드 값 읽기/스캔)을 관리하고 작업을 LDT 기능에 전달합니다.

UDF 및 LDT의 성능을 보여주기 위해이 예제를 빌드하는 것에 대해 내부적으로 이야기했습니다. 아마도 약간의 인센티브로 이러한 사례를 우선적으로 처리 할 수 ​​있습니다.

다른 문제는 성능입니다. 대기 시간 및 처리량 요구 사항은 무엇입니까?

+2

대략 10 만 개 항목의 집합에서 순위와 함께 10 개 항목의 목록을 읽는 데있어 대기 시간을 20ms 미만으로 유지하는 것이 이상적입니다. 어떤 종류의 처리량이 필요한지 잘 모르겠습니다. 대기 시간을 낮추는 데 필요한만큼 확장 할 것입니다. 필자가 설명한 것처럼 LDT를 사용하여이를 수행 할 수있는 UDF의 예제 구현을보고 싶습니다. –

+1

이 예제를보고 싶습니다. Aerospike가 대중에게 더 호소력을 발휘할 수있는 일반적인 예입니다. – Jordan

+0

예제가 필요합니다. 2 차 인덱스를 사용하는 쿼리는 보통 멀티가 동등한 양의 반환 된 아이템을 얻는 것만큼이나 빠르다는 것을 이해했습니다. 1. 인 메모리 인덱스를 탐색하고, 2. ssd에서 항목 데이터 (페이로드)를 수집하여 모두 반환합니다. –