Megatest

Check-in [559228be40]
Login
Overview
Comment:Added more detail to server/client flow
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | inmem-per-run-db-per-run-server
Files: files | file ages | folders
SHA1: 559228be4038adca98657934a1e4a018b9760981
User & Date: matt on 2014-02-09 23:54:44
Other Links: branch diff | manifest | tags
Context
2014-02-13
16:51
Added pdf and regenerated Closed-Leaf check-in: 6d98d0aa7d user: mrwellan tags: inmem-per-run-db-per-run-server
2014-02-10
19:56
Re-re-factor server handling check-in: f68ed29f16 user: matt tags: re-re-factor-server
2014-02-09
23:54
Added more detail to server/client flow check-in: 559228be40 user: matt tags: inmem-per-run-db-per-run-server
22:55
Updated docs with proposed server spec check-in: 180fe4e32d user: matt tags: inmem-per-run-db-per-run-server
Changes

Modified docs/manual/server.dot from [aacdcc6c75] to [4efd80e71a].

1



2
3
4
5
6
7



8
9
10
11



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37




38

39
40
41



42
43
44
45



46
47
digraph G {



    subgraph cluster_0 {
        node [style=filled];
	
	start_client -> find_server;
	find_server -> connect [label=found];




	find_server -> start_server[label=not_found];
	start_server -> delay;

	connect -> read_write;



	read_write -> timeout -> "server_dead?";
	read_write -> wrong_server -> delay;
	read_write -> read_write;
	
	"server_dead?" -> remove_record [label="yes (too many tries)"];
	remove_record -> find_server;
	"server_dead?" -> delay [label=no];

	delay -> find_server;	

        label = "client";
        color=green;
    }

    subgraph cluster_1 {
        node [style=filled];
	
	start_server -> "server_running?";
	"server_running?" -> set_available [label="no"];
	"server_running?" -> delay_10s [label="yes"];
	delay_10s -> "still_running?";
	"still_running?" -> exit [label=yes];
	"still_running?" -> ping_server;
	ping_server -> "server_running?" [label=alive];
	ping_server -> remove_server_record [label=dead];
	remove_server_record -> set_available;




	handle_requests -> read_write;


	set_available -> avail_delay [label="delay 3s"];
	avail_delay -> handle_requests;



	
        label = "server";
        color=brown;
    }



    read_write -> handle_requests;
}

>
>
>



|
|

>
>
>
|
|

|
>
>
>


|


|


|










|
|
|
|
|


>
>
>
>
|
>

|
|
>
>
>




>
>
>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
digraph G {

    // put client after server so server_start node is visible
    //
    subgraph cluster_0 {
        node [style=filled];
	
	start_client -> lookup_server;
	lookup_server -> connect [label=found];

	lookup_server -> "server_available?";
	"server_available?" -> delay [label=yes];
	"server_available?" -> client_start_server [label=no];

	client_start_server -> delay;

	connect -> login;
	login -> read_write [label=success];
	login -> "server_dead?" [label=fail];

	read_write -> timeout -> "server_dead?";
	read_write -> wrong_server -> delay;
	// read_write -> read_write;
	
	"server_dead?" -> remove_record [label="yes (too many tries)"];
	remove_record -> lookup_server;
	"server_dead?" -> delay [label=no];

	delay -> lookup_server;	

        label = "client";
        color=green;
    }

    subgraph cluster_1 {
        node [style=filled];
	
	start_server -> "server_running?";
	"server_running?" -> set_available [label="no"];
	"server_running?" -> delay_2s [label="yes"];
	delay_2s -> "still_running?";
	"still_running?" -> ping_server [label=yes];
	"still_running?" -> set_available [label=no];
	ping_server -> exit [label=alive];
	ping_server -> remove_server_record [label=dead];
	remove_server_record -> set_available;
	set_available -> avail_delay [label="delay 3s"];
	avail_delay -> "first_in_queue?";

	"first_in_queue?" -> set_running [label=yes];
	set_running -> handle_requests;
	"first_in_queue?" -> "server_running?" [label=no];

	handle_requests -> start_shutdown [label="no traffic"];
	handle_requests -> shutdown_request;
	start_shutdown -> shutdown_delay;
	shutdown_request -> shutdown_delay;
	shutdown_delay -> exit;
	
        label = "server";
        color=brown;
    }

    client_start_server -> start_server;
    handle_requests -> read_write;
    read_write -> handle_requests;
}