Pregunta

Generalmente, el servidor de base de datos es la más grande, más caro cuadro tenemos que comprar como escala vertical es la única opción.Existen bases de datos que escala bien horizontalmente (es decir,a través de múltiples equipos básicos) y cuáles son las limitaciones de este enfoque?

¿Fue útil?

Solución

No te preocupes, buenas soluciones están llegando!

Couchdb y Hypertable son de código abierto y todavía en alpha, pero son claramente diseñado para hacer escala en los productos básicos de software simple.Funcionan bastante bien, y puede cambiar la forma de pensar acerca de las bases de datos.

También, si está bien que alguien haga la distribución para usted, Google AppEngine y Amazon SimpleDB son muy baratos base de datos distribuida de servicios, a pesar de que ambos estamos en la beta ahora mismo, así estrictas limitaciones impuestas.

Otros consejos

Oracle RAC no es escalable horizontalmente en todas, porque todas las instancias de Oracle comparten el mismo de almacenamiento de datos.Sí, con SAN cosas u puede obtener un gran tamaño de la DB, pero simplemente no es escalable a todos.En otras palabras, Oracle RAC es todavía una escala de enfoque.Así que para escalar horizontalmente o escala, usted tiene que dividir los datos por la función que los medios poner diferentes grupos de tablas en bases de datos diferentes;o la partición de los datos de cada tabla que significa la partición de una tabla en varias subtablas con el mismo esquema, pero almacena en bases de datos diferentes.De esta manera, se obtiene una reducción de la solución.Hay muchos recursos en eso. La fragmentación ha sido una palabra de moda por un tiempo en la web 2.0 web blog de arquitectura de la esfera.Debido a que la Fragmentación no es compatible directamente por la propia base de datos, usted tiene que construir su propia solución.Pero como ya he dicho, hay muchas lecciones ya.Para oracle, tabla de partición es posible.Para mysql, verificación de esta pregunta

Oracle RAC -- Real Application Cluster

Esto funciona muy bien, solo hay que añadir cuadros de su clúster.Usted puede conmutar de una caja a otra.No es la replicación, todos los cuadros son parte de la misma unidad lógica.

Es bastante spendy, por supuesto.

Hay técnicas de almacenamiento, tales como JavaSpaces (o una implementación comercial como Gigaspaces), que proporcionan altamente escalable, rápido y seguro acceso a los objetos.

También hay distribuidos cacheing sistemas tales como memcached, que ofrecen un enfoque similar.

Por supuesto, ninguna de estas son verdaderas bases de datos, pero son cosas que pueden trabajar en conjunto con bases de datos para ofrecer una gran cantidad de escalabilidad horizontal, dada una adecuada arquitectura.El problema real es que si usted quiere que todo el ÁCIDO de la bondad que viene con una base de datos, hay ciertas inevitable penalizaciones de rendimiento.La única manera de salir es averiguar los bits en los que no necesitan ÁCIDO, y el uso de otras tecnologías para el servicio de los bits.

Oracle RAC es el Rolls Royce de las bases de datos permitiendo que el exceso de hardware de los nodos a ser añadido relativamente fácil y hardware de conmutación por error.

Sin embargo, su producto de hardware de los costes se verá eclipsado por la licencia de costos.

¿Por qué el departamento de defensa sientes la necesidad de escalado horizontal.Un multi núcleo de la CPU del servidor con 40 GB de RAM y de almacenamiento SAN, puede soportar muy considerable DB instalación.

Puede suministrar cualquier tamaño y espera que la actividad de información para permitir una mejor comprensión de su problema?

Si va hacia abajo de la RAC ruta vale la pena recordar que no escala horizontal para siempre.Incluso los tipos de ventas admitir que el 90% de los rac clientes son 4 nodos o menos.Una vez que usted vaya a más de que usted obtenga rendimientos decrecientes.Así rac puede trabajar para usted, pero esto no está garantizado a ser la respuesta.

MySQL: http://www.mysql.com/why-mysql/scaleout.html

Las limitaciones son que funciona mejor con la lectura-la mayoría de las cargas de trabajo.Por lo general, tienen una 'master' que recibe todas las escrituras, y muchos de los 'esclavos', que replican las escrituras.Luego de distribuir el lee todas las bases de datos.

La replicación de MySQL es asincrónico, por lo que probablemente tendrá que lidiar con un desfase de tiempo de los problemas (que se escribe en el maestro, y a continuación se lee desde un esclavo antes de que la escritura ha sido replicado).

Netezza y otros datos de almacenamiento de electrodomésticos de la escala de esta manera, pero ellos no son buenos para OLTP y de la aplicación web de las cargas de trabajo.

El Oráculo de la ruta para escalar a través de múltiples máquinas se llama Real Application Clusters (Oracle RAC).No hay ningún final de esta documentación en otros lugares;usted podría tratar de partida en http://www.oracle.com/database/rac_home.html.

Oracle Real Application Clusters.Si desea la mejor, a continuación, echar un vistazo a él.

Si se piensa en serio que se escala una decente multinúcleo "Big Iron" cuadro, entonces usted piensa acerca de la partición de los datos.Esta es una buena base de datos agnóstico manera de escalar.

Todas las bases de datos que horizontalmente vendrá en un grave costo.

A menos que usted tenga mega $$'s para lanzar en el problema, olvídate de los RAC.Mientras que su muy buena, es MUY caro una vez que la escala más allá de 2 nodos.

MongoDB es uno de los mejores de la base de datos que se ajusta horizontalmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top