2010-03-14 19 views
8

Qual è il database non sql più veloce e stabile per archiviare i big data e elaborare migliaia di richieste durante il giorno (è per il servizio di scambio di traffico)? Ho trovato Kdb + e Berkeley DB. Sono buoni? Ci sono altre opzioni?Database non sql più veloce e stabile?

Maggiori dettagli ...

processi server

ogni giorno> 100K visite. Per ogni visita ho bisogno di leggere le statistiche corrispondenti dal DB, scrivere il log in DB e aggiornare le statistiche in DB, ovvero 3 operazioni con DB per visita. Il traffico è in continuo aumento. Quindi il motore DB dovrebbe essere veloce. Da un lato il DB sarà gestito da demoni scritti su C, Erlang o qualsiasi altro linguaggio di basso livello. Da un altro lato DB sarà gestito da script PHP.

+0

"Sono bravi?"Berkley DB esiste da decenni." Cos'altro hai bisogno di sapere? "Ci sono altre opzioni?" Sempre. Ma, dato che non fornisci molte informazioni o indicazioni, è difficile dare un suggerimento concreto: –

+0

fare riferimento al database non sql. Sei preoccupato per un motore SQL "basato sul servizio" o una DLL drop-in come altri menzionati su SQLite (e anche Sybase Advantage LOCAL Server). Per le richieste contro il "traffico", si descrivono dati "GRANDI", e questo è tutto relativo basato anche sulla normalizzazione dei dati – DRapp

+1

MIGLIAIA di richieste per GIORNO? Seriamente, le persone usano i database SQL per servire migliaia di richieste per SECONDO e con query complesse. – intgr

risposta

0

Berkely DB è provato e testato ed indurito ed è al centro di molti sistemi di volume di transazioni mega-alti. Un esempio è l'infrastruttura di rete wireless che utilizza enormi archivi LDAP (OpenWave, ad esempio) per elaborare più di 2 miliardi di transazioni al giorno. Questi sistemi hanno anche comunemente qualcosa come Oracle nel mix per il recupero puntuale, ma usano Berkeley DB come cache replicate.

Inoltre, BDB non è limitato a coppie di valori chiave nel semplice senso dei valori scalari. È possibile memorizzare tutto ciò che si desidera nel valore, incluse strutture/record arbitrari.

4

Il file system è più veloce e più stabile di qualsiasi altra cosa. Memorizza i big data in modo fluido ed efficiente. L'API è molto semplice.

È possibile memorizzare e recuperare dal file system in modo molto efficiente.

Poiché la tua domanda è un po 'sottile sui "requisiti" è difficile dire molto di più.

0

Cosa c'è che non va con SqlLite? Dato che hai esplicitamente dichiarato non-sql, Berkeley DB si basa su coppie chiave/valore che potrebbero non essere sufficienti per le tue esigenze se desideri espandere i set di dati, ancora di più, come faresti che il set di dati si rapporta l'uno all'altro usando la chiave/coppie di valori ....

D'altra parte, Kdb +, guardando il FAQ sul loro sito Web è un database relazionale in grado di gestire SQL tramite il loro linguaggio di programmazione Q ... essere consapevoli, se appare la necessità di migrare, potrebbero esserci potenziali intoppi, come dialetti incompatibili o una query che utilizza specifiche del fornitore, quindi il potenziale per rimanere bloccato in quel database e non essere in grado di migrare affatto ... qualcosa da tenere a mente per dopo ...

Devi stare attento a ciò che decidi qui e guarda un t da una prospettiva a lungo termine, i futuri aggiornamenti, la migrazione a un altro database, quanto facile sarebbe di up-scala, ecc

+1

I set di dati si relazionano tra loro memorizzando più di un semplice scalare nel campo del valore. A Berkely non importa cosa si memorizza, lo tratta come un blob di byte. – codenheim

0

Un'ovvia voce in questa categoria è Intersystems Caché. (Beh, ovvio per me ...) Attenzione, però, non è economico. (Ma non credo che sia Kdb +.)

0

Che dire di Redis?

http://code.google.com/p/redis/

Non hanno provare ancora ha letto su di esso e sembra essere una memorizzazione veloce e abbastanza stabile per i dati. Fornisce anche una soluzione decente anti-single-point-failure, per quanto ho capito.