Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [OBJFS] Serializzare oggetti in formato binario

    holaz

    dunque...sto implementando, molto lentamente, e per totale passatempo, una libreria che mi permetta di gestire un ipotetico file system ad oggetti...xora...un semplice file trattato a mo di hd... (del resto è quasi la stessa cosa...quasi...)

    In pratica tutto sul filesystem è una serie di oggetti...ed ogni oggetto è diviso in CHUNK...in pratica gli offetti sul filesystem sono una collezione di oggetti CHUNK...ogni oggetto ha poi le sue propietà

    ovviamente ci sarà un oggetto entità base che comprenderà delle propietà essenziali come data di creazione, autore, data di modifica ed altro ancora...poi su questo un entità DataContainer che , per l'appunto, è un contenitore di dati ... su questa ci sta l'oggetto file ... che implementa tutta una serie di metodi e propietà per gestire i file e questo viene poi esteso da tutti gli altri oggetti ... ad es l'oggetto MP3 che avrà in più, tra le propietà, le informazioni dell'id e cosi via...o l'svn che conterrà la lista dei cambiamenti di un file e cosi via...insomma sto pronvando a fare una cosa estremametne flessibile...
    Una delle cose più carine è che la grandezza di ogni chunk e dinamica...ovviamente è multipla di 512byte, quindi il file system sarà ancora più flessibile e si adatterà senza problemi ai file di piccole e grandi dimensioni.
    Lo spazio sprecato, in media, sarà leggermente di più, perché, in media, avendo un minor numero di blocchi, non ho da salvare informazioni aggiuntive per ognuno di questo, anche se in media ogni mio blocco, chunk, ne ha di +...xo +/- la differenza sarà nulla...tranne se scrivi file di 1 byte...ma alla fin fine su qualsiasi file system un file occupa sempre una dimensione minima

    ovvio premettere che tanto una cosa del genere, qualunque sia la sua applicazione, se non gli si scrive un apposito so, non sarà mai sfruttato a pieno...ma come ho detto lo sto facendo solo per passa tempo e studio

    diciamo che è +/- questo il principio base...ovviamente all'inizio del FS ci sarà un oggetto ROOT che definisce le propietà del filesystem, avrà una tabella dello spazio libero...una tabella degli oggetto con un identificatore univoco da 8 byte (un hash) ed altro ancora

    fatta questa mega introduzione (che go fatto per farvi capire +/- il xche di questa domanda)

    a me serve, se avete qualche link o qualche idea, un sistema efficente per serializzare oggetti in formato binario spaccandoli in base a dei criteri che stabilisco a run-time...

    +/- ne ho studiato uno, però non mi può serializzare collezioni è questo può risultare fastidioso. Non può serializzare xche a me serve far si che all'interno di un oggetto possa riconoscere facilmente le propietà...se a me interessa leggere l'autore, non voglio dover tirare fuori TUTTO e poi in memoria prendere la roba...ma voglio su FS stesso leggere i nomi delle propietà (che nel mio caso, o meglio dire, al momento, le ho "immaginate" come un hash di 2 byte) e quindi estrarre il contenuto e confrontarlo.

    Se ad esempio voglio fare una ricerca di tutti gli oggetti Filmati in base all'autore...devo avere tutti questi facilmente reperibili

    Per leggere la propietà...in pratica all'avvio quando carico i plugin creo una collezione di tabelle nella quale ogni tabella contiene un elenco di propietà -> hash della propietà ... in modo da risparmiare spazio su disco...potrei anche far si che nell'oggetto sia presente un byte singolo che mi identifichi la propietà tra le sue...o meglio 2 onde evitare rischi (ma questo alla fin fine è un dettaglio che non infastidisce minimamente la funzionalità)

    ok...se c'avete capito qualcosa...avete qualche idea o qualche link?

    PS:
    http://citeseer.ist.psu.edu/704195.html
    http://www.dtc.umn.edu/resources/welchpp.pdf
    http://www.lustre.org/
    http://www.snia.org/tech_activities/...age_Models.doc

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.