/cache

Primary LanguageC++

/*
 *@ovenyang
 *
 */
1.程序通过读取输入文件来确定各个节点的属性,拥有的数据,要做的动作等等.
不同节点有不同的定义文件,他们均保存在./source/node-define目录下.
该目录下有一nodes文件,记录所有节点名,文件格式如下:

node1_name
node2_name

每行除行尾换行外,不得出现任何空白符,字符串作为节点名字。这些节点名字
对应该目录下的一个文件名与名字相同的文件,这些文件表示节点的属性。
注意:该目录下不应该出现其他文件。

    输入文件格式:三个定义块的顺序不允许修改,operation下的数字表示发出请求的时间,必须保证从上到下是升序的
    [property]
    interface_quantity 7    //property_name property_value
    fib_capacity 10000
    pit_capacity 10000
    cs_capacity 10000
    pref_capacity 10000
    popu_capacity 10000
    capacity 10000000
    [data]
    file/a 123              //content_name content_size
    file/b 4534
    media/a 800
    media/b 98
    audio/a 38
    audio/b 442
    dand/dfsfkjds 809
    ghjgfsdjkf/fdsafhks 1937
    [operation]
    1 file/a                //time content_name
    3 media/a
2.程序通过文件来定义各个节点间的连接,文件为./source/link
    文件格式如下:
    node1 node2
    上面的连接视为双向连接,不允许定义单向连接
    节点必须存在
    一条连接不能定义两次
    node1 node2
    node1 node3
3.每个节点有一个日志文件,在log目录下,文件名与节点名相同。日志每行即为一个动作,格式有三种,
  依据每行开始的关键字区分,分别为store replace get.
        store content_name size time
    表示在time时间节点缓存了content_name,其大小为size.且没有产生替换
        replace replaced_data_size content_name size time
    表示在time时间节点缓存了content_name,其大小为size.并删除了大小的replaced_data_size的内容.
        get content_name size from_cache hop time
    表示在time时间节点对名为content_name的内容的请求得到应答,其大小为size.
    from_cache有两个值,为cache时表示该应答是由缓存产生的,为disk时表示该应答是由某个节点本身内容产生的.
    hop表示由产生应答的节点到当前节点经过的跳数.(相邻节点间跳数为1)