/
index.html
92 lines (72 loc) · 4.3 KB
/
index.html
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>jkff/valz-doc @ GitHub</title>
<style type="text/css">
body {
margin-top: 1.0em;
background-color: #ea533c;
font-family: "Helvetica,Arial,FreeSans";
color: #ffffff;
}
#container {
margin: 0 auto;
width: 700px;
}
h1 { font-size: 3.8em; color: #15acc3; margin-bottom: 3px; }
h1 .small { font-size: 0.4em; }
h1 a { text-decoration: none }
h2 { font-size: 1.5em; color: #15acc3; }
h3 { text-align: center; color: #15acc3; }
a { color: #15acc3; }
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
.download { float: right; }
pre { background: #000; color: #fff; padding: 15px;}
hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
.footer { text-align:center; padding-top:30px; font-style: italic; }
</style>
</head>
<body>
<a href="http://github.com/jkff/valz-doc"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
<div id="container">
<div class="download">
<a href="http://github.com/jkff/valz-doc/zipball/master">
<img border="0" width="90" src="http://github.com/images/modules/download/zip.png"></a>
<a href="http://github.com/jkff/valz-doc/tarball/master">
<img border="0" width="90" src="http://github.com/images/modules/download/tar.png"></a>
</div>
<h1><a href="http://github.com/jkff/valz-doc">valz-doc</a>
<span class="small">by <a href="http://github.com/jkff">jkff</a></span></h1>
<div class="description">
Valz documentation
</div>
<p>There are Valz (singular: val): named aggregate variables with specified aggregation laws. An aggregation law tells how to sum several values of a val into a total value (mathematically speaking, an aggregation law is a commutative monoid). For example:
Val "totalVisits" of type "int" whose aggregation law is simple integer sum. Each visit leads to summing the current value of totalVisits with 1.
Val "visitorNicks" of type "set of strings" whose aggretation law is set union. When John visits us, this leads to summing the current value of "visitorNicks" with a singleton set {"John"}.
Val "visitsByCountry" of type "string -> int" whose aggretation law is map union with conflict resolution by summing the values for the conflicted key. When Franz visits us, this leads to summing the current value of "visitsByCountry" with a singleton map {"Germany" -> 1}.
Valz have clients and aggregation servers. Clients submit data and servers aggregate it. Some UI shows it.
There is an API for valz. It allows you to once register a val and then update its value repeatedly. For example, you register the visitorNicks val in your initialization code and update it in the request handling code. Valz are as easy to use (and serve much the same purpose) as logging statements.
The difference between valz and logs is that parsing logs is tiresome and not real-time, t.i. with logs you can't watch the statistics of a live system, you can only analyze its logs postfactum, whereas with valz you can monitor live data.
The monoidal nature of valz allows for a very efficient and scalable implementation, because aggregation may be performed on several levels, from client-side batching to building a distributed hierarchy of aggregation servers.</p><h2>Authors</h2>
<p>Eugene Kirpichov, Nikolay Pakudin, Andrey Vlasovskikh</p>
<h2>Contact</h2>
<p> (ekirpichov@gmail.com)<br/> </p>
<h2>Download</h2>
<p>
You can download this project in either
<a href="http://github.com/jkff/valz-doc/zipball/master">zip</a> or
<a href="http://github.com/jkff/valz-doc/tarball/master">tar</a> formats.
</p>
<p>You can also clone the project with <a href="http://git-scm.com">Git</a>
by running:
<pre>$ git clone git://github.com/jkff/valz-doc</pre>
</p>
<div class="footer">
get the source code on GitHub : <a href="http://github.com/jkff/valz-doc">jkff/valz-doc</a>
</div>
</div>
</body>
</html>