diff --git a/docs/JOURNAL_FILE_FORMAT.md b/docs/JOURNAL_FILE_FORMAT.md index e87a758026..3910669899 100644 --- a/docs/JOURNAL_FILE_FORMAT.md +++ b/docs/JOURNAL_FILE_FORMAT.md @@ -517,7 +517,7 @@ _packed_ struct HashTableObject { ``` The structure of both DATA_HASH_TABLE and FIELD_HASH_TABLE objects are -identical. They implement a simple hash table, which each cell containing +identical. They implement a simple hash table, with each cell containing offsets to the head and tail of the singly linked list of the DATA and FIELD objects, respectively. DATA's and FIELD's next_hash_offset field are used to chain up the objects. Empty cells have both offsets set to 0. @@ -651,15 +651,15 @@ look up the FIELD object and follow the chain of links to all DATA it includes. ### Writing -When an entry is appended to the journal for each of its data fields the data -hash table should be checked. If the data field does not yet exist in the file -it should be appended and added to the data hash table. When a field data -object is added the field hash table should be checked for the field name of +When an entry is appended to the journal, for each of its data fields the data +hash table should be checked. If the data field does not yet exist in the file, +it should be appended and added to the data hash table. When a data field's data +object is added, the field hash table should be checked for the field name of the data field, and a field object be added if necessary. After all data fields (and recursively all field names) of the new entry are appended and linked up -in the hashtables the entry object should be appended and linked up too. +in the hashtables, the entry object should be appended and linked up too. -In regular intervals a tag object should be written if sealing is enabled (see +At regular intervals a tag object should be written if sealing is enabled (see above). Before the file is closed a tag should be written too, to seal it off. Before writing an object, time and disk space limits should be checked and