2014-11-13 19 views
5

Sto pensando di sostituire Redis con Aerospike e volevo sapere se aerospike è in grado di fornire le stesse capacità e le stesse prestazioni dei set ordinati di Redis per le classifiche all'interno di un'applicazione. Devo essere in grado di inserire, leggere e aggiornare rapidamente gli elementi nel set. Devo anche essere in grado di eseguire query di intervallo su di essi e recuperare rapidamente il rango di un elemento arbitrario nel set.La lista dei grandi ordini di Aerospike può corrispondere ai set di Redis per le classifiche?

risposta

6

Aerospike non dispone attualmente di una funzione Leaderboard incorporata. Tuttavia, questa è una delle molte funzioni che chiunque può creare con User Defined Functions (UDF) e Large Data Types (LDT).

Il modo in cui ciò funzionerebbe è che si disporrà di un set di UDF che impiega due LDT di elenchi di grandi dimensioni. Un LLIST gestiva la raccolta primaria e l'altro LLIST forniva l'ordinamento Leaderboard/Scoreboard (fondamentalmente utilizzato come indice nella raccolta primaria).

Le UDF gestiscono l'interazione dell'utente (leggere/scrivere/eliminare il valore primario e leggere/analizzare il valore della classifica) e passare il lavoro alle funzioni LDT.

Abbiamo parlato internamente di come creare questi esempi per mostrare la potenza di UDF e LDT. Forse, con un piccolo incentivo, potremmo aumentare la priorità di ottenere questi esempi.

L'altro problema è la prestazione. Quali sono i tuoi requisiti di latenza e throughput?

+2

Preferirei mantenere la latenza inferiore a 20 ms per la lettura di un elenco di circa 10 elementi insieme ai relativi ranghi da un insieme di circa un milione di elementi. Non sono sicuro di quale tipo di throughput mi aspetto, probabilmente aumenterò quando necessario per garantire che la latenza rimanga bassa. Mi piacerebbe vedere un'implementazione di esempio di una UDF che può farlo utilizzando gli LDT come hai descritto. –

+1

Mi piacerebbe anche vedere questo esempio. È un esempio comune che renderebbe Aerospike più attraente per le masse :) – Jordan

+0

Abbiamo bisogno di un esempio. La mia comprensione è corretta, che tali query che utilizzano un indice secondario sarebbero un po 'veloci come un normale multi ottenere su una quantità uguale di articoli restituiti? 1. Attraversamento di un indice in memoria, 2. raccolta dei dati dell'articolo (payload) da ssd, restituendo tutto. –