¿Son los árboles B y B + un truco?

Antes de decidir, considere lo siguiente: un nodo de árbol AVL en disco:

Nodo de estructura pública
{
Izquierda pública larga;
derecho público largo;
padre largo público;
Cálculo público. Balance Estatal;
clave larga pública;

Nodo público (largo p)
{
Izquierda = 0;
Derecha = 0;
Padre = p;
Balance = Calculus.State.Balanced;
Clave = 0;
}

público bool IsHeader
{get {return Balance == Calculus.State.Header; }}
}
enumeración pública Estado: largo
{
Encabezado = 0,
LeftHigh,
Equilibrado,
Derecha Alto
}

Armados solo con esta información, estamos en condiciones de determinar mucho. Por ejemplo, observe que Node está todo en binario y que los datos son solo un desplazamiento de enteros en otro archivo (el archivo de datos). Dado que los nodos son de un tamaño fijo, es posible actualizar un nodo con bastante facilidad. Con estas declaraciones, puede continuar elaborando bases de datos AVL completamente elaboradas. Los algoritmos de equilibrio AVL atraviesan el árbol de abajo hacia arriba, realizando rotaciones según sea necesario (y el archivo de datos se deja intacto). Esto es altamente eficiente y representa la solución ideal óptima.

Contraste esto con B y B + Árboles. Para empezar, los árboles B son incompetentes porque no pueden ser iterados. Los árboles B y B + almacenan varias claves en un nodo (que es el hack) para facilitar el acceso rápido a una unidad de disco duro. Por lo tanto, los nodos deben ser serializados y deserializados (porque eso es lo que requieren las claves, en el caso general). Esto significa que los nodos son de tamaño variable y no se pueden actualizar fácilmente, una pesadilla de programación. El diseño ha destruido toda la naturaleza del bloque fijo del árbol. En consecuencia, los árboles B y B + producen código feo y pirateado debido al diseño original de un nodo.

Con la llegada de las unidades de estado sólido, las bases de datos AVL se ejecutan a alta velocidad, aproximadamente 1700 transacciones / segundo. Entonces, saltar alrededor del árbol (de ahí la unidad) no es un problema. Esto se debe a que no hay tiempos de búsqueda y latencia en un SSD. Entonces, lo más obvio es volver a la solución original y mejor: AVL Trees. Deseche las claves múltiples por diseño de nodo y vuelva a ninguna clave por nodo como en AVL Trees. En otras palabras, deshazte de los hacks B y B + Tree.

More Interesting

¿Cuál es la idea básica detrás de las transformadas de Fourier?

¿Es posible que un humano genere una secuencia verdaderamente aleatoria mentalmente?

¿Cuál es la diferencia entre conjugar y racionalizar?

¿Cuáles son las ventajas y desventajas de elegir las matemáticas como asignatura opcional para las redes principales IAS?

Si se le da el trinomio x ^ 2 + 18x - 40, ¿puede decir qué dos binomios se multiplicaron para obtener esta respuesta? Si esto no es posible, dígalo.

¿Cómo debo aprender a leer y escribir pruebas matemáticas sin ir a una universidad?

¿Soy el único que piensa que muchos de los argumentos de Simulación de Nick Bostrom son matemáticos de largo alcance, adivinanzas y muy engañosos?

¿Cómo puedo aprender matemáticas eficientemente por mi cuenta?

¿Qué es infimum y supremum?

¿Qué matemática existiría en un universo continuo?

¿Existe una función de [matemática] Z [/ matemática] a [matemática] Z [/ matemática] tal que [matemática] f (f (x)) = x + 2017 [/ matemática]?

Considere la ecuación px + 3y = 12 y 2x + qy = r, donde p, q, r son números naturales de un solo dígito. ¿Encontrar el número de tripletes (p, q, r) para los cuales el par de ecuaciones dado no tiene solución?

¿Es cierto que el logaritmo natural de un número no es más que el poder de 'e'? ¿Es correcto que [matemáticas] e ^ {88} = \ ln 88 [/ matemáticas]? Si es correcto, ¿por qué e (o 2.718)?

¿Qué es el valor absoluto integral?

¿Cómo puede alguien que no disfruta de las matemáticas encontrar la manera de disfrutarlo?