Che database usa Amazon per memorizzare le informazioni sui prodotti?
Non posso divulgare troppo, ma leggendo le altre risposte voglio assicurarmi che la gente non abbia l'impressione sbagliata.
- Come la maggior parte delle persone ha scritto correttamente, Amazon non usa un RDBMS (un tradizionale DB relazionale, ad esempio Oracle) per memorizzare i dati dei prodotti. Gli RDBMS semplicemente non supportano la scala richiesta (quantità di dati e throughput/latenza delle query).
Secondo siti esterni (ad esempio questo[1]) Amazon ha circa mezzo miliardo di prodotti in vendita, e questo è solo il sito principale degli Stati Uniti (certamente il più grande). Secondo questo[2], serve circa 1B pagine al giorno, che è circa 10.000 pagine al secondo in media, e molto più alto nei momenti di picco. - Come qualcun altro ha osservato, non c'è anche un unico DB usato in tutta Amazon. Questo era effettivamente vero nei primi tempi, quando una singola istanza Oracle memorizzava tutto: dati dei prodotti, account utente, ordini, inventario... Questo non è più il caso da molti, molti anni ormai.
- Tuttavia, c'è un singolo DB "concettuale" che memorizza la maggior parte delle informazioni sui prodotti visualizzati sul sito. È enorme, superveloce ed estremamente disponibile.
- Questo DB non è DynamoDB, o qualsiasi altro DB pubblicamente disponibile su AWS (RedShift, Aurora, ecc.) È proprietario e privato. Questo non vuol dire che non si potrebbe costruire il nostro catalogo su uno di quelli; onestamente non lo so.
Modifica: grazie a Vipul Patel, che lavora nel team che possiede il database in questione, per aver segnalato la pagina del team sul sito Amazon Jobs[3] che include il seguente estratto (enfasi mia):
Siamo proprietari di uno dei più grandi database NoSQL del mondo, che serve trilioni di richieste al giorno. E sviluppiamo soluzioni di livello mondiale sfruttando le tecnologie AWS dove possiamo (e ne costruiamo di nostre dove non possiamo).
Note
[1] Quanti prodotti vende Amazon? - Agosto 2017[2] Statistiche sul traffico di amazon.com[3] Fast Data TechnologiesArticoli simili
- Che tipo di database dovrei costruire per memorizzare i dati dei social media per un'app Android con una base di utenti target di 1.000.000?
- Qual è il modo migliore per memorizzare i dati da Firebase a SQLite (database locale di Android)?
- Possiamo memorizzare immagini (.jpg) nei database usando Python? Se sì, come?
- Qual è la differenza tra un database tradizionale e un database moderno?