documentazione_3di_riservata:extraway:piattaforma_extraway_hot:appunti
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
documentazione_3di_riservata:extraway:piattaforma_extraway_hot:appunti [2010/01/12 11:30] – rtirabassi | documentazione_3di_riservata:extraway:piattaforma_extraway_hot:appunti [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1 | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Test sul funzionamento del server dopo gli interventi in materia di scritture e locking ====== | ||
- | Questi sono gli esiti dei test di carico fatti con SoapUI per verificare se l' | ||
- | Il test compiuto randomizza una serie di operazioni che vanno dalla selezione, acquisizione dei titoli dei documenti caricamento di un documento selezionato, | ||
- | Inoltre è previsto un salvataggio di documenti del tutto nuovi cui viene fatto far seguito da un reload del documento e successiva modifica (per simulare uno degli usi più frequenti nell' | ||
- | Le modifiche ai documenti ed i loro inserimenti vengono regolati in maniera di avere un comportamento casuale ma orientato a privilegiare uno dei due comportamenti. Nelle statistiche, | ||
- | |||
- | ===== Archivi usati per i test ===== | ||
- | |||
- | I test sono stati effettuati usando i seguenti archivi: | ||
- | |||
- | - test22base: Directory che contiene un archivio fatto per il server di classe 22 da usarsi nei test successivi | ||
- | - test22: Directory che contiene l' | ||
- | - test23.base.xml e test23.base.buddy: | ||
- | - test23a e test23b: In queste due directory vengono effettiati i diversi test. La directory ' | ||
- | - test23.baseixd.xml, | ||
- | |||
- | ===== Inizio dei test: Crash! ===== | ||
- | |||
- | L' | ||
- | Con betterie di 5 o 10 server in parallelo, tutti release, il crash si presenta molto rapidamente, | ||
- | Poi, in verità, dopo essersi presentato una prima volta, pare non presentarsi oltre (o per lo meno non per molto tempo ancora). | ||
- | Con batterie di 5 server in debug si presenta ma ci mette un po' a saltar fuori. Quando salta fuori si presenta quel che segue. | ||
- | |||
- | funzione findAdd() in BTPAlgorithms.h riga 700. | ||
- | |||
- | Si evocano le varie funzioni per identificare nodeRad. | ||
- | Ci si domanda se nodeRad sia una foglia, lo è. | ||
- | Poi ci si domanda il valore di ' | ||
- | Ci si domanda se il nodo sia pieno, linea 737, e non lo è. | ||
- | Si procede con l' | ||
- | |||
- | Entrando nella add (BPTNode.h, riga 48) si arriva alla riga 53 in cui si fa una memmove per far posto alla parola che si intende introdurre. La cosa che lascia un po' perplessi è il fatto che il membro elems_ è enumerato da 0x00 a 0x5B quindi l' | ||
- | Al comtempo, però, il valore di size_ è pari a 0x04de. Ora... mi pare che il calcolo sia fatto in modo bislacco. | ||
- | L' | ||
- | In ambo i casi c'è un problema evidente. | ||
- | |||
- | __Ogni successivo test non potrà considerarsi del tutto signficativo non essendo possibile svolgerlo su una batteria di server__ | ||
- | |||
- | ===== Proseguimento senza batteria ===== | ||
- | |||
- | Tutti i test riportati in queste directory sono stati effettuati usando un solo thread con intervalli tra un comando e l' | ||
- | Quello che si nota, operando con un singolo thread, è che i valori che vengono dati, come minimo e massimo, si riferiscono a tutti i thread, come se ce ne fossero pià di uno, ed il valore minimo è in realtà il massimo dei minimi così come il valore massimo è il massimo dei massimi, almeno a quanto pare. | ||
- | Il che ci dice che questi valori sono rappresentativi, | ||
- | Comunque, i test sono stati effettuati, in ogni sessione, sia utilizzando il repository di default, sia quello sotto forma di buddy file binario non compresso per verificare quant' | ||
- | |||
- | Una prima sessione di test è stata effettuata con server debug 22, 23 della versione prima della revisione del trattamento dei files, etichettata come appartenente al branch hotwip_20090803 e 23 della versione natalizia, quella che si " | ||
- | |||
- | Una seconda sessione di test è stata effettuata con le stesse versioni di cui sopra ma nella loro forma release. | ||
- | |||
- | Una terza sessione di test è stata effettuata con le stesse versioni release ma innalzando il livello di logging. | ||
- | |||
- | ==== Prime impressioni ==== | ||
- | |||
- | Una prima, primissima impressione si ha verificando che il server di classe 22 riesce a compiere un numero di inserimenti e modifiche molto superiore a quello del server 23, quale che esso sia. Tale cifra è oltre il doppio di quella spuntata dal server 23. Tra i due server 23 la differenza è minima, non molto apprezzabile. | ||
- | Anche introducendo la variabile buddy/xml la differenza non è particolarmente sensibile, a parità di server. | ||
- | Nello stesso tempo essi producono all' | ||
- | |||
- | Quello che invece risulta evidente in una forma diversa è un tema non meno preoccupante. Il server di classe 23 guadagna un 20/25% di tempo in sede di salvataggio di un documento rispetto allo stesso server di classe 22 ma si perde, letteralmente, | ||
- | |||
- | La terza sessione di test dovrebbe consentirci di identificare i punti in cui si è ottenuto un peggioramento anziché un miglioramento. Esiste in fine un' | ||
- | |||
- | ==== Ulteriori Test ==== | ||
- | |||
- | Viene compiuta una quarta sessione di test, in tutto corrispondente alla terza e quindi aggiunta ad essa. | ||
- | In questa sessione di test si compiono gli stessi passi effettuati per i due server di classe 23, pre e post natalizi, ma con archivi che usino il BTree anziché il B+Tree, sempre in condizione di elevato livello di logging e per questo, come detto, associato allo stesso terzo gruppo di rilevamenti. | ||
- | |||
- | ==== Seconde impressioni ==== | ||
- | |||
- | Le seconde impressioni sono buone e cattive al contempo. Buone perché ci consentono di identificare con una certa convinzione e precisione il protagonista, | ||
- | Se non altro il campo d' | ||
- | In realtà ci viene detta anche un' | ||
- | Se il server 22 si attesta tra gli 88 e gli 89 con e senza buddy, il server 23 post natalizio si attesta attorno agli 88 nella modalità buddy e sale a 93 in quella XML ottenendo risultati comunque superiori al 23 pre natalizio. | ||
- | |||
- | ===== Un maggior livello di dettaglio ===== | ||
- | |||
- | Per scendere maggiormente nel dettaglio ho preso due modifiche a caso, di fatto la prima modifica al primo documento dell' | ||
- | Urgono ulteriori test per stringere il cerchio attorno al nostro candidato principe, ovvero al B+Tree, ed identificarne | ||
- | le idiosincrasie. | ||
- | |||
- | ==== Primo girone ==== | ||
- | |||
- | Dopo il compare tra i precedenti risultati, un ulteriore test effettuato esclusivamente sul server 23 post natalizio ha dato evidenza che la funzione di inserimento delle chiavi nel B+Tree è quella che evidenzia la propria sofferenza. | ||
- | Per tale ragione si replica nuovamente il test, sempre con la valutazione di cicli e di tempi, per valutare quanto sia il tempo di accesso al vocabolario e quanto quello di acesso al file VCB. | ||
- | |||
- | ==== Secondo girone ==== | ||
- | |||
- | Un ulteriore ciclo di test corrispondente al precedente, ma focalizzato sull' | ||
- | A questo punto si ritiene sia il caso di affidarsi a sessioni di debugging di dettaglio. | ||
- | |||
- | ==== Terzo girone ==== | ||
- | |||
- | A seguito di una breve sessione di debug è stato evidente che in fase di modifica di un documento il B+Tree non veniva sottoposto a cache e questo ne deteriorava immensamente le prestazioni. Ora siamo del tutto in linea con il comportamento del BTree ed anzi, sottoponendolo a cache a sua volta, la differenza è minima se pure si rileva ancora un minimo vantaggio nei confronti del BTree. C' per altro credibile che tale vantaggio svanisca al crescere delle dimensioni dell' | ||
- | |||
- | Quello che si dovrebbe fare ora si divide in due aspetti: | ||
- | - Assicurarsi che il BTree/ | ||
- | - Tentare l' | ||
- | |||
- | Sarebbe inoltre utile studiare un diverso sitema di logging che consenta di fare time test anche al volo, senza dover intervenire sul codice, ma la sua generalizzazione potrebbe risultare svantaggiosa rispetto al sistema corrente. | ||
- | |||
- | In quanto all' | ||
- | Rimane la necessità di apportare al server 22 la stessa correzione per verificare come si comporta in un simile scenario. | ||
- | |||
- | ==== Quarto girone ==== | ||
- | |||
- | Effettuando il test anche con una versione modificata del server di tipo 22 la differenza non si percepisce. | ||
- | Spieghiamo meglio il concetto. Mente nel server 23, passare dall' | ||
- | |||
- | Di fatto quello che si rileva, ora come ora, è che con archivi vuoti, un solo thread, intervallo tra un comando ed il successivo tra i 15 ed i 30ms e 180 secondi totali di attività, il server 23 spunta risultati molto simili al 22. Di fatto, usando il B+Tree si salva e si modifica un documento in meno mentre usando il B+Tree si salvano gli stessi documenti pur modificandone 2 in più. Visto così, su un test di 180 secondi, il B+Tree non appare una soluzione vincente rispetto al vecchio B+Tree. | ||
- | |||
- | Bisogna effettuare test più complessi e di durata maggiore per avere la sensazione della differenza comportamentale. | ||
- | |||
- | ===== Riparliamo del Crash ===== | ||
- | |||
- | Nonostante gli interventi e quindi nonostante l'uso del B+Tree cached anche in fase di indicizzazione differenziale, | ||
- | La manifestazione può differire. Se nel primo caso abbiamo visto una situazione in cui si cerca di introdurre in un nodo un elemento in più ritenendo che in esso ci sia ancora posto mentre risulta di fatto saturo e la dimensione immaginata è in realtà errata, esistono casi diversi in cui si proceder a fare split di un nodo che, valutandone il contenuto, risulta in realtà vuoto. | ||
- | Per contrprova sono stati effettuati test con molteplici thread (5 e 10) con un server 23 post natalizio ma partendo da un archivio che presenta ancora il file .idx e che quindi utilizza il BTree anziché il B+Tree. In tal caso non si verificano crash di alcun tipo. | ||
- | Per escludere che si tratti della cache, il test successivo, con l'uso del B+Tree, verrà effettuato senza l' | ||
- | |||
- | ==== No cache result ==== | ||
- | |||
- | Escludendo la cache dall' | ||
- | In breve, quindi, pur non avendo (ancora) la prova provata che il problema risieda nella gestione della cache, ho il forte sospetto che quello sia il punto in cui investigare più a fondo. | ||
- | |||
- | Un ulteriore test, arricchendo con molti logs lo stato delle cose, mi da un errore in un punto del tutto diverso, un punto legato alla ricerca. | ||
- | |||
- | Procedendo con un ulteriore test mi imbatto in una condizinoe che definirei curiosa. Sto cercando di inserire una chiave e non so dire se essa sia già presente o meno. La funzione bpt_insert_key() [bptfun.cpp] evoca la bpt-> | ||
- | Nella findAdd() si fa un primo accesso ad un nodo. Esso non è foglia, se ne estrae il Link adatto e si evoca nuovamente la findAdd(). Al secondo giro di findAdd() anche questo nodo non risulta essere foglia, se ne estrare il link opportuno ma alla successiva chiamata alla writer.getNode() si scopre che il nodo non è valido. | ||
- | |||
- | < | ||
- | // Estrai link | ||
- | | ||
- | | ||
- | // Verifico la correttezza | ||
- | if (!writer.getNode(& | ||
- | </ | ||
- | |||
- | La writer.getNode() torna ' | ||
- | Forse non ne avrò le prove provate, ma la convinzione che sia il trattamento della cache ad essere incriminato mi pare essere sempre più convincente. | ||
- | |||
- | ==== Punto critico ==== | ||
- | |||
- | La dimensione pari a 0 del nodo che viene splittato si è ripresentata e mi ha insospettito. Ad un analisi più accurata è risultato evidente che il puntatore al nodo che si stava splittando ed a quello splittato era lo stesso e che quindi, nel predisporre il nuovo nodo splittato, si era finito con il " | ||
- | Un esame più approfondito della cosa ha evidenziato come il membro ' | ||
- | ...fuori controllo! | ||
- | |||
- | Di fatto si procedeva ad evocare la newNode() che a sua volta evocava la getNextAddr(). L' | ||
- | In altre parole, quel nodo che andava cercato nella cache per trovargli la nuova collocazione e che sarebbe dovuto risultare inesistente nella cache praticamente per definizione, | ||
- | Tutto questo è dovuto la mancato aggiornamento di ' | ||
- | Per sistemare quanto detto, quindi, è stato creato un nuovo metodo refreshAddrNext() che viene ora evocato: | ||
- | - In apertura del FileControlle, | ||
- | - Nel metodo newNode() dove, in assenza di cache, si valutava la nuova posizione sempre accedendo alla size dello storage_ | ||
- | - Nel metodo openNodes() quando si passa in modalità cached così da avere un valore valido. | ||
- | |||
- | Il metodo è stato creato come privato in quanto non vi è ragione di renderlo disponibile ai fruitori del FileController essendo di suo esplicito utilizzo interno. | ||
- | |||
- | Test effettuati per 2 ore con 10 thread in parallelo hanno evidenziato la totale assenza di crash. Le condizioni d' | ||
- | - Un elevato numero di errori 808, ovvero errori di locking dovuti ad una naturale concorrenza d' | ||
- | - 6 errori 802, ovvero errori di accesso all' | ||
- | - 1 solo errore 810, riferito ad un file che non è stato possibile identificare. Esso si riferisce ad un file di selezione non più disponibile, | ||
- | |||
- | ===== Nuovi test di carico ===== | ||
- | |||
- | Corretto l' | ||
- | Riportiamo solo i valori più significativi e porremo in rapporto il server di classe 22, con la correzione inerente l'uso della cache anche in indicizzazione differenziale, | ||
- | Ovviamente tutte le versioni utilizzate sono state compilate in modalità ' | ||
- | |||
- | Si ricorca che i valori | ||
- | |||
- | I test vengono effettuati partendo ogni volta da archivi vuoti. | ||
- | La presenza di errori è naturalmente dovuta a condizioni di concorrenza d' | ||
- | |||
- | ==== Test 1.1 ==== | ||
- | Condizioni di test: Tempo totale: 240", Threads: 5, Intervallo: dai 15 ai 30ms, salvataggio XML. | ||
- | |||
- | ^Server 22 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 187| | ||
- | ^Errori | ||
- | |||
- | ^Server 23 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 181| | ||
- | ^Errori | ||
- | |||
- | ==== Test 1.2 ==== | ||
- | Condizioni di test: Tempo totale: 180", Threads: 10, Intervallo: dai 50 ai 100ms, salvataggio XML. | ||
- | |||
- | ^Server 22 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 125| | ||
- | ^Errori | ||
- | |||
- | ^Server 23 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 129| | ||
- | ^Errori | ||
- | |||
- | ==== Test 1.3 ==== | ||
- | Condizioni di test: Tempo totale: 300", Threads: 10, Intervallo: dai 2 a 3s, salvataggio XML. | ||
- | |||
- | ^Server 22 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 192| | ||
- | ^Errori | ||
- | |||
- | ^Server 23 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 143| | ||
- | ^Errori | ||
- | |||
- | ==== Test 1.4 ==== | ||
- | Condizioni di test: Le stesse del test numero 1.3 ma con un conteggio del tempo che si riferisce al solo comando e non anche al tempo necessario per scrivere il comando e leggere la risposta. Non vengono inoltre resettati i valori al variare dei threads. | ||
- | |||
- | ^Server 22 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 204| | ||
- | ^Errori | ||
- | |||
- | ^Server 23 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 197| | ||
- | ^Errori | ||
- | |||
- | ===== Un altro punto di vista ===== | ||
- | |||
- | Visto che i risultati ottenuti sino ad ora non sono molto confortanti, | ||
- | La differenza nel test è che uno verrà effettuato su un archivio dotato di BTree e l' | ||
- | |||
- | I test vengono effettuati secondo alcuni criteri di cui al test numero 4 del precedente ciclo. Viene quindi preso in esame solo il tempo effettivo escludendo quello di IO. | ||
- | |||
- | ==== Test 2.1 ==== | ||
- | Condizioni di test: Tempo totale: 300", Threads: 10, Intervallo: dai 2 a 3s, salvataggio XML. | ||
- | |||
- | ^Server 23BT ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 211| | ||
- | ^Errori | ||
- | |||
- | ^Server 23BPT ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 194| | ||
- | ^Errori | ||
- | |||
- | ===== Rientro dopo le ferie ===== | ||
- | |||
- | La rientro di gennaio i test proseguono provvedendo ad introdurre nuve forme di benchmark ed a rimuovere ogni verifica riferita alle autorizzazioni per gli archivi dove questo non ha ragione di essere. | ||
- | |||
- | ==== Test 3.1 ==== | ||
- | Questo test viene effettuato per valutare quanto sia significativo il tempo impiegato dalla validazione delle attività da svolgere nel server 23 rispetto al server 22. Faremo nuovamente i testi di cui al punto 1.4 dopo aver modificato il server 23 perché ammetta una modalità //free access// al fine di verificare quanto sia l' | ||
- | Anche se potremmo basarci sui precedenti valori del test 1.4 sul server 22, li replichiamo comunque. | ||
- | |||
- | Condizioni di test: Tempo totale: 300", Threads: 10, Intervallo: dai 2 a 3s, salvataggio XML. | ||
- | |||
- | ^Server 22 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 206| | ||
- | ^Errori | ||
- | |||
- | ^Server 23 ^ Tot ^ Min ^ Max ^ Media ^ | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ 204| | ||
- | ^Errori | ||
- | |||
- | Si denota un miglioramento, | ||
- | |||
- | ===== Cambiamo completamente direzione ===== | ||
- | |||
- | I test effettuati sino ad ora sanno dirci che in condizioni randomiche i due server hanno comportamenti simili ma non uguali e che complessivamente //sembra// che il server 22 vada meglio del server 23. | ||
- | Per cercare di dissipare anche questo dubbio, procediamo con un test che si avvalga di WatchDoc. In questo modo le operazioni che i due server devono compiere sono del tutti identiche e si noterà, se pure solo in inserimento, | ||
- | |||
- | ^Server | ||
- | ^ 22 | ||
- | ^ 23 | ||
- | ^ 23idx | 1657 | 258, | ||
- | |||
- | Aiuto!!!! Il server 23 non //sembra// impiegare molto di più, lo fa! Inoltre lo fa perché produce un BTree che contiene una serie di nodi piuttosto corposa dai quali risultano un numero di chiavi molto superiore a quelli rilevati dal 22 o dal 23 con idx (49mila contro 37mila). | ||
- | L' | ||
- | Il test, effettuato con il server 20090803 (ma che fa uso, ora, del B+Tree modificato negli ultimi giorni dell' | ||
- | |||
- | ===== Separazione dei problemi ===== | ||
- | |||
- | Bisogna necessariamente distinguere e separare le questioni. Nello sviluppare interventi tesi a ridurre quanto più possibile il numero di letture e scritture non necessarie, e con esse le operazioni di flush, abbiamo rilevato altre problematiche prestazionali legate, a quanto pare, al B+Tree. | ||
- | Oltre agli aspetti prestazionali, | ||
- | Questo ci impone di separare i due temi. Il progetto riferito agli interventi sulle scritture e sui locking va quindi chiuso e il resto delle attività dovrà afferire agli sviluppi relativi al solo B+Tree. | ||
- | |||
- | ===== Test dopo l' | ||
- | |||
- | ==== Atto primo ==== | ||
- | |||
- | Effettuiamo quindi dei test conclusivi che ci dicano se gli interventi compiuti hanno sortito gli effetti desiderati o meno.\\ La condizione è quella già incontrata in precedenza: 10 Thread, tempo di intervallo tra i 2 ed i 3 secondi, tempo limite 300 secondi senza il conteggio del tempo necessario all' | ||
- | |||
- | ^Server 23-pre | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ | ||
- | ^Errori | ||
- | |||
- | ^Server 23-post | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ | ||
- | ^Errori | ||
- | |||
- | Queste prime rilevazioni hanno lo scopo, in sostanza, di dimostrarci che i più recenti interventi effettuati sul server 23 pre-natalizio, | ||
- | |||
- | === I valori evidenziati === | ||
- | |||
- | Veniamo quindi ai valori evidenziati dal precedente test. | ||
- | Il numero medio di aperture, posizionamenti, | ||
- | Vengono posti in <color red> | ||
- | |||
- | ^ <color darkgray>// | ||
- | ^ Operazioni Totali | ||
- | ^ Tempo Medio Ricerca | ||
- | ^ Tempo Medio Generale | ||
- | ^ Salvataggi Totali | ||
- | ^ Tempo Medio Salvataggi | ||
- | ^ Numero Medio Aperture | ||
- | ^ Numero Medio Posizionamenti | ||
- | ^ Numero Medio Letture | ||
- | ^ Numero Medio Scritture | ||
- | ^ Numero Medio // | ||
- | ^ Numero Medio // | ||
- | |||
- | ==== Atto secondo ==== | ||
- | |||
- | Per dar maggior consistenza ai test appena effettuati essi vengono replicati esattamente con gli stessi server ma con archivi basati su BTree anziché sul B+Tree, non tanto per valutare la differenza comportamentale ma per stabilire che essi portano ad archivi corretti. Ci si aspetta quindi che gli accessi al vocabolario per le ricerche così come per i salvataggi dei documenti risultati ancora più affidabili.\\ La condizione di test è, ovviamente, la stessa di quello precedente. | ||
- | |||
- | ^Server 23-pre | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ | ||
- | ^Errori | ||
- | Il controllo vocabolario al termine delle operazioni ha dato esito corretto. | ||
- | |||
- | ^Server 23-post | ||
- | ^Ricerche | ||
- | ^Modifiche | ||
- | ^Inserimenti | ||
- | ^Mod post Ins ^ | ||
- | ^Errori | ||
- | Il controllo vocabolario al termine delle operazioni ha dato esito corretto. | ||
- | |||
- | === I valori evidenziati === | ||
- | |||
- | Veniamo quindi ai valori evidenziati dal precedente test. | ||
- | Il numero medio di aperture, posizionamenti, | ||
- | Vengono posti in <color red> | ||
- | |||
- | ^ <color darkgray>// | ||
- | ^ Operazioni Totali | ||
- | ^ Tempo Medio Ricerca | ||
- | ^ Tempo Medio Generale | ||
- | ^ Salvataggi Totali | ||
- | ^ Tempo Medio Salvataggi | ||
- | ^ Numero Medio Aperture | ||
- | ^ Numero Medio Posizionamenti | ||
- | ^ Numero Medio Letture | ||
- | ^ Numero Medio Scritture | ||
- | ^ Numero Medio // | ||
- | ^ Numero Medio // | ||
- | |||
- | ==== Diverso test ==== | ||
- | Replichiamo anche i casi in cui il test ha luogo su un archivio vuoto (di tipo agi) sul quel viene inserito un numero preciso e sempre uguale di documenti.\\ In questo modo i test effettuati su due diversi server dovrebbero essere maggiormente rappresentativi. | ||
- | |||
- | Nel momento in cui questi test vengono effettuati il server 23 con B+Tree produce ancora comportamenti imprecisi, per questa ragione il test viene effettuato solo sul BTree pur sapendo che il B+Tree, nei test poco affidabili realizzati sino ad ora, spunta dei tempi __molto peggiori__. | ||
- | |||
- | ^ Server | ||
- | ^ 23-pre-bt | ||
- | ^ 23-post-bt | ||
- | |||
- | Il server post-natalizio compie una quantità di I/O assolutamente differente ed in questo modo dovrebbe ottenere risultati estremamente migliori ed invece impiega un tempo superiore.\\ A questo punto vale la pena di valutare quanto tempo spendiamo per i locking che ora facciamo ampiamente sulle headers. | ||
- | |||
- | Dopo aver compiuto interventi tesi proprio ad identificare i casi di lettura e scriuttura ma ancor più di locking più rappresentativi nelle operazioni di acquisizione documenti, riconducendo il comportamento del server al suo comportamento originario, i test vengono effettuati nuovamente nelle stesse condizioni.\\ Poiché ad una prima verifica ci siamo resi conto che non si erano ottenute variazioni significative, | ||
- | |||
- | ^ Server | ||
- | ^ 23-pre-bt | 1657 | ||
- | ^ 23-post-bt\\ < | ||
- | ^ 23-post-bt\\ < | ||
- | |||
- | ==== Considerazioni ==== | ||
- | |||
- | Il confronto tra i due test effettuati in chiusura di questo sviluppo evidenziano come la riduzione in quanto ad operazioni di lettura, scrittura e posizionamento sia decisamente tangibile. Essa si fa sentire maggiormente nel caso di B+Tree e meno nel caso del BTree ma pone comunque in evidenza che le operazioni di salvataggio avvengono mediamente in un tempo inferiore compiendo molte meno operazioni di accesso al disco.\\ Cresce, di fatto, il numero di // | ||
- | |||
- | Il server 23 pre e post natalizio ha un comportamento corretto se utilizzato con il BTree mentre nello sviluppo del B+Tree dev' |
/data/attic/documentazione_3di_riservata/extraway/piattaforma_extraway_hot/appunti.1263292254.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)