Database system with methods providing high-concurrency access in B-Tree structures

   
   

A Client/Server Database System with improved methods for providing access to highly-concurrent data, such as of B-Tree data structures, is described. When the system receives a request to insert a key value into a B-Tree at page that does not have sufficient room, the system must split at the tree at the leaf level. This is done by allocating a new page, and moving some of the key values from the old page to the new page. The split itself propagates upward. To do the split itself, the system obtains address locks for the two pages, and marks both as undergoing "split" (i.e., a split operation)--the system sets a Boolean flag or "split bit" to "true." When the split is propagated up, a "side entry" is added to the old page to point to the newly allocated page. The old page, however, may not have sufficient room for storing this new entry (e.g., when it is already full). Accordingly in such a case, the parent page must split also. This is done by allocating a new page, at that level. Both pages, old and new parents, are marked as undergoing split. As before, the system obtains address locks for these pages as well. At this point, a side entry is created in the old parent page. This information serves to let any client which is searching for key value (or greater) know that, instead of going directly down the tree from the old parent page, it should proceed to the parent's new neighboring page. In this manner, a client's traversal down the tree is not blocked by the split which is currently active. In effect, the client knows how to take a detour to arrive ultimately at the proper leaf-level page. After split propagation is complete, the system clears the split flags and releases address locks. Also at this point, the side entry is removed. Now, sufficient room now exists in the tree for inserting the key value.

Un sistema client/Server de la base de datos con los métodos mejorados para proporcionar el acceso a los datos alto-concurrentes, por ejemplo de las estructuras de datos del B-A'rbol, se describe. Cuando el sistema recibe una petición de insertar un valor dominante en un B-A'rbol en la página que no tiene suficiente sitio, el sistema debe partir en el árbol en el nivel de la hoja. Esto es hecha asignando una página nueva, y moviendo algunos de los valores dominantes desde la vieja página a la página nueva. La fractura sí mismo propaga hacia arriba. Para hacer la fractura sí mismo, el sistema obtiene las cerraduras de la dirección para las dos páginas, y marca ambos mientras que experimentando "parta" (es decir, un operation) partido -- el sistema fija una bandera boleana o "parta el pedacito" "verdad." Cuando la fractura se propaga para arriba, una "entrada lateral" se agrega a la vieja página al punto a la página nuevamente asignada. La vieja página, sin embargo, puede no tener suficiente sitio para almacenar esta nueva entrada (e.g., cuando es ya llena). Por consiguiente en tal caso, la página del padre debe partir también. Esto es hecha asignando una página nueva, en ese nivel. Ambos viejos y nuevos padres de las páginas, están marcados como experimentando fractura. Como antes, el sistema obtiene las cerraduras de la dirección para estas páginas también. A este punto, una entrada lateral se crea en la vieja página del padre. Esta información sirve dejó a cualquier cliente que esté buscando para el valor dominante (o mayor) sabe que, en vez de ir directamente abajo del árbol de la vieja página del padre, debe proceder a la página vecina nueva del padre. De este modo, la llanura traversal de un cliente el árbol no es bloqueada por la fractura que es actualmente activa. En efecto, el cliente sabe tomar un desvío para llegar en última instancia la página apropiada del hoja-nivel. Después de que la propagación partida sea completa, el sistema despeja las banderas partidas y los lanzamientos tratan las cerraduras. También a este punto, se quita la entrada lateral. Ahora, el suficiente sitio ahora existe en el árbol para insertar el valor dominante.

 
Web www.patentalert.com

< Firmware controlled backup in disk drives

< Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies

> Method and apparatus for recovering the definitions of dropped database objects

> Methods and systems for transactional tunneling

~ 00132