Download presentation
Presentation is loading. Please wait.
Published byEmma Frost Modified over 11 years ago
1
Web100 Userland Status and future August 2, 2002 John Estabrook
2
8.2.2002www.web100.org 2 TOC Design constraints of the Web100 library Analysis of a simple Web100 program Changes to Userland since Alpha 1.1 Future directions
3
8.2.2002www.web100.org 3 Design constraints of the Web100 library Kernel API constraints: Proc interface and behavior of CID entries Previously, CID subdirectories would persist for 30 seconds after close of connection New connections could immediately re-use CIDs Recent modifications to ref-count CID fds
4
8.2.2002www.web100.org 4 …constraints Problem space constraints 3 dimensions of space, 1 of time: Agent Group Connection 1 of time
5
8.2.2002www.web100.org 5 Agent Agent: roughly, think of host Previously, there was one defined Agent type: WEB100_AGENT_TYPE_LOCAL One imagined future extensions, say, WEB100_AGENT_TYPE_REMOTE
6
8.2.2002www.web100.org 6 Agent More precisely, an Agent is (tantamount to) the pertinent header file (/proc/web100/header) As such, the notion of Agent accommodates different kernel versions; live vs. logged data; local vs. remote The addition of logging functionality (since Alpha 1.1) has introduced WEB100_AGENT_TYPE_LOG
7
8.2.2002www.web100.org 7 Group A Group is a collection of Web100 vars As defined in the header file (e.g. Spec, Read, Tune, Test, etc.) A Group of vars is read atomically at the kernel level The exists a fundamental tension between the plurality of Groups and the size of Groups (= number of vars)
8
8.2.2002www.web100.org 8 Connection Self-explanatory The definition of the Connection structure, and its use, has direct dependence on kernel API (/proc interface) Connections are inherently ephemeral (refresh_connections anyone?)
9
8.2.2002www.web100.org 9 Constraints conclusion The triumvirate of Agent/Group/Connection appears to be correct, and has not fundamentally changed since pre-Alpha
10
8.2.2002www.web100.org 10 Analysis of a simple Web100 program Web100 API Yoga: (live, local connection) agent = agent_attach(TYPE_LOCAL, info); group = web100_group_find(agent, groupname); conn = connection_find(agent, IP|CID); snap = snapshot_alloc(group, conn); snap(snap); … var = var_find(group, name); snap_read(var, snap, …); | delta_any(); snapshot_free(snap);
11
8.2.2002www.web100.org 11 Changes to Userland since Alpha 1.1 Done: Under-the-hood matters (of course) Logging functionality CID discovery Current & future…
12
8.2.2002www.web100.org 12 Logging An early request/requirement Original design suggested implicit logging (single flag on/off; log file defined by ENV variable); hooks were in place in Alpha 1.1 Later use (e.g. Pathprobe) required explicit logging, now in place.
13
8.2.2002www.web100.org 13 Log read, analogous to live read: Web100 API LOG Yoga: agent = agent_attach(TYPE_LOG, info); group = web100_get_log_group(log); [conn = connection_find(agent, IP|CID);] snap = snapshot_alloc_from_log(log); snap_from_log(snap, log); var = var_find(group, name); snap_read(var, snap, …); | delta_any(); snapshot_free(snap);
14
8.2.2002www.web100.org 14 Log write: Involves 3 basic functions (self- explanatory) web100_log* web100_log_open_write(char *logname, web100_connection *conn, web100_group *group); int web100_log_write(web100_log *log, web100_snapshot *snap); int web100_log_close_write(web100_log *log);
15
8.2.2002www.web100.org 15 CID discovery Another early request/requirement Gui version available in 1.1 via sockdata.c (via DTB menu) Sockdata.c, like ps, netstat, sockstat, wanders through /proc, collating fd info (PID/UID/Cmdline), socket info, CIDs Rationalized in lib as connection_info
16
8.2.2002www.web100.org 16 …CID discovery Issues for discussion: Pubicly exposed struct, so as to allow hints (akin to getaddrinfo); i.e., allow users to search based on given UID, or Cmdline, or Port # Pros/Cons
17
8.2.2002www.web100.org 17 Changes to Userland since Alpha 1.1; CURRENT IPv6 support Up to GTK2 Subtleties (under-the-hood) Compatibility issues
18
8.2.2002www.web100.org 18 Changes to Userland since Alpha 1.1; Future Gui reps for Pathprobe Gui reps for log/playback function Resolution/rationalization of under-the- hood matters (almost done, 8/1/02) Demo versions of everything (skins )
19
8.2.2002www.web100.org 19 Future, long term: Blue Sky
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.