Mi chiedo come e perché "unire" ridurre la scalabilità nel sistema di database distribuito (relazionale) su larga scala?Perché i "join" riducono la scalabilità nel sistema di database distribuito su larga scala?
Grazie.
Mi chiedo come e perché "unire" ridurre la scalabilità nel sistema di database distribuito (relazionale) su larga scala?Perché i "join" riducono la scalabilità nel sistema di database distribuito su larga scala?
Grazie.
Come considerazione generale, vi è un overhead significativo (ad esempio il calcolo non dell'utente) in un sistema distribuito che presenta una facciata "coerente" e "unificata".
semplicemente considerare questi fattori:
nodi distinti (ad esempio server) sono macchine distinte. Ciò significa la probabilità di avere n nodi che partecipano a un'azione distribuita - ad es. un join - trovarsi in uno stato ottimale (ad esempio avere solo le tabelle giuste nella cache o avere i blocchi appropriati acquisiti) è basso. Quindi ecco alcuni dei costi generali per ogni nodo per ottenere nello stato appropriato.
naturalmente hanno bisogno di comunicare per coordinare. Quindi c'è un network chatter tra i nodi e quelle latenze non sono insignificanti.
sopra i costi generali, a sua volta, aumentare il tempo medio di richieste di assistenza e quindi ridurre la disponibilità (in termini di capacità del sistema).
La scalabilità diventa un problema in quanto nessuno dei precedenti è O (1). Al massimo ci si può aspettare O (log n) e potrebbe essere brutto come O (n^2). Questo fa meraviglie per la scalabilità dell'uccisione (che per definizione significa la capacità del sistema di scalare a un numero maggiore di nodi).
Quanto sopra sono una parte della motivazione per i sistemi noSQL, ad es. se uno non richiede il coordinamento tra i nodi per le query di servizio, allora le prestazioni sono sostanzialmente migliori. (Come potete vedere, non è magico - stiamo semplicemente sacrificando la correttezza sistemica per le prestazioni.)
Poiché i join sono un'operazione (relativamente) costosa rispetto al recupero da una struttura denormalizzata. – Oded
Voglio dire, quanto è costoso? Perché è costoso? Perché è ok su un singolo server, ma non va bene su più server? – janetsmith
Sono relativamente costosi anche su un singolo server. Se stai parlando di join _across_ servers, è molto, molto, molto più costoso. – Oded