Show README syntax highlighted
The "application" is Reliable Data Dissemination (RDD). For now the top level dir
is just called "block".
RDD is made up of eight emstar components, each residing in its own directory:
* haveblock
* needblock
* ackblock
* broadcastblock
* deleteblock
* receiveblock
* sinkstatus
* sinkgradient
Current code layout:
* include/ - application-wide headers
* src/ - application-wide sources
* test/ - all test and tool related apps
* testtabs/ - all emrun and emsim files
* haveblock/ - source for haveblock
* needblock/ -
* ackblock/ -
* broadcastblock/
RDD Fragment:
The RDD Fragment is data structure beginning with a block_t and then some small
amount of payload. All data currently lives in SIM_PATH("/dev/blocks_repository")
RDD Fragment on disk:
/dev/block/blocks_dir/2005_192.168.1.234_23987493/0_100_1232432
^^^^GUID^^^^^^^^^^^^^^^^^^^ A B C
GUID = User specific. The format is opaque to RDD.
RDD assumes it to be globally unique however,
so it probably has things like time, IP, etc.
A = offset into file
B = length of this block
C = total length of file
So the above file (0_100_1232432) is the first 100 bytes of a 1232432
byte user file. The original user file name is GUID.
* The file actually looks like:
data: [ block_t ] [ user-data ]
bits: sizeof(block_t) arbitrary
Defragmenting user data:
* I have to write a tool that strips the first sizeof(block_t) bytes off of each
fragment and then reassembles the results in order, assuming you have all the
peices.
See more files for this project here