Repositories » TXT0
Clone URL:  
Pushed to one repository · View In Graph Contained in v0.1 and tip

Recipes for building an inverted index.

Changeset 058e861a0197

Parent 11bda80192f6

by Rup Palchowdhury

Changes to 18 files · Browse files at 058e861a0197 Showing diff from parent 11bda80192f6 Diff from another changeset...

Change 1 of 1 Show Entire File .hgignore Stacked
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
@@ -0,0 +1,7 @@
+syntax: glob + +*.o +*~ +.d/* +log/* +*.t
Change 1 of 1 Show Entire File Makefile Stacked
 
18
19
20
21
 
 
 
22
23
24
 
18
19
20
 
21
22
23
24
25
26
@@ -18,7 +18,9 @@
  tokenizer.c \   tok.c \   parser.c \ - crc.c + crc.c \ + post.c \ + term.c    OBJ = $(patsubst %.c,$(O)/%.o,$(SRC))  
Change 1 of 1 Show Entire File ii.c Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
@@ -0,0 +1,87 @@
+#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <kak/kbuffer.h> +#include <kak/klog.h> +#include <kak/klist.h> +#include <kak/ktree.h> +#include "post.h" +#include "term.h" +#include "tokenizer.h" +#include "tok.h" + +int main(void) +{ + int i, tlen, doclen, idlen; + Tok *tok; + Tokdoc *tokdoc; + TNode *t; + Node *p; + Post *post; + Term *term; + + unsigned row, col, ndoc; + char *docid; + + t = NULL; + + row = 100; col = 15; + docid = (char *)malloc(row * col); + memset(docid, '\0', row * col); + + ndoc = 0; + + while((tok = read_t(stdin)) != NULL) { + + if (ndoc == row) { + docid = (char *)realloc(docid, (row <<= 1) * col); + memset(docid + ndoc * col, '\0', (row - ndoc) * col); + } + + for (p = tok->list; p != NULL; p = p->next) { + + tokdoc = p->data; + doclen = tokdoc->header->block[RES1DOCLEN]; + idlen = tokdoc->header->block[RES2IDLEN]; + + memcpy(docid + ndoc * col, tokdoc->id->b, idlen); + + /* pick terms one by one and add to BST */ + + /* It's assumed that tokdoc->doc->b is at least on + * byte longer than its contents */ + + for (i = 0; i <= doclen; i++) { + if (((char *)tokdoc->doc->b)[i] == ' ' || i == doclen) { + tlen = i - tokdoc->doc->i; + ((char *)tokdoc->doc->b)[i] = '\0'; + post = newpost(ndoc, 1); + term = newterm((char *)tokdoc->doc->p, post); + + /* if term strings match + walk the list till docid matches + list->data->tf++ + else + add new post to end of list + t->data->df++ + else + attach term to tree as a new node + */ + + t = insert(t, newtnode((void *)term), termcmp, + term_match_handler); + shiftpointer(tokdoc->doc, tlen + 1); + } + } + + ndoc++; + } + } + + applyinorder(t, printterm, "%s %d "); + + /* for (i = 0; i < ndoc; i++) */ + /* printf("%s\n", docid + i * col); */ + + return 0; +}
Change 1 of 1 Show Entire File post.c Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
@@ -0,0 +1,31 @@
+#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "post.h" + +Post *newpost(unsigned id, unsigned tf) +{ + Post *t; + t = (Post *)malloc(sizeof(Post)); + t->id = id; + t->tf = tf; + return t; +} + +int postcmp(void *t, void *t1) +{ + return ((Post *)t)->id - ((Post *)t1)->id; +} + +void printpost(void *d, void *arg) +{ + char *fmt; + fmt = (char *)arg; + printf(fmt, ((Post *)d)->id, ((Post *)d)->tf); +} + +void freepost(void *t) +{ + if (t != NULL) + free(t); +}
Change 1 of 1 Show Entire File post.h Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
@@ -0,0 +1,11 @@
+typedef struct Post Post; + +struct Post { + unsigned id; + unsigned tf; +}; + +Post *newpost(unsigned, unsigned); +int postcmp(void*, void*); +void printpost(void*, void*); +void freepost(void*);
Change 1 of 1 Show Entire File term.c Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
@@ -0,0 +1,69 @@
+#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "kak/klist.h" +#include "post.h" +#include "term.h" + +Term *newterm(char *s, Post *p) +{ + Term *t; + t = (Term *)malloc(sizeof(Term)); + t->s = (char *)malloc(strlen(s)); + strcpy(t->s, s); + t->df = 1; + t->list = newnode(p); + /* t->list = NULL; */ + /* t->list = addfront(t->list, newpost((void *)));; */ + return t; +} + +int termcmp(void *t, void *t1) +{ + return strcmp(((Term *)t)->s, ((Term *)t1)->s); +} + +int term_match_handler(void *t_, void *t1_) +{ + Term *t, *t1; + Node *p; + + t = (Term *)t_; + t1 = (Term *)t1_; + + if((p = lookup(t->list, t1->list, postcmp)) == NULL) { + t->list = addend(t->list, t1->list); + t->df++; + } + else { + ((Post *)p->data)->tf++; + } + return 0; +} + +void freeterm(void *t_) +{ + Term *t; + t = (Term *)t_; + if (t != NULL) { + if (t->s != NULL) + free(t->s); + if (t->list != NULL) + freeall(t->list, freepost); + free(t); + } +} + +void printterm(void *d, void *arg) +{ + char *fmt; + fmt = (char *)arg; + printf(fmt, ((Term *)d)->s, ((Term *)d)->df); + apply(((Term *)d)->list, printpost, "%d:%d "); + printf("\n"); +} + +unsigned int hashterm(unsigned int (*fn)(char*, int), void *data, int modulo) +{ + return (*fn)(((Term *)data)->s, modulo); +}
Change 1 of 1 Show Entire File term.h Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@@ -0,0 +1,14 @@
+typedef struct Term Term; + +struct Term { + char *s; + unsigned df; + Node *list; +}; + +Term *newterm(char*, Post*); +int termcmp(void*, void*); +int term_match_handler(void*, void*); +void freeterm(void*); +void printterm(void*, void*); +unsigned int hashterm(unsigned (*fn)(char*, int), void*, int);
Show Entire File test/​alice.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File test/​big.out Stacked
 
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,230 +0,0 @@
-MG CRC V T BYTES N R BO -41 169037966 1 0 962838 227 3 32 -CRC BYTES RSRC2 -3952458608 2991 13 -4180596825 4730 13 -2603024509 3334 13 -2987787322 2764 13 -4084004272 5052 13 -3380200943 5835 13 -3819459172 4933 13 -2609290778 6978 13 -2431927993 5566 13 -3388015699 4587 13 -906055163 5322 13 -16106216 5201 13 -938852138 5889 13 -781890933 4517 13 -2195828880 4751 13 -3523227799 5593 13 -4265303115 4214 13 -3707907638 3872 13 -2009298664 3506 13 -575874746 2966 13 -3506339302 3311 13 -133480422 3178 13 -2509484477 3746 13 -3794640683 3509 13 -3351139712 3902 13 -412411444 6653 13 -4140561728 719 13 -1807076554 13352 13 -26431906 4531 13 -1375837495 3810 13 -1006039288 3279 13 -3242596812 5272 13 -1538116916 631 13 -4168295957 8466 13 -1302802656 3622 13 -2006363633 3778 13 -3472146439 1898 13 -1978981996 1409 13 -2107710363 946 13 -1074751083 4607 13 -2294917085 3226 13 -1870736336 997 13 -2712923136 1207 13 -865069572 1326 13 -1076618723 4000 13 -392408174 4879 13 -705424812 3724 13 -619334514 5147 13 -4096661586 4622 13 -973638959 3860 13 -2079979648 1674 13 -813855634 5013 13 -3099350440 3614 13 -3817261412 1435 13 -3564327096 1576 13 -4107303729 4367 13 -4162289021 4174 13 -1741989643 5474 13 -3884446162 3044 13 -2024276653 2836 13 -606221974 2617 13 -4160521530 2070 13 -3412058102 6545 13 -2615406904 20311 13 -2052931854 6469 13 -1729394907 7846 13 -34888158 5869 13 -640224006 6678 13 -993431315 5699 13 -3173126984 6846 13 -3544268353 4897 13 -3437302198 3922 13 -1390412822 5454 13 -2052678690 5281 13 -2174221159 7742 13 -2152304676 3025 13 -2926780970 1215 13 -2939177932 1894 13 -630509569 1627 13 -2885598578 2175 13 -56103701 1528 13 -3154743790 2223 13 -3141758185 721 13 -33326339 1383 13 -506330287 1111 13 -739901609 953 13 -3607068541 720 13 -1762721079 2394 13 -3075102083 999 13 -3857294159 997 13 -2391158583 1021 13 -2030790662 1107 13 -2787931618 969 13 -497408694 1100 13 -2543097490 915 13 -288387595 1188 13 -1074141573 1038 13 -3991313986 957 13 -1299252534 785 13 -3543133149 1043 13 -810433522 1006 13 -1858399967 1256 13 -1573755693 1157 13 -2085563328 951 13 -4141520346 830 13 -1554391084 1168 13 -4110243330 1251 13 -611837462 1059 13 -525523161 1493 13 -1965983515 1543 13 -1697459641 1865 13 -1104922517 1638 13 -2568973614 1447 13 -1551545644 1546 13 -1186901197 1417 13 -1440447057 1620 13 -1838299568 1337 13 -3553775430 1266 13 -1059795212 1341 13 -120735459 1212 13 -1368528429 1416 13 -986306003 1198 13 -3518197070 1246 13 -3995884515 1194 13 -903244080 1366 13 -1849844065 1365 13 -3327649755 1317 13 -2203743065 1302 13 -3983327727 1479 13 -3890386091 1338 13 -2515113501 1479 13 -2423315224 1674 13 -290209643 1292 13 -3193944903 761 13 -2998511305 1080 13 -3381557804 1585 13 -1661168854 1560 13 -2069049030 591 13 -3529664844 5951 13 -1312284188 5191 13 -291743233 2411 13 -1812966710 6835 13 -2174636846 2520 13 -670174851 1431 13 -1932873654 3011 13 -1597361638 804 13 -59598318 6035 13 -2269520878 409 13 -3498142390 17042 13 -3482711408 20102 13 -2563397332 16829 13 -4222326415 13959 13 -660985568 11544 13 -1423512806 10721 13 -1306074334 14675 13 -258826600 12920 13 -449475310 18850 13 -2350922497 25757 13 -2366256303 11119 13 -215614198 6710 13 -3667537775 3783 13 -993300258 1198 13 -1362805935 1396 13 -1918043544 1090 13 -2041784928 1007 13 -135142202 844 13 -166618355 849 13 -3881577619 875 13 -791862182 1209 13 -3315318989 963 13 -1656545570 945 13 -1737403637 1069 13 -1639795272 964 13 -1019142940 876 13 -890751442 952 13 -4221374085 796 13 -2222705165 879 13 -1270008051 949 13 -1104304484 850 13 -25904953 1178 13 -3914112955 1078 13 -276099111 1079 13 -613649907 965 13 -1919857326 1040 13 -3108793425 1065 13 -3793294114 1129 13 -3298286411 1024 13 -3392674745 1312 13 -851560912 788 13 -2787928750 882 13 -2738467249 1075 13 -318840841 1283 13 -2107257226 1510 13 -4289550963 1284 13 -2203787076 1116 13 -3730976554 6662 13 -542597751 9967 13 -3736706221 1012 13 -2178581706 7976 13 -388767019 22139 13 -596444352 14272 13 -574814969 30103 13 -3437068797 25849 13 -1092599606 13421 13 -2176314925 19740 13 -2963402358 9595 13 -2090815261 10778 13 -828250602 1363 13 -3843542618 999 13 -2283523746 1020 13 -4276895247 1352 13 -77922060 1126 13 -1227103602 1039 13 -3998858903 1194 13 -3025965497 1128 13 -1089585828 921 13 -2356047571 1118 13 -1737155699 933 13 -3073072316 536 13 -743724141 1282 13 -3453913025 1575 13 -230427021 1651 13 -955324241 1512 13 -3665569555 1763 13 -3726957448 36456 13 -1694611063 3974 13 -4077357517 50184 13
Change 1 of 1 Show Entire File test/​smalltrecdoc.out Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,19 +0,0 @@
- Magic 41 - CRC32 42 - Version 1 - Type 0 - Length 7771 - N 2 - R 3 - Offset 32 - - resource0 42 - resource1 2991 - resource2 13 -:08 519 720 ov 08 519 620 m pc week june 4 1990 v7 n22 p84 2 full text copyright ziff davis publishing co 1990 m ibm ps 2 model 80 a31 hardware review one of five evaluations of microcomputers with file server capabilities evaluation gerber barry tracy martha chandler doug m ibm ps 2 80 a31 fileserver priced at 18 880 is a relatively low priced machine with important server features including its 25 mhz 386 central processing unit and a small computer systems interface based disk adapter and drives p the system can be modified to hold six hard disk drives but includes five 3 50 inch ones p netware 386 ran without a hitch on the model 80 a31 o however pc week could not get novell s netware 386 driver for ibm s scsi controller and the dx nlm exerciser to work together well p the system can be used as a low end computer aided design machine according to users m company international business machines corp products o ticker ibm o product ibm ps 2 80 a31 microcomputer o topic evaluation file servers microcomputers m ibm m ps 2 model 80 a31 m the model 80 a31 is housed in a standard ps 2 tower chassis p its important server oriented features are its 25mhz 386 cpu and a scsi based disk adapter and drives p a caching and non caching version of the scsi adapter are available p pc week s test machine was equipped with the faster caching version the system holds five 3 1 2 inch hard disk drives but can be modified to hold six m pc week could not get novell s netware 386 driver for ibm s scsi controller and the dx nlm exerciser developed by netframe and pc week to work together properly p technical staff from novell and netframe were unable to resolve the problem in time for pc week to test the model 80 a31 s disk i o m aside from the dx nlm test netware 386 ran flawlessly on the model 80 a31 m ibm can be reached in armonk n y at 800 426 2468 m buyers say p m a relatively low price was the main reason michael bourne systems analyst for ohio state university in columbus decided to go with the model 80 a31 o we get 40 percent off he said p i d like to have a compaq systempro but pricewise you can t beat the ibm m while the systempro has been designed exclusively as a high performance server the model 80 a31 is more flexible bourne noted p the model 80 a31 can be a low end cad machine a small network server an excellent stand alone os 2 workstation he said p you have to have a pretty big network to require a systempro m he currently uses the model 80 a31 as a stand alone but it will eventually be moved to the university s lan services division to become a file server o we wanted something to simultaneously support dos aix and os 2 with reasonable speed he said m bourne has had some problems with the system p i had 2m bytes of memory die on me i had the vga go flakey i had two or three system board problems and i had a keyboard go out he said p i haven t seen these problems repeated on other ibm models but ibm is always good about repairing on warranty mZF108-519-720: - - resource0 42 - resource1 4730 - resource2 13 -:08 522 878 m pc week june 4 1990 v7 n22 p87 1 full text copyright ziff davis publishing co 1990 m nlms test how well super servers take stress network loadable modules gerber barry m pc week worked with netframe inc to develop and test two netware 386 netware loadable modules nlm that were able to stress a netware server as though a number of workstations were attached to it p this would serve as a server stress test needed in order to evaluate super server products p each nlm s parameters can be adjusted and set before the test is run p in testing one disk controller and one local area network adapter were used p the netware 386 s monitor nlm was loaded to verify server central processing unit utilization p in the end however measuring such performance requires real time testing m topic file servers testing evaluation performance measurement modules m by barry gerber m traditionally server stress tests have been done by attaching a number of workstations to the server through one or more network adapters p the more workstations attached the greater the stress on the server p pc week s applications test suite also takes this approach to server testing m however the i o capacity of super servers like those tested for this review is so high that an unrealistically large number of workstations would be needed to stress them p thus pc week worked with netframe inc to develop and test two netware 386 netware loadable modules nlms that can stress a netware server without any attached workstations m one of these nlms dx nlm tests the i o capacity of disk controllers and drives within a given netware 386 server while the other nlm nx nlm tests the i o capacity of network adapters within the server m dx nlm can be selectively run against any combination of disk controllers and attached disks p similarly nx nlm can be used to test network i o on any set of lan adapters p the two nlms can be run separately or simultaneously m picking parameters m each of the nlms has adjustable parameters that can be set before the test is run p for the disk tests these include access pattern random or sequential test type read or write number of kilobytes per i o 1 to 60 and number of i os concurrently queued per disk drive 1 to 64 p the lan i o nlm allows for the setting of parameters for fixed or random packet size bytes per packet when the fixed packet size option is selected 64 to 1 472 bytes and number of i os concurrently queued per lan adapter 1 to 32 p parameters also can specify whether the test for each adapter should involve only transmission only reception or both transmission and reception m in pc week s tests one disk controller and one lan adapter were used p the following dx nlm and nx nlm parameters were used m dx nlm m access pattern sequential m test type read m number of kilobytes per i o 32 m number of concurrent i os queued m per drive 3 m nx nlm m packet length fixed m bytes per packet 1 154 m number of concurrent sends to queue m per device 3 m device activity transmit m during all tests netware 386 s monitor nlm was loaded to verify server cpu utilization as reported by dx nlm and nx nlm p the ethernet adapter was not connected to a network p instead it was outfitted with a standard ethernet t connector terminated on each side with a standard 50 ohm terminator m the server disk and lan performance were determined by calculating the percent of the server s cpu capacity required for 1m byte per second of either disk or lan i o p this value is obtained by dividing the i o rate obtained in a test in megabytes per second into one and multiplying server utilization for the test by the result of the division m to some extent total server capacity can be estimated by summing the cpu utilization required for each 1m byte increment of disk or lan i o p however this should be done with some caution since capacity will be limited by the actual number of disk controllers or lan adapters that can be plugged into a given server s bus and by the number of disk drives that can be attached to a disk controller m furthermore it should not be assumed that disk and lan i o will be the only processes placing stress on server capacity p print and communications services as well as other applications running on the server may also contribute to this load m finally none of the results obtained with these test nlms should be taken as an indicator of server performance with particular applications and data o measuring such performance requires real world real time testing m binary and source code for dx nlm and nx nlm along with documentation for both can be downloaded from the pc week extra on line service p for instructions on how to access pc week extra see page 173 oZF108-522-878: -
Change 1 of 1 Show Entire File test/​smalltrecdoc.txt Stacked
 
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,203 +0,0 @@
-<DOC> -<DOCNO> ZF108-519-720 </DOCNO> -<DOCID>08 519 720 OV: 08 519 620.&M; </DOCID> - -<JOURNAL>PC Week June 4 1990 v7 n22 p84(2) -* Full Text COPYRIGHT Ziff-Davis Publishing Co. 1990.&M; -</JOURNAL> -<TITLE>IBM: PS/2 Model 80-A31. (Hardware Review) (one of five evaluations -of microcomputers with file server capabilities) (evaluation) -</TITLE> -<AUTHOR>Gerber, Barry; Tracy, Martha; Chandler, Doug.&M; -</AUTHOR> -<SUMMARY>IBM PS/2 80-A31 fileserver, priced at $18,880, is a relatively -low-priced machine with important server features, including its -25-MHz 386 central processing unit and a small computer systems -interface-based disk adapter and drives.&P; The system can be -modified to hold six hard-disk drives, but includes five 3.50-inch -ones.&P; NetWare 386 ran without a hitch on the Model 80-A31.&O; -However, PC Week could not get Novell's NetWare 386 driver for -IBM's SCSI controller, and the DX.NLM exerciser to work together -well.&P; The system can be used as a low-end computer-aided design -machine, according to users.&M; -</SUMMARY> -<DESCRIPT> -Company: International Business Machines Corp. (products).&O; -Ticker: IBM.&O; -Product: IBM PS/2 80 A31 (Microcomputer).&O; -Topic: Evaluation -File Servers -Microcomputers.&M; -</DESCRIPT> -<TEXT> - -IBM&M; - -PS/2 MODEL 80-A31&M; - -The Model 80-A31 is housed in a standard PS/2 tower chassis.&P; Its important -server-oriented features are its 25MHz 386 CPU and a SCSI-based disk adapter -and drives.&P; (A caching and non-caching version of the SCSI adapter are -available.&P; PC Week's test machine was equipped with the faster, caching -version.) The system holds five 3-1/2-inch hard-disk drives, but can be -modified to hold six.&M; - -PC Week could not get Novell's NetWare 386 driver for IBM's SCSI controller, -and the DX.NLM exerciser, developed by NetFrame and PC Week, to work together -properly.&P; Technical staff from Novell and NetFrame were unable to resolve -the problem in time for PC Week to test the Model 80-A31's disk I/O.&M; - -Aside from the DX.NLM test, NetWare 386 ran flawlessly on the Model 80-A31.&M; - -IBM can be reached in Armonk, N.Y., at (800) 426-2468.&M; - ----------- - -Buyers say .&P; . .&M; - -A relatively low price was the main reason Michael Bourne, systems analyst -for Ohio State University in Columbus, decided to go with the Model 80-A31.&O; -"We get 40 percent off," he said.&P; "I'd like to have a Compaq Systempro, but -pricewise, you can't beat the IBM."&M; - -While the Systempro has been designed exclusively as a high-performance -server, the Model 80-A31 is more flexible, Bourne noted.&P; "The Model 80-A31 -can be a low-end CAD machine, a small network server, an excellent -stand-alone OS/2 workstation," he said.&P; "You have to have a pretty big -network to require a Systempro."&M; - -He currently uses the Model 80-A31 as a stand-alone, but it will eventually -be moved to the university's LAN services division to become a file server.&O; -"We wanted something to simultaneously support DOS, AIX and OS/2 with -reasonable speed," he said.&M; - -Bourne has had some problems with the system.&P; "I had 2M bytes of memory die -on me, I had the VGA go flakey, I had two or three system board problems, and -I had a keyboard go out," he said.&P; "I haven't seen these problems repeated -on other IBM models, but IBM is always good about repairing on warranty."&M; -</TEXT> -</DOC> -<DOC> -<DOCNO> ZF108-522-878 </DOCNO> -<DOCID>08 522 878.&M;</DOCID> - -<JOURNAL>PC Week June 4 1990 v7 n22 p87(1) -* Full Text COPYRIGHT Ziff-Davis Publishing Co. 1990.&M; -</JOURNAL> -<TITLE>NLMs test how well super servers take stress. (Network Loadable -Modules) -</TITLE> -<AUTHOR>Gerber, Barry.&M; -</AUTHOR> -<SUMMARY>PC Week worked with NetFrame Inc to develop and test two NetWare -386 NetWare Loadable Modules (NLM) that were able to stress a -NetWare server as though a number of workstations were attached to -it.&P; This would serve as a server stress test, needed in order to -evaluate super server products.&P; Each NLM's parameters can be -adjusted and set before the test is run.&P; In testing, one disk -controller and one local area network adapter were used.&P; The -NetWare 386's Monitor NLM was loaded to verify server central -processing unit utilization.&P; In the end, however, measuring such -performance requires real-time testing.&M; -</SUMMARY> -<DESCRIPT> -Topic: File Servers -Testing -Evaluation -Performance Measurement -Modules.&M; -</DESCRIPT> -<TEXT> - -By Barry Gerber&M; - -Traditionally, server stress tests have been done by attaching a number of -workstations to the server through one or more network adapters.&P; The more -workstations attached, the greater the stress on the server.&P; PC Week's -Applications Test Suite also takes this approach to server testing.&M; - -However, the I/O capacity of super servers like those tested for this review -is so high that an unrealistically large number of workstations would be -needed to stress them.&P; Thus, PC Week worked with NetFrame Inc. to develop -and test two NetWare 386 NetWare Loadable Modules (NLMs) that can stress a -NetWare server without any attached workstations.&M; - -One of these NLMs, DX.NLM, tests the I/O capacity of disk controllers and -drives within a given NetWare 386 server, while the other NLM, NX.NLM, tests -the I/O capacity of network adapters within the server.&M; - -DX.NLM can be selectively run against any combination of disk controllers and -attached disks.&P; Similarly, NX.NLM can be used to test network I/O on any set -of LAN adapters.&P; The two NLMs can be run separately or simultaneously.&M; - -Picking Parameters&M; - -Each of the NLMs has adjustable parameters that can be set before the test is -run.&P; For the disk tests, these include access pattern (random or -sequential), test type (read or write), number of kilobytes per I/O (1 to -60), and number of I/Os concurrently queued per disk drive (1 to 64).&P; The -LAN I/O NLM allows for the setting of parameters for fixed or random packet -size, bytes per packet when the fixed packet-size option is selected (64 to -1,472 bytes), and number of I/Os concurrently queued per LAN adapter (1 to -32).&P; Parameters also can specify whether the test for each adapter should -involve only transmission, only reception or both transmission and reception.&M; - -In PC Week's tests, one disk controller and one LAN adapter were used.&P; The -following DX.NLM and NX.NLM parameters were used:&M; - -DX.NLM&M; - -Access pattern: Sequential&M; - -Test type: Read&M; - -Number of kilobytes per I/O: 32&M; - -Number of concurrent I/Os queued&M; - -per drive: 3&M; - -NX.NLM&M; - -Packet length: Fixed&M; - -Bytes per packet: 1,154&M; - -Number of concurrent sends to queue&M; - -per device: 3&M; - -Device activity: Transmit&M; - -During all tests, NetWare 386's Monitor NLM was loaded to verify server CPU -utilization as reported by DX.NLM and NX.NLM.&P; The Ethernet adapter was not -connected to a network.&P; Instead it was outfitted with a standard Ethernet T -connector terminated on each side with a standard, 50-ohm terminator.&M; - -The server-disk and LAN performance were determined by calculating the -percent of the server's CPU capacity required for 1M byte per second of -either disk or LAN I/O.&P; This value is obtained by dividing the I/O rate -obtained in a test (in megabytes per second) into one and multiplying server -utilization for the test by the result of the division.&M; - -To some extent, total server capacity can be estimated by summing the CPU -utilization required for each 1M-byte increment of disk or LAN I/O.&P; However, -this should be done with some caution, since capacity will be limited by the -actual number of disk controllers or LAN adapters that can be plugged into a -given server's bus and by the number of disk drives that can be attached to a -disk controller.&M; - -Furthermore, it should not be assumed that disk and LAN I/O will be the only -processes placing stress on server capacity.&P; Print and communications -services as well as other applications running on the server may also -contribute to this load.&M; - -Finally, none of the results obtained with these test NLMs should be taken as -an indicator of server performance with particular applications and data.&O; -Measuring such performance requires real-world, real-time testing.&M; - -Binary and source code for DX.NLM and NX.NLM, along with documentation for -both, can be downloaded from the PC Week Extra! on-line service.&P; (For -instructions on how to access PC Week Extra!, see Page 173.)&O; -</TEXT> -</DOC>
Change 1 of 1 Show Entire File test/​text.txt Stacked
 
1
 
 
@@ -1,1 +0,0 @@
-I gaze out the window of my third-floor apartment you so frequently visited and peer down to the dumpster with the same eyes I used to watch you with. It appears my letter fire has started a dumpster fire. The flames spread like my passion for you once did — searingly hot and incredibly dangerous to everyone in the immediate area.
Change 1 of 1 Show Entire File test/​tiny.out Stacked
 
1
2
3
4
5
 
 
 
 
 
 
@@ -1,5 +0,0 @@
-MG CRC V T BYTES N R BO -41 92408083 1 0 85 2 3 32 -CRC BYTES RSRC2 -2357529937 11 1 -2300437156 48 1
Change 1 of 1 Show Entire File test/​tinytrecdoc.out Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,19 +0,0 @@
- Magic 41 - CRC32 42 - Version 1 - Type 0 - Length 85 - N 2 - R 3 - Offset 32 - - resource0 42 - resource1 11 - resource2 1 -:hello worldA: - - resource0 42 - resource1 48 - resource2 1 -:where do you think you are going shouted captainB: -
Change 1 of 1 Show Entire File test/​tinytrecdoc.txt Stacked
 
1
2
3
4
5
6
7
8
 
 
 
 
 
 
 
 
 
@@ -1,8 +0,0 @@
-<DOC> -<DOCNO>A</DOCNO> -hello world! -</DOC> -<DOC> -<DOCNO>B</DOCNO> -"Where do you think you are going?", shouted Captain. -</DOC>
Show Entire File test/​trecdoc.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File test/​two.out Stacked
 
1
2
3
4
5
 
 
 
 
 
 
@@ -1,5 +0,0 @@
-MG CRC V T BYTES N R BO -41 2403490936 1 0 11592 2 3 32 -CRC BYTES RSRC2 -296340404 6189 13 -4097792306 5353 13
Change 1 of 3 Show Entire File tok.c Stacked
 
100
101
102
103
104
105
106
 
109
110
111
112
113
114
115
 
151
152
153
 
 
154
155
156
157
158
159
160
 
100
101
102
 
103
104
105
 
108
109
110
 
111
112
113
 
149
150
151
152
153
154
155
156
 
 
157
158
@@ -100,7 +100,6 @@
  printf("ERROR: failed to read doc\n");   return NULL;   } - shiftpointer(tokdoc->doc, n);     /* read the doc id */   toread = tokdoc->header->block[RES2IDLEN]; @@ -109,7 +108,6 @@
  printf("ERROR: failed to read docid\n");   return NULL;   } - shiftpointer(tokdoc->id, n);     tok->list = addfront(tok->list, newnode((void *)tokdoc));   } @@ -151,10 +149,10 @@
  _printtokheader(tok->header);   for (p = tok->list; p != NULL; p = p->next) {   tokdoc = p->data; + ((char *)tokdoc->id->b)[tokdoc->header->block[RES2IDLEN]] = '\0'; + printf("%s ", tokdoc->id->b);   _printtokdocheader(tokdoc->header, tok->header->block[NUMRES]);   /* Avoid printing a huge doc */   /* ((char *)tokdoc->doc->b)[tokdoc->header->block[RES1DOCLEN]] = '\0'; */ - /* ((char *)tokdoc->id->b)[tokdoc->header->block[RES2IDLEN]] = '\0'; */ - /* printf("%s: %s\n", tokdoc->id->b, tokdoc->doc->b); */   }  }