]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
super test, cargando 10000 registros con claves random y el arbol se arma, al parecer...
authorNicolás Dimov <ndimov@gmail.com>
Sat, 29 May 2004 03:50:15 +0000 (03:50 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Sat, 29 May 2004 03:50:15 +0000 (03:50 +0000)
emufs/emufs.c
emufs/indice_bplus.c
emufs/tipo1.c
emufs/tipo1_bplus_main.c

index de9856ed02b674e141a722d88831b8dc2f5df650..8ad9604233fbc1c837de5540250fe503c0c880f0 100644 (file)
@@ -538,7 +538,6 @@ EMUFS_BLOCK_ID emufs_get_new_block_number(EMUFS *emu)
        switch(emu->tipo){
                case T1: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE))/emu->tam_bloque;
                        if (ftell(fp) ==  sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)) num = 0;
        switch(emu->tipo){
                case T1: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE))/emu->tam_bloque;
                        if (ftell(fp) ==  sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)) num = 0;
-                               PERR("PASE");
                        break;
                case T3: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE)-sizeof(EMUFS_REG_SIZE))/emu->tam_bloque;
                        if (ftell(fp) ==  sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)+sizeof(EMUFS_REG_SIZE)) num = 0;
                        break;
                case T3: num = (ftell(fp)-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE)-sizeof(EMUFS_REG_SIZE))/emu->tam_bloque;
                        if (ftell(fp) ==  sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)+sizeof(EMUFS_REG_SIZE)) num = 0;
index d0fdf58d5f184c446f3f8ab0a8903c5ab567fccd..274fe798b99900c97af467d93c5b91117ac6cda6 100644 (file)
@@ -79,7 +79,7 @@ int emufs_b_plus_get_bloque(INDICE *idx, INDEX_DAT *query, int num_node) {
                if (i < 0) {
                        /* La clave es menor que todas, debo insertarla */
                        b_plus_destruir_nodo(nodo);                     
                if (i < 0) {
                        /* La clave es menor que todas, debo insertarla */
                        b_plus_destruir_nodo(nodo);                     
-                       /*emufs_b_plus_insertar(idx,query);*/
+                       /*emufs_b_plus_insertar(idx,query);     */
                        return -1;
                }
                else {
                        return -1;
                }
                else {
index ddaa437b20190fae4bc8732825b01083812ac72e..ddb07a3753fb080a2ae6f5963017266045d5b50d 100644 (file)
@@ -864,6 +864,7 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in
                                clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
                                /*actualizo el arbol con la nueva clave*/
                                query.clave = clave;
                                clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
                                /*actualizo el arbol con la nueva clave*/
                                query.clave = clave;
+                               printf("clave enviada = %d\n", clave);
                                emufs_b_plus_insertar(emu->indices, &query);
                                /*grabo el bloque original*/
                                emufs_tipo1_grabar_bloque_fsc(emu, bloque, num_bloque, EMUFS_NOT_FOUND, err);
                                emufs_b_plus_insertar(emu->indices, &query);
                                /*grabo el bloque original*/
                                emufs_tipo1_grabar_bloque_fsc(emu, bloque, num_bloque, EMUFS_NOT_FOUND, err);
@@ -884,6 +885,9 @@ int emufs_tipo1_insertar_ordenado(EMUFS *emu, void *ptr, EMUFS_REG_SIZE size, in
                                emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, query.num_bloque, EMUFS_NOT_FOUND, err);
                                /*grabo el registro en el bloque original*/
                                grabar_ordenado_en_bloque(emu,ptr,size,bloque,num_bloque,fs+move_size,err);
                                emufs_tipo1_grabar_bloque_fsc(emu, new_bloque, query.num_bloque, EMUFS_NOT_FOUND, err);
                                /*grabo el registro en el bloque original*/
                                grabar_ordenado_en_bloque(emu,ptr,size,bloque,num_bloque,fs+move_size,err);
+                               /*actualizo el arbol con la menor clave del bloque nuevo*/
+                               query.clave = emufs_indice_generar_clave(emu->indices, new_bloque+sizeof(EMUFS_TIPO1_REG_HEADER));
+                               emufs_b_plus_insertar(emu->indices, &query);
                        }
                        if(*err != 0){
                                PERR("NO SE PUDO GRABAR ORDENADO");
                        }
                        if(*err != 0){
                                PERR("NO SE PUDO GRABAR ORDENADO");
index d448bf8593cbf7b29f3559a2af6a0cc52f92979f..3a8441a775a4544a8051186bf30e84bf8bd8f62e 100644 (file)
@@ -39,7 +39,7 @@ int main (int argc,char* argv[])
        EMUFS *emu;
        int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6;
        EMUFS_REG_SIZE len;
        EMUFS *emu;
        int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6;
        EMUFS_REG_SIZE len;
-       int err=0;
+       int err=0, i;
        
        texto = "PARTE COSNSTANTE, clave =";
        emu = emufs_crear("test",T1,512,0);
        
        texto = "PARTE COSNSTANTE, clave =";
        emu = emufs_crear("test",T1,512,0);
@@ -116,6 +116,18 @@ int main (int argc,char* argv[])
        PERR("REGISTRO 7 GRABADO");
        free(r);
 
        PERR("REGISTRO 7 GRABADO");
        free(r);
 
+for ( i=0; i<10000; i++){
+       texto2="SETPTIMO REGISTRO, lo inserto donde entre carajo2ooooooooooooooooooCLAVE = 80";
+       srandom(i);
+       clave.i_clave = random();       
+       /*printf("Clave random = %d\n", clave.i_clave);*/
+       r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
+       len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
+       emufs_tipo1_insertar_ordenado(emu, r, len, &err);
+       /*PERR("REGISTRO 7 GRABADO");*/
+       free(r);
+}
+
 emufs_destruir(emu);
 
        return 0;
 emufs_destruir(emu);
 
        return 0;