From: Nicolás Dimov Date: Sat, 29 May 2004 03:50:15 +0000 (+0000) Subject: super test, cargando 10000 registros con claves random y el arbol se arma, al parecer... X-Git-Tag: svn_import_r684~126 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/ca0a546df5b5730a8d5dd899391bd0f194f028fa?ds=inline super test, cargando 10000 registros con claves random y el arbol se arma, al parecer, joya --- diff --git a/emufs/emufs.c b/emufs/emufs.c index de9856e..8ad9604 100644 --- a/emufs/emufs.c +++ b/emufs/emufs.c @@ -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; - 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; diff --git a/emufs/indice_bplus.c b/emufs/indice_bplus.c index d0fdf58..274fe79 100644 --- a/emufs/indice_bplus.c +++ b/emufs/indice_bplus.c @@ -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); - /*emufs_b_plus_insertar(idx,query);*/ + /*emufs_b_plus_insertar(idx,query); */ return -1; } else { diff --git a/emufs/tipo1.c b/emufs/tipo1.c index ddaa437..ddb07a3 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -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; + 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); @@ -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); + /*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"); diff --git a/emufs/tipo1_bplus_main.c b/emufs/tipo1_bplus_main.c index d448bf8..3a8441a 100644 --- a/emufs/tipo1_bplus_main.c +++ b/emufs/tipo1_bplus_main.c @@ -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; - int err=0; + int err=0, i; 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); +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;