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
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
|
%PDF-1.3
%âãÏÓ
2 0 obj
<<
/Length 7364
>>
stream
BT
/TT2 1 Tf
14 0 0 14 275.358 691.2 Tm
0 g
/GS1 gs
0 Tc
0 Tw
[(Berk)10(eley DB)]TJ
/TT4 1 Tf
12 0 0 12 270.372 662.4 Tm
(Michael A. Olson)Tj
1.0675 -1.2 TD
[(K)25(eith Bostic)]TJ
-0.336 -1.2 TD
[(Mar)18(go Seltzer)]TJ
/TT6 1 Tf
-1.9715 -1.32 TD
[(Sleepycat Softwar)37(e)10(,)10( )-10(Inc.)]TJ
/TT2 1 Tf
2.9485 -3 TD
(Abstract)Tj
/TT4 1 Tf
10 0 0 10 79.2 565.56 Tm
0.0424 Tw
[(Berk)10(ele)15(y)-292.5(D)0(B)-292.5(i)0(s)-292.4(a)0(n)-292.4(Open Source embedded database system with a number of k)10(e)15(y)15( )-15(adv)25(antages o)15(v)15(e)0(r)-292.4(comparable sys-)]TJ
0 -1.2 TD
0.0602 Tw
[(tems. )-250(It)-310.2(is simple to use, supports concurrent access by multiple users, and pro)15(vides industrial-strength transaction)]TJ
T*
0.1554 Tw
[(support, including survi)25(ving system and disk crashes.)-655.5(This paper describes the design and technical features of)]TJ
T*
0 Tw
[(Berk)10(ele)15(y)-250(DB, the distrib)20(ution, and its license.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 505.56 Tm
0.25 Tw
[(1. Intr)18(oduction)]TJ
/TT4 1 Tf
10 0 0 10 79.2 489.36 Tm
0.0691 Tw
[(The Berk)10(ele)15(y)-319.1(Database \(Berk)10(ele)15(y)-319.1(DB\) is an embedded)]TJ
T*
0.0253 Tw
[(database system that can be used in applications requir)20(-)]TJ
T*
0.1636 Tw
[(ing high-performance concurrent storage and retrie)25(v)25(a)0(l)]TJ
T*
0.2618 Tw
[(of k)10(e)15(y/v)25(alue pairs.)-761.9(The softw)10(are is distrib)20(uted as a)]TJ
T*
0.0057 Tw
[(library that can be link)10(ed directly into an application.)-505.8(It)]TJ
T*
0.1453 Tw
[(pro)15(vides a v)25(ariety of programmatic interf)10(aces, includ-)]TJ
T*
0.0237 Tw
[(ing callable APIs for C, C++, Perl, Tcl and Ja)20(v)25(a)0(.)-523.7(Users)]TJ
T*
0.0326 Tw
[(may do)25(wnload Berk)10(ele)15(y)-282.7(D)0(B)-282.7(from Sleep)10(ycat Softw)10(are’)55(s)]TJ
T*
0 Tw
[(W)80(e)0(b)-250(site, at)]TJ
/TT6 1 Tf
4.918 0 TD
[(www)74(.sleepycat.com)]TJ
/TT4 1 Tf
7.8132 0 TD
(.)Tj
-12.7313 -1.62 TD
0.133 Tw
[(Sleep)10(ycat distrib)20(utes Berk)10(ele)15(y)-383(D)0(B)-383(a)0(s)-383(a)0(n)-383(Open Source)]TJ
0 -1.2 TD
0.08 Tw
[(product. )-250(The)-330(compan)15(y)-330(collects license fees for certain)]TJ
T*
0 Tw
[(uses of the softw)10(are and sells support and services.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 323.16 Tm
0.25 Tw
(1.1. History)Tj
/TT4 1 Tf
10 0 0 10 79.2 306.96 Tm
0.0558 Tw
[(Berk)10(ele)15(y)-305.7(D)0(B)-305.7(b)0(e)15(g)15( )295.8(an)-305.8(as)-305.8(a)-305.8(n)0(e)25(w)25( )-25(implementation of a hash)]TJ
T*
0.0843 Tw
(access method to replace both)Tj
/TT8 1 Tf
12.6665 0 TD
0 Tw
(hsearch)Tj
/TT4 1 Tf
4.5349 0 TD
0.0842 Tw
[(and the v)25(ari-)]TJ
-17.2014 -1.2 TD
0 Tw
(ous)Tj
/TT8 1 Tf
1.9358 0 TD
(dbm)Tj
/TT4 1 Tf
2.3469 0 TD
0.2967 Tw
(implementations \()Tj
/TT8 1 Tf
7.5452 0 TD
0 Tw
(dbm)Tj
/TT4 1 Tf
2.347 0 TD
0.2967 Tw
[(from A)111(T&T)74(,)]TJ
/TT8 1 Tf
5.8239 0 TD
0 Tw
(ndbm)Tj
/TT4 1 Tf
-19.9988 -1.2 TD
0.1334 Tw
[(from Berk)10(ele)15(y)65(,)65( )-65(and)]TJ
/TT8 1 Tf
8.3073 0 TD
0 Tw
(gdbm)Tj
/TT4 1 Tf
2.7838 0 TD
0.1334 Tw
[(from the GNU project\).)-633.3(In)]TJ
-11.0911 -1.2 TD
0.0367 Tw
[(1990 Seltzer and Y)55(igit produced a package called Hash)]TJ
T*
0 Tw
(to do this [Selt91].)Tj
0 -1.62 TD
(The )Tj
/TT9 1 Tf
2.1153 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.3106 Tw
[(rst general release of Berk)10(ele)15(y)-560.6(DB, in 1991,)]TJ
-2.6714 -1.2 TD
0.3038 Tw
[(included some interf)10(ace changes and a ne)25(w)-553.9(B+tree)]TJ
T*
0.0886 Tw
[(access method.)-588.7(At roughly the same time, Seltzer and)]TJ
T*
0.1201 Tw
[(Olson de)25(v)15(eloped a prototype transaction system based)]TJ
T*
0.3355 Tw
[(on Berk)10(ele)15(y)-585.6(DB, called LIBTP [Selt92], b)20(ut ne)25(v)15(e)0(r)]TJ
T*
0 Tw
(released the code.)Tj
0 -1.62 TD
0.0653 Tw
[(The 4.4BSD UNIX release included Berk)10(ele)15(y)-315.3(D)0(B)-315.3(1.85)]TJ
0 -1.2 TD
0.0601 Tw
[(in 1992.)-560.1(Seltzer and Bostic maintained the code in the)]TJ
T*
0.1545 Tw
[(early 1990s in Berk)10(ele)15(y)-404.6(and in Massachusetts.)-654.6(Man)15(y)]TJ
T*
0 Tw
(users adopted the code during this period.)Tj
0 -1.62 TD
0.0431 Tw
[(By mid-1996, users w)10(anted commercial support for the)]TJ
0 -1.2 TD
0.4533 Tw
[(softw)10(are. )-250(In)-703.3(response, Bostic and Seltzer formed)]TJ
T*
1.0128 Tw
[(Sleep)10(ycat Softw)10(are. )-250(The)-1262.7(compan)15(y)-1512.7(enhances,)]TJ
24.4 42.72 TD
0.1623 Tw
[(distrib)20(utes, and supports Berk)10(ele)15(y)-412.3(D)0(B)-412.4(and supporting)]TJ
0 -1.2 TD
0.22 Tw
[(softw)10(are and documentation.)-720(Sleep)10(ycat released v)15(e)0(r)20(-)]TJ
T*
0.1677 Tw
[(sion 2.1 of Berk)10(ele)15(y)-417.7(D)0(B)-417.8(i)0(n)-417.8(mid-1997 with important)]TJ
T*
0.006 Tw
[(ne)25(w)-256(features, including support for concurrent access to)]TJ
T*
0.1677 Tw
[(databases. )-249.9(The)-417.6(compan)15(y)-417.7(mak)10(es about three commer)20(-)]TJ
T*
0.0957 Tw
[(cial releases a year)40(,)-345.8(and most recently shipped v)15(ersion)]TJ
T*
0 Tw
(2.8.)Tj
/TT2 1 Tf
12 0 0 12 323.2 403.56 Tm
[(1.2. )-250(Ov)10(er)10(view of Berk)10(eley DB)]TJ
/TT4 1 Tf
10 0 0 10 323.2 387.36 Tm
0.3094 Tw
[(The C interf)10(aces in Berk)10(ele)15(y)-559.4(D)0(B)-559.5(permit)]TJ
/TT8 1 Tf
18.3756 0 TD
0 Tw
(dbm)Tj
/TT4 1 Tf
1.8003 0 TD
(-style)Tj
-20.1759 -1.2 TD
0.4586 Tw
(record management for databases, with signi)Tj
/TT9 1 Tf
20.1758 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
(cant)Tj
-20.732 -1.2 TD
-0.0001 Tc
0.1274 Tw
[(e)14.9(xtensions to handle duplicate data items ele)14.9(gantly)64.9(,)-377.4(t)-0.1(o)]TJ
T*
0 Tc
0.2427 Tw
[(deal with concurrent access, and to pro)15(vide transac-)]TJ
T*
0.071 Tw
(tional support so that multiple changes can be simulta-)Tj
T*
0.1273 Tw
[(neously committed \(so that the)15(y)-377.3(are made permanent\))]TJ
T*
0.1848 Tw
(or rolled back \(so that the database is restored to its)Tj
T*
0 Tw
[(state at the be)15(ginning of the transaction\).)]TJ
0 -1.62 TD
0.1033 Tw
[(C++ and Ja)20(v)25(a)25( )-25.1(interf)10(aces pro)15(vide a small set of classes)]TJ
0 -1.2 TD
0.1961 Tw
[(for operating on a database.)-696.1(The main class in both)]TJ
T*
0.0587 Tw
(cases is called)Tj
/TT8 1 Tf
6.0901 0 TD
0 Tw
(Db)Tj
/TT4 1 Tf
1.2002 0 TD
0.0586 Tw
[(,)-308.6(and pro)15(vides methods that encapsu-)]TJ
-7.2903 -1.2 TD
0.1128 Tw
(late the)Tj
/TT8 1 Tf
3.3906 0 TD
0 Tw
(dbm)Tj
/TT4 1 Tf
1.8003 0 TD
0.1129 Tw
[(-style interf)10(aces that the C interf)10(aces pro-)]TJ
-5.1909 -1.2 TD
0 Tw
(vide.)Tj
0 -1.62 TD
0.2564 Tw
[(Tcl and Perl interf)10(aces allo)25(w)-506.4(d)0(e)25(v)25( )496.4(elopers w)10(orking in)]TJ
0 -1.2 TD
0.1716 Tw
[(those languages to use Berk)10(ele)15(y)-421.6(D)0(B)-421.6(i)0(n)-421.7(their applica-)]TJ
T*
0.0919 Tw
[(tions. )-250(Bindings)-341.9(for both languages are included in the)]TJ
T*
0 Tw
[(distrib)20(ution.)]TJ
0 -1.62 TD
0.1069 Tw
[(De)25(v)15(elopers may compile their applications and link in)]TJ
0 -1.2 TD
0 Tw
[(Berk)10(ele)15(y)-250(D)0(B)-250(statically or dynamically)65(.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 128.76 Tm
[(1.3. )-250(Ho)10(w)-250(Berk)10(eley DB is used)]TJ
/TT4 1 Tf
10 0 0 10 323.2 112.56 Tm
0.0654 Tw
[(The Berk)10(ele)15(y)-315.5(D)0(B)-315.4(library supports concurrent access to)]TJ
T*
0.2616 Tw
[(databases. )-249.9(It)-511.5(can be link)10(ed into standalone applica-)]TJ
T*
0.1487 Tw
(tions, into a collection of cooperating applications, or)Tj
T*
0.421 Tw
[(into serv)15(ers that handle requests and do database)]TJ
ET
endstream
endobj
3 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT8 7 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
12 0 obj
<<
/Length 8732
>>
stream
BT
/TT4 1 Tf
10 0 0 10 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0 Tw
(operations on behalf of clients.)Tj
0 -1.62 TD
0.0858 Tw
(Compared to using a standalone database management)Tj
0 -1.2 TD
0.0846 Tw
[(system, Berk)10(ele)15(y)-334.6(D)0(B)-334.6(i)0(s)-334.6(easy to understand and simple)]TJ
T*
0.3826 Tw
[(to use.)-882.6(The softw)10(are stores and retrie)25(v)15(e)0(s)-632.5(records,)]TJ
T*
0.277 Tw
[(which consist of k)10(e)15(y/v)25(alue pairs.)-777(K)25(e)25( )517(ys)-527(are used to)]TJ
T*
0.0698 Tw
[(locate items and can be an)15(y)-319.8(data type or structure sup-)]TJ
T*
0 Tw
(ported by the programming language.)Tj
0 -1.62 TD
0.0813 Tw
[(The programmer can pro)15(vide the functions that Berk)10(e-)]TJ
0 -1.2 TD
0.0763 Tw
[(le)15(y)-326.4(D)0(B)-326.4(uses to operate on k)10(e)15(ys. )-250(F)15(or e)15(xample, B+trees)]TJ
T*
0.172 Tw
(can use a custom comparison function, and the Hash)Tj
T*
0.0519 Tw
[(access method can use a custom hash function.)-551.8(Berk)10(e-)]TJ
T*
0.2722 Tw
[(le)15(y)-522.2(D)0(B)-522.2(uses def)10(ault functions if none are supplied.)]TJ
T*
0.0873 Tw
[(Otherwise, Berk)10(ele)15(y)-337.3(D)0(B)-337.3(does not e)15(xamine or interpret)]TJ
T*
0.0934 Tw
[(either k)10(e)15(ys)-343.4(or)-343.4(v)25(alues in an)15(y)-343.4(w)10(ay)65(.)-593.4(V)111(alues may be arbi-)]TJ
T*
0 Tw
(trarily long.)Tj
0 -1.62 TD
0.069 Tw
[(It is also important to understand what Berk)10(ele)15(y)-319(D)0(B)-319(i)0(s)]TJ
0 -1.2 TD
0.1865 Tw
[(not. )-250(It)-436.5(is not a database serv)15(er that handles netw)10(ork)]TJ
T*
0.0296 Tw
[(requests. )-250.1(It)-279.7(is not an SQL engine that e)15(x)15(ecutes queries.)]TJ
T*
0.1547 Tw
(It is not a relational or object-oriented database man-)Tj
T*
0 Tw
(agement system.)Tj
0 -1.62 TD
0.1101 Tw
[(It is possible to b)20(uild an)15(y)-360.1(o)0(f)-360.1(those on top of Berk)10(ele)15(y)]TJ
0 -1.2 TD
0.2116 Tw
[(DB, b)20(ut the package, as distrib)20(uted, is an embedded)]TJ
T*
0.1444 Tw
[(database engine.)-644.4(It has been designed to be portable,)]TJ
T*
0 Tw
[(small, f)10(ast, and reliable.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 385.2 Tm
[(1.4. )-250(A)25(pplications that use Berk)10(eley DB)]TJ
/TT4 1 Tf
10 0 0 10 79.2 369 Tm
0.1749 Tw
[(Berk)10(ele)15(y)-424.8(D)0(B)-424.8(i)0(s)-424.9(embedded in a v)25(ariety of proprietary)]TJ
T*
0.384 Tw
[(and Open Source softw)10(are packages.)-884(This section)]TJ
T*
0 Tw
[(highlights a fe)25(w)-250(o)0(f)-250(the products that use it.)]TJ
0 -1.62 TD
0.1467 Tw
[(Directory serv)15(ers, which do data storage and retrie)25(v)25(a)0(l)]TJ
0 -1.2 TD
0.2823 Tw
[(using the Local Directory Access Protocol \(LD)40(AP\),)]TJ
T*
0.0956 Tw
[(pro)15(vide naming and directory lookup service on local-)]TJ
T*
0.2837 Tw
[(area netw)10(orks. )-250(This)-533.7(service is, essentially)65(,)-533.6(database)]TJ
T*
0.0039 Tw
[(query and update, b)20(ut uses a simple protocol rather than)]TJ
T*
0.2201 Tw
[(SQL or ODBC.)-720.1(Berk)10(ele)15(y)-470.1(D)0(B)-470.1(i)0(s)-470.1(the embedded data)]TJ
T*
0.1288 Tw
[(manager in the majority of deplo)10(yed directory serv)15(ers)]TJ
T*
0.2355 Tw
[(today)65(,)-485.5(including LD)40(AP serv)15(ers from Netscape, Mes-)]TJ
T*
0 Tw
(sageDirect \(formerly Isode\), and others.)Tj
0 -1.62 TD
0.1886 Tw
[(Berk)10(ele)15(y)-438.5(D)0(B)-438.5(i)0(s)-438.5(also embedded in a lar)18(ge number of)]TJ
0 -1.2 TD
0.5302 Tw
[(mail serv)15(ers. )-250(Intermail,)-780.2(from Softw)10(are.com, uses)]TJ
T*
0.2114 Tw
[(Berk)10(ele)15(y)-461.3(D)0(B)-461.3(a)0(s)-461.3(a)-461.3(message store and as the backing)]TJ
T*
0.3597 Tw
[(store for its directory serv)15(er)55(.)-859.7(The sendmail serv)15(er)]TJ
T*
0.1175 Tw
[(\(including both the commercial Sendmail Pro of)25(fering)]TJ
T*
0.3282 Tw
[(from Sendmail, Inc. and the v)15(ersion distrib)20(uted by)]TJ
T*
0.2304 Tw
[(sendmail.or)18(g\) uses Berk)10(ele)15(y)-480.4(D)0(B)-480.4(t)0(o)-480.4(store aliases and)]TJ
T*
0.901 Tw
[(other information.)-1401(Similarly)65(,)-1151(Post)]TJ
/TT9 1 Tf
16.3592 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.901 Tw
(x \(formerly)Tj
-16.9153 -1.2 TD
0.3465 Tw
[(VMailer\) uses Berk)10(ele)15(y)-596.5(D)0(B)-596.5(t)0(o)-596.5(store administrati)25(v)15(e)]TJ
T*
0 Tw
(information.)Tj
0 -1.62 TD
0.0133 Tw
[(In addition, Berk)10(ele)15(y)-263.4(D)0(B)-263.3(i)0(s)-263.3(embedded in a wide v)25(ariety)]TJ
0 -1.2 TD
0.4994 Tw
[(of other softw)10(are products.)-999.4(Example applications)]TJ
24.4 62.76 TD
0.0373 Tw
[(include managing access control lists, storing user k)10(e)15(ys)]TJ
0 -1.2 TD
0.275 Tw
[(in a public-k)10(e)15(y)15( )-15(infrastructure, recording machine-to-)]TJ
T*
0.0518 Tw
[(netw)10(ork-address mappings in address serv)15(ers, and stor)20(-)]TJ
T*
0.0411 Tw
(ing con)Tj
/TT9 1 Tf
3.0128 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0411 Tw
[(guration and de)25(vice information in video post-)]TJ
-3.5689 -1.2 TD
0 Tw
[(production softw)10(are.)]TJ
0 -1.62 TD
0.2477 Tw
[(Finally)65(,)-497.8(Berk)10(ele)15(y)-497.8(D)0(B)-497.8(i)0(s)-497.8(a)-497.8(part of man)15(y)-497.7(other Open)]TJ
0 -1.2 TD
0.0005 Tw
[(Source softw)10(are packages a)20(v)25(ailable on the Internet.)-500.6(F)15(o)0(r)]TJ
T*
0.0604 Tw
[(e)15(xample, the softw)10(are is embedded in the Apache W)80(e)0(b)]TJ
T*
0 Tw
[(serv)15(er and the Gnome desktop.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 577.8 Tm
0.25 Tw
[(2. Access)-250(Methods)]TJ
/TT4 1 Tf
10 0 0 10 323.2 561.6 Tm
0.0828 Tw
[(In database terminology)65(,)-332.9(a)0(n)-332.9(access method is the disk-)]TJ
T*
0.1964 Tw
(based structure used to store data and the operations)Tj
T*
0.6053 Tw
[(a)20(v)25(ailable on that structure.)-1105.3(F)15(o)0(r)-855.4(e)15(xample, man)15(y)]TJ
T*
0.3853 Tw
(database systems support a B+tree access method.)Tj
T*
0.1203 Tw
[(B+trees allo)25(w)-370.3(equality-based lookups \()]TJ
/TT9 1 Tf
16.1276 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.1203 Tw
[(nd k)10(e)15(ys)-370.4(equal)]TJ
-16.6837 -1.2 TD
0.4 Tw
(to some constant\), range-based lookups \()Tj
/TT9 1 Tf
18.3848 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.4 Tw
[(nd k)10(e)15(ys)]TJ
-18.9409 -1.2 TD
0.1188 Tw
[(between tw)10(o)-368.8(constants\) and record insertion and dele-)]TJ
T*
0 Tw
(tion.)Tj
0 -1.62 TD
0.2228 Tw
[(Berk)10(ele)15(y)-472.9(D)0(B)-472.9(supports three access methods: B+tree,)]TJ
0 -1.2 TD
0.1553 Tw
[(Extended Linear Hashing \(Hash\), and Fix)15(ed- or V)111(ari-)]TJ
T*
0.3638 Tw
[(able-length Records \(Recno\).)-863.8(All three operate on)]TJ
T*
0.1956 Tw
[(records composed of a k)10(e)15(y)15( )-15(and a data v)25(alue. )-250(In)-445.6(the)]TJ
T*
0.1301 Tw
[(B+tree and Hash access methods, k)10(e)15(ys)-380.1(can ha)20(v)15(e)15( )-15(arbi-)]TJ
T*
0.3595 Tw
[(trary structure.)-859.5(In the Recno access method, each)]TJ
T*
0.0265 Tw
[(record is assigned a record number)40(,)-276.5(which serv)15(es as the)]TJ
T*
0.0306 Tw
[(k)10(e)15(y)65(.)65( )-315(In)-280.6(all the access methods, the v)25(alue can ha)20(v)15(e)15( )-15(arbi-)]TJ
T*
0.1417 Tw
[(trary structure.)-641.7(The programmer can supply compari-)]TJ
T*
0.2129 Tw
[(son or hashing functions for k)10(e)15(ys, and Berk)10(ele)15(y)-462.9(D)0(B)]TJ
T*
0 Tw
[(stores and retrie)25(v)15(e)0(s)-250(v)25(alues without interpreting them.)]TJ
0 -1.62 TD
0.1069 Tw
(All of the access methods use the host )Tj
/TT9 1 Tf
16.3518 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.1069 Tw
(lesystem as a)Tj
-16.9079 -1.2 TD
0 Tw
(backing store.)Tj
/TT2 1 Tf
12 0 0 12 323.2 283.2 Tm
0.25 Tw
(2.1. Hash)Tj
/TT4 1 Tf
10 0 0 10 323.2 267 Tm
0.3986 Tw
[(Berk)10(ele)15(y)-648.5(D)0(B)-648.5(includes a Hash access method that)]TJ
T*
0.9862 Tw
[(implements e)15(xtended linear hashing [Litw80].)]TJ
T*
0.0017 Tw
(Extended linear hashing adjusts the hash function as the)Tj
T*
0.0506 Tw
[(hash table gro)25(ws, attempting to k)10(eep all b)20(uck)10(ets under)20(-)]TJ
T*
0 Tw
(full in the steady state.)Tj
0 -1.62 TD
0.1649 Tw
(The Hash access method supports insertion and dele-)Tj
0 -1.2 TD
0.0259 Tw
[(tion of records and lookup by e)15(xact match only)65(.)-525.8(Appli-)]TJ
T*
0.0038 Tw
[(cations may iterate o)15(v)15(e)0(r)-253.8(all records stored in a table, b)20(u)0(t)]TJ
T*
0 Tw
[(the order in which the)15(y)-250(are returned is unde)]TJ
/TT9 1 Tf
17.423 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
(ned.)Tj
/TT2 1 Tf
12 0 0 12 323.2 136.8 Tm
0.25 Tw
[(2.2. B+tr)18(ee)]TJ
/TT4 1 Tf
10 0 0 10 323.2 120.5999 Tm
0.4683 Tw
[(Berk)10(ele)15(y)-718.4(D)0(B)-718.4(includes a B+tree [Come79] access)]TJ
0 -1.2 TD
0.0002 Tw
[(method. )-250(B+trees)-250.2(store records of k)10(e)15(y/v)25(alue pairs in leaf)]TJ
T*
0.052 Tw
[(pages, and pairs of \(k)10(e)15(y)65(,)-302(child page address\) at internal)]TJ
T*
0.2885 Tw
[(nodes. )-249.9(K)25(e)15(ys)-538.4(in)-538.4(the tree are stored in sorted order)40(,)]TJ
ET
endstream
endobj
13 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
15 0 obj
<<
/Length 9078
>>
stream
BT
/TT4 1 Tf
10 0 0 10 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.0576 Tw
(where the order is determined by the comparison func-)Tj
0 -1.2 TD
0.0815 Tw
[(tion supplied when the database w)10(as created.)-581.5(P)15(ages at)]TJ
T*
0.0389 Tw
[(the leaf le)25(v)15(e)0(l)-288.9(o)0(f)-288.9(the tree include pointers to their neigh-)]TJ
T*
0.1444 Tw
[(bors to simplify tra)20(v)15(ersal. )-250(B+trees)-394.4(support lookup by)]TJ
T*
0.0068 Tw
[(e)15(xact match \(equality\) or range \(greater than or equal to)]TJ
T*
0.0391 Tw
[(a)-289.1(k)10(e)15(y\). )-250(Lik)10(e)-289.1(Hash tables, B+trees support record inser)20(-)]TJ
T*
0 Tw
[(tion, deletion, and iteration o)15(v)15(e)0(r)-250(all records in the tree.)]TJ
0 -1.62 TD
0.0646 Tw
(As records are inserted and pages in the B+tree )Tj
/TT9 1 Tf
19.7215 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0646 Tw
(ll up,)Tj
-20.2777 -1.2 TD
0.0223 Tw
[(the)15(y)-272.2(are split, with about half the k)10(e)15(ys)-272.3(going into a ne)25(w)]TJ
T*
0.1603 Tw
[(peer page at the same le)25(v)15(e)0(l)-410.3(i)0(n)-410.3(the tree.)-660.3(Most B+tree)]TJ
T*
0.0387 Tw
[(implementations lea)20(v)15(e)15( )-15(both nodes half-full after a split.)]TJ
T*
0.2763 Tw
(This leads to poor performance in a common case,)Tj
T*
0.1522 Tw
[(where the caller inserts k)10(e)15(ys)-402.2(in)-402.2(order)55(.)-652.2(T)80(o)-402.3(handle this)]TJ
T*
0.1642 Tw
[(case, Berk)10(ele)15(y)-414.3(D)0(B)-414.3(k)10(eeps track of the insertion order)40(,)]TJ
T*
0.2023 Tw
[(and splits pages une)25(v)15(enly to k)10(eep pages fuller)55(.)-702.4(This)]TJ
T*
0.23 Tw
(reduces tree size, yielding better search performance)Tj
T*
0 Tw
(and smaller databases.)Tj
0 -1.62 TD
0.3177 Tw
[(On deletion, empty pages are coalesced by re)25(v)15(erse)]TJ
0 -1.2 TD
0.203 Tw
[(splits into single pages.)-703(The access method does no)]TJ
T*
0.0347 Tw
[(other page balancing on insertion or deletion.)-534.8(K)25(e)25( )274.7(ys)-284.8(are)]TJ
T*
0.1926 Tw
[(not mo)15(v)15(e)0(d)-442.7(among pages at e)25(v)15(ery update to k)10(eep the)]TJ
T*
0.2206 Tw
[(tree well-balanced.)-720.6(While this could impr)]TJ
17.9583 0 TD
-0.015 Tc
0 Tw
(ove )Tj
1.8846 0 TD
0 Tc
(search)Tj
-19.8428 -1.2 TD
0.2341 Tw
[(times in some cases, the additional code comple)15(xity)]TJ
T*
0 Tw
[(leads to slo)25(wer updates and is prone to deadlocks.)]TJ
0 -1.62 TD
0.0449 Tw
[(F)15(o)0(r)-294.8(simplicity)65(,)-294.8(Berk)10(ele)15(y)-294.9(D)0(B)-294.9(B+trees do no pre)]TJ
/TT9 1 Tf
18.9923 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0449 Tw
(x com-)Tj
-19.5485 -1.2 TD
0 Tw
[(pression of k)10(e)15(ys)-250(at)-250(internal or leaf nodes.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 365.4 Tm
0.25 Tw
(2.3. Recno)Tj
/TT4 1 Tf
10 0 0 10 79.2 349.2 Tm
0.0236 Tw
[(Berk)10(ele)15(y)-273.6(D)0(B)-273.6(includes a )]TJ
/TT9 1 Tf
9.8443 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0235 Tw
[(x)15(ed- or v)25(ariable-length record)]TJ
-10.4005 -1.2 TD
0.5075 Tw
(access method, called)Tj
/TT6 1 Tf
10.4629 0 TD
0 Tw
(Recno)Tj
/TT4 1 Tf
2.4985 0 TD
0.5075 Tw
[(.)-1007.5(The Recno access)]TJ
-12.9615 -1.2 TD
0.0896 Tw
(method assigns logical record numbers to each record,)Tj
T*
0.0978 Tw
(and can search for and update records by record num-)Tj
T*
0.0037 Tw
[(ber)55(.)-503.7(Recno is able, for e)15(xample, to load a te)15(xt )]TJ
/TT9 1 Tf
18.6121 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0036 Tw
(le into a)Tj
-19.1682 -1.2 TD
0.1514 Tw
[(database, treating each line as a record.)-651.4(This permits)]TJ
T*
0.1313 Tw
[(f)10(ast searches by line number for applications lik)10(e)-381.2(t)0(e)15(x)0(t)]TJ
T*
0 Tw
(editors [Ston82].)Tj
0 -1.62 TD
0.259 Tw
[(Recno is actually b)20(uilt on top of the B+tree access)]TJ
0 -1.2 TD
0.3191 Tw
[(method and pro)15(vides a simple interf)10(ace for storing)]TJ
T*
0.314 Tw
[(sequentially-ordered data v)25(alues. )-250(The)-564(Recno access)]TJ
T*
0.2266 Tw
[(method generates k)10(e)15(ys)-476.6(internally)65(.)-726.6(The programmer’)55(s)]TJ
T*
0.1602 Tw
[(vie)25(w)-410.2(o)0(f)-410.2(the v)25(alues is that the)15(y)-410.2(are numbered sequen-)]TJ
T*
0.0254 Tw
[(tially from one.)-525.4(De)25(v)15(elopers can choose to ha)20(v)15(e)15( )-14.9(records)]TJ
T*
0.9 Tw
[(automatically renumbered when lo)25(wer)20(-numbered)]TJ
T*
0.0041 Tw
[(records are added or deleted.)-504.1(In this case, ne)25(w)-254.1(k)10(e)15(y)0(s)-254.1(can)]TJ
T*
0 Tw
[(be inserted between e)15(xisting k)10(e)15(ys.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 123 Tm
0.25 Tw
[(3. F)25(eatur)18(es)]TJ
/TT4 1 Tf
10 0 0 10 79.2 106.8 Tm
0.1827 Tw
[(This section describes important features of Berk)10(ele)15(y)]TJ
T*
0.0956 Tw
[(DB. )-250(In)-345.6(general, de)25(v)15(elopers can choose which features)]TJ
T*
0.0488 Tw
(are useful to them, and use only those that are required)Tj
24.4 62.52 TD
0 Tw
(by their application.)Tj
0 -1.62 TD
0.1029 Tw
[(F)15(o)0(r)-352.9(e)15(xample, when an application opens a database, it)]TJ
0 -1.2 TD
0.0101 Tw
[(can declare the de)15(gree of concurrenc)15(y)-260.1(and reco)15(v)15(ery that)]TJ
T*
0.0048 Tw
[(it requires.)-504.9(Simple stand-alone applications, and in par)20(-)]TJ
T*
0.0491 Tw
(ticular ports of applications that used)Tj
/TT8 1 Tf
15.3464 0 TD
0 Tw
(dbm)Tj
/TT4 1 Tf
2.0994 0 TD
0.0491 Tw
(or one of its)Tj
-17.4458 -1.2 TD
0.1093 Tw
[(v)25(ariants, generally do not require concurrent access or)]TJ
T*
0.0975 Tw
[(crash reco)15(v)15(ery)65(.)-597.5(Other applications, such as enterprise-)]TJ
T*
0.308 Tw
(class database management systems that store sales)Tj
T*
0.2643 Tw
(transactions or other critical data, need full transac-)Tj
T*
0.393 Tw
[(tional service.)-893(Single-user operation is f)10(aster than)]TJ
T*
0.1175 Tw
[(multi-user operation, since no o)15(v)15(erhead is incurred by)]TJ
T*
0.0655 Tw
[(locking. )-250.1(Running)-315.6(with the reco)15(v)15(ery system disabled is)]TJ
T*
0.1732 Tw
[(f)10(aster than running with it enabled, since log records)]TJ
T*
0.2703 Tw
(need not be written when changes are made to the)Tj
T*
0 Tw
(database.)Tj
0 -1.62 TD
0.0851 Tw
(In addition, some core subsystems, including the lock-)Tj
0 -1.2 TD
0.0344 Tw
[(ing system and the logging f)10(acility)65(,)-284.4(can be used outside)]TJ
T*
0.1772 Tw
[(the conte)15(xt of the access methods as well.)-677.3(Although)]TJ
T*
0.1784 Tw
[(fe)25(w)-428.4(users ha)20(v)15(e)15( )-15(chosen to do so, it is possible to use)]TJ
T*
0.0939 Tw
[(only the lock manager in Berk)10(ele)15(y)-343.9(D)0(B)-343.9(t)0(o)-343.9(control con-)]TJ
T*
0.2242 Tw
[(currenc)15(y)-474.3(i)0(n)-474.3(a)0(n)-474.3(application, without using an)15(y)-474.2(o)0(f)-474.2(the)]TJ
T*
0.0158 Tw
[(standard database services.)-515.8(Alternati)25(v)15(ely)65(,)-265.8(the caller can)]TJ
T*
0.007 Tw
[(inte)15(grate locking of non-database resources with Berk)10(e-)]TJ
T*
0.2702 Tw
[(le)15(y)-520.1(DB’)55(s)-520.1(transactional tw)10(o-phase locking system, to)]TJ
T*
0.2892 Tw
(impose transaction semantics on objects outside the)Tj
T*
0 Tw
(database.)Tj
/TT2 1 Tf
12 0 0 12 323.2 369.6 Tm
0.25 Tw
[(3.1. Pr)18(ogrammatic )250(interfaces)]TJ
/TT4 1 Tf
10 0 0 10 323.2 353.4 Tm
0 Tw
[(Berk)10(ele)15(y)-400.8(D)0(B)-400.8(d)0(e)]TJ
/TT9 1 Tf
6.719 0 TD
(Þ)Tj
/TT4 1 Tf
0.5561 0 TD
0.1509 Tw
(nes a simple API for database man-)Tj
-7.2751 -1.2 TD
0.0952 Tw
[(agement. )-250(The)-345.2(package does not include industry-stan-)]TJ
T*
0.1898 Tw
[(dard programmatic interf)10(aces such as Open Database)]TJ
T*
0.0852 Tw
[(Connecti)25(vity \(ODBC\), Object Linking and Embedding)]TJ
T*
0.0817 Tw
(for Databases \(OleDB\), or Structured Query Language)Tj
T*
0.1527 Tw
[(\(SQL\). )-250(These)-402.7(interf)10(aces, while useful, were designed)]TJ
T*
0.2477 Tw
(to promote interoperability of database systems, and)Tj
T*
0 Tw
(not simplicity or performance.)Tj
0 -1.62 TD
0.3192 Tw
[(In response to customer demand, Berk)10(ele)15(y)-569.1(D)0(B)-569.1(2.5)]TJ
0 -1.2 TD
0.0538 Tw
[(introduced support for the XA standard [Open94].)-553.9(XA)]TJ
T*
0.052 Tw
[(permits Berk)10(ele)15(y)-302(D)0(B)-302(t)0(o)-302(participate in distrib)20(uted trans-)]TJ
T*
0.3373 Tw
[(actions under a transaction processing monitor lik)10(e)]TJ
T*
0.131 Tw
[(T)45(u)0(x)15(edo from BEA Systems.)-631(Lik)10(e)-381(XA, other standard)]TJ
T*
0.099 Tw
[(interf)10(aces can be b)20(uilt on top of the core system.)-599(The)]TJ
T*
0.0846 Tw
[(standards do not belong inside Berk)10(ele)15(y)-334.6(DB, since not)]TJ
T*
0 Tw
(all applications need them.)Tj
/TT2 1 Tf
12 0 0 12 323.2 139.2 Tm
[(3.2. )-250(W)75(orking with r)18(ecords)]TJ
/TT4 1 Tf
10 0 0 10 323.2 123 Tm
0.0634 Tw
[(A)-313.4(database user may need to search for particular k)10(e)15(ys)]TJ
T*
0.0907 Tw
[(in a database, or may simply w)10(ant to bro)25(wse a)20(v)25(ailable)]TJ
T*
0.1601 Tw
[(records. )-250(Berk)10(ele)15(y)-410.1(D)0(B)-410.1(supports both k)10(e)15(yed access, to)]TJ
/TT9 1 Tf
T*
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0173 Tw
[(nd one or more records with a gi)25(v)15(e)0(n)-267.3(k)10(e)15(y)65(,)-267.3(o)0(r)-267.3(sequential)]TJ
-0.5562 -1.2 TD
0.053 Tw
[(access, to retrie)25(v)15(e)15( )-15(all the records in the database one at)]TJ
ET
endstream
endobj
16 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT8 7 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
18 0 obj
<<
/Length 8968
>>
stream
BT
/TT4 1 Tf
10 0 0 10 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.384 Tw
[(a)-634(time. )-250(The)-634(order of the records returned during)]TJ
0 -1.2 TD
0.0208 Tw
[(sequential scans depends on the access method.)-520.9(B+tree)]TJ
T*
0.1495 Tw
[(and Recno databases return records in sort order)40(,)-399.5(and)]TJ
T*
0.0023 Tw
[(Hash databases return them in apparently random order)55(.)]TJ
0 -1.62 TD
0 Tw
[(Similarly)65(,)-495.9(Berk)10(ele)15(y)-495.9(D)0(B)-495.8(d)0(e)]TJ
/TT9 1 Tf
11.3122 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2458 Tw
[(nes simple interf)10(aces for)]TJ
-11.8683 -1.2 TD
0 Tw
(inserting, updating, and deleting records in a database.)Tj
/TT2 1 Tf
12 0 0 12 79.2 613.8 Tm
[(3.3. )-250(Long)-250(k)10(eys and v)10(alues)]TJ
/TT4 1 Tf
10 0 0 10 79.2 597.6 Tm
0.1053 Tw
[(Berk)10(ele)15(y)-355.3(D)0(B)-355.3(manages k)10(e)15(ys)-355.3(and v)25(alues as lar)18(ge as 2)]TJ
8 0 0 8 295.1806 602.6 Tm
0 Tw
(32)Tj
10 0 0 10 79.2 585.6 Tm
0.0692 Tw
[(bytes. )-250(Since)-319.2(the time required to cop)10(y)-319.2(a)-319.2(record is pro-)]TJ
T*
0.1895 Tw
[(portional to its size, Berk)10(ele)15(y)-439.6(D)0(B)-439.6(includes interf)10(aces)]TJ
T*
0.4507 Tw
[(that operate on partial records.)-950.7(If an application)]TJ
T*
0.1273 Tw
[(requires only part of a lar)18(ge record, it requests partial)]TJ
T*
0.0025 Tw
[(record retrie)25(v)25(al, and recei)25(v)15(e)0(s)-252.6(just the bytes that it needs.)]TJ
T*
0 Tw
[(The smaller cop)10(y)-250(s)0(a)20(v)20( )245(es)-250(both time and memory)65(.)]TJ
0 -1.62 TD
0.0706 Tw
[(Berk)10(ele)15(y)-320.6(D)0(B)-320.6(allo)25(ws the programmer to de)]TJ
/TT9 1 Tf
17.3687 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0706 Tw
(ne the data)Tj
-17.9249 -1.2 TD
0.272 Tw
[(types of k)10(e)15(ys)-522(and v)25(alues. )-250(De)25(v)15(elopers use an)15(y)-522(type)]TJ
T*
0 Tw
[(e)15(xpressible in the programming language.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 455.4 Tm
0.25 Tw
[(3.4. Lar)10(ge )250(databases)]TJ
/TT4 1 Tf
10 0 0 10 79.2 439.2 Tm
0.0755 Tw
[(A)-325.5(single database managed by Berk)10(ele)15(y)-325.6(D)0(B)-325.6(can be up)]TJ
T*
0.1716 Tw
(to 2)Tj
8 0 0 8 96.1943 432.2 Tm
0 Tw
(48)Tj
10 0 0 10 108.4103 427.2 Tm
0.1716 Tw
[(bytes, or 256 petabytes, in size.)-671.5(Berk)10(ele)15(y)-421.5(D)0(B)]TJ
-2.921 -1.2 TD
0.2144 Tw
(uses the host )Tj
/TT9 1 Tf
6.004 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2144 Tw
(lesystem as the backing store for the)Tj
-6.5602 -1.2 TD
0.2667 Tw
[(database, so lar)18(ge databases require big )]TJ
/TT9 1 Tf
17.6034 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2667 Tw
(le support)Tj
-18.1595 -1.2 TD
0.3113 Tw
[(from the operating system.)-811.3(Sleep)10(ycat Softw)10(are has)]TJ
T*
0.5711 Tw
[(customers using Berk)10(ele)15(y)-821.2(D)0(B)-821.2(t)0(o)-821.1(manage single)]TJ
T*
-0.0001 Tc
0.0001 Tw
[(databases in e)14.9(xcess of 100 gigabytes.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 337.2 Tm
0 Tc
0.25 Tw
[(3.5. Main)-250(memory )250(databases)]TJ
/TT4 1 Tf
10 0 0 10 79.2 321 Tm
0.1171 Tw
(Applications that do not require persistent storage can)Tj
T*
0.0119 Tw
[(create databases that e)15(xist only in main memory)65(.)-511.8(These)]TJ
T*
0.0542 Tw
[(databases bypass the o)15(v)15(erhead imposed by the I/O sys-)]TJ
T*
0 Tw
[(tem altogether)55(.)]TJ
0 -1.62 TD
0.2144 Tw
(Some applications do need to use disk as a backing)Tj
0 -1.2 TD
0.2248 Tw
[(store, b)20(ut run on machines with v)15(ery lar)18(ge memory)65(.)]TJ
T*
0.0299 Tw
[(Berk)10(ele)15(y)-279.9(D)0(B)-279.9(i)0(s)-279.9(able to manage v)15(ery lar)18(ge shared mem-)]TJ
T*
0.0128 Tw
[(ory re)15(gions for cached data pages, log records, and lock)]TJ
T*
0.1437 Tw
[(management. )-250.1(F)15(or e)15(xample, the cache re)15(gion used for)]TJ
T*
-0.0001 Tc
0.0034 Tw
[(data pages may be gigabytes in size, reducing the lik)9.9(eli-)]TJ
T*
0 Tc
0.0639 Tw
[(hood that an)15(y)-313.9(read operation will need to visit the disk)]TJ
T*
0.1201 Tw
[(in the steady state.)-620.1(The programmer declares the size)]TJ
T*
0 Tw
[(of the cache re)15(gion at startup.)]TJ
0 -1.62 TD
0.4548 Tw
[(Finally)65(,)-704.8(man)15(y)-704.8(operating systems pro)15(vide memory-)]TJ
0 -1.2 TD
0 Tw
(mapped )Tj
/TT9 1 Tf
3.6687 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2532 Tw
[(le services that are much f)10(aster than their)]TJ
-4.2249 -1.2 TD
0 Tw
(general-purpose )Tj
/TT9 1 Tf
6.9516 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2602 Tw
[(le system interf)10(aces. )-250(Berk)10(ele)15(y)-510.2(D)0(B)]TJ
-7.5078 -1.2 TD
0.5118 Tw
(can memory-map its database )Tj
/TT9 1 Tf
14.2093 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.5118 Tw
(les for read-only)Tj
-14.7655 -1.2 TD
0.3917 Tw
[(database use.)-891.7(The application operates on records)]TJ
T*
0.2069 Tw
(stored directly on the pages, with no cache manage-)Tj
T*
0.1556 Tw
[(ment o)15(v)15(erhead. )-250.1(Because)-405.7(the application gets pointers)]TJ
24.4 62.34 TD
0.1265 Tw
[(directly into the Berk)10(ele)15(y)-376.5(D)0(B)-376.5(pages, writes cannot be)]TJ
0 -1.2 TD
0.1275 Tw
[(permitted. )-250(Otherwise,)-377.5(changes could bypass the lock-)]TJ
T*
0.023 Tw
[(ing and logging systems, and softw)10(are errors could cor)20(-)]TJ
T*
0.4006 Tw
[(rupt the database.)-900.7(Read-only applications can use)]TJ
T*
0 Tw
[(Berk)10(ele)15(y)-289.3(DB’)55(s)-289.3(memory-mapped )]TJ
/TT9 1 Tf
13.3397 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0393 Tw
[(le service to impro)15(v)15(e)]TJ
-13.8958 -1.2 TD
0 Tw
(performance on most architectures.)Tj
/TT2 1 Tf
12 0 0 12 323.2 618 Tm
0.25 Tw
(3.6. Con)Tj
/TT10 1 Tf
3.7783 0 TD
0 Tw
(Þ)Tj
/TT2 1 Tf
0.5562 0 TD
[(gurable)-250(page size)]TJ
/TT4 1 Tf
10 0 0 10 323.2 601.8 Tm
0.0111 Tw
(Programmers declare the size of the pages used by their)Tj
0 -1.2 TD
0.0403 Tw
[(access methods when the)15(y)-290.3(create a database.)-540.3(Although)]TJ
T*
0.1546 Tw
[(Berk)10(ele)15(y)-404.6(D)0(B)-404.6(pro)15(vides reasonable def)10(aults, de)25(v)15(elopers)]TJ
T*
0.364 Tw
[(may o)15(v)15(erride them to control system performance.)]TJ
T*
0.0793 Tw
(Small pages reduce the number of records that )Tj
/TT9 1 Tf
19.4611 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0793 Tw
(t on a)Tj
-20.0172 -1.2 TD
0.0353 Tw
[(single page.)-535.3(Fe)25(wer records on a page means that fe)25(wer)]TJ
T*
0.0723 Tw
[(records are lock)10(ed when the page is lock)10(ed, impro)15(ving)]TJ
T*
0.1462 Tw
[(concurrenc)15(y)65(.)65( )-315(The per)20(-page o)15(v)15(erhead is proportionally)]TJ
T*
0.229 Tw
[(higher with smaller pages, of course, b)20(ut de)25(v)15(elopers)]TJ
T*
0 Tw
[(can trade of)25(f)-250(space for time as an application requires.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 463.8 Tm
0.25 Tw
[(3.7. Small)-250(f)25(ootprint)]TJ
/TT4 1 Tf
10 0 0 10 323.2 447.6 Tm
0.1474 Tw
[(Berk)10(ele)15(y)-397.3(D)0(B)-397.3(i)0(s)-397.4(a)-397.4(compact system.)-647.4(The full package,)]TJ
T*
0.0831 Tw
[(including all access methods, reco)15(v)15(erability)65(,)-333.1(and trans-)]TJ
T*
0.1235 Tw
[(action support is roughly 175K of te)15(xt space on com-)]TJ
T*
0 Tw
(mon architectures.)Tj
/TT2 1 Tf
12 0 0 12 323.2 381.6 Tm
0.25 Tw
(3.8. Cursors)Tj
/TT4 1 Tf
10 0 0 10 323.2 365.4 Tm
0.157 Tw
[(In database terminology)65(,)-407(a)-407(cursor is a pointer into an)]TJ
T*
0.1806 Tw
[(access method that can be called iterati)25(v)15(ely to return)]TJ
T*
0.368 Tw
[(records in sequence.)-868(Berk)10(ele)15(y)-618(D)0(B)-618(includes cursor)]TJ
T*
0.2814 Tw
[(interf)10(aces for all access methods.)-781.4(This permits, for)]TJ
T*
0.034 Tw
[(e)15(xample, users to tra)20(v)15(erse a B+tree and vie)25(w)-284(records in)]TJ
T*
0.1234 Tw
[(order)55(.)-623.3(Pointers to records in cursors are persistent, so)]TJ
T*
0.1779 Tw
(that once fetched, a record may be updated in place.)Tj
T*
0.1939 Tw
[(Finally)65(,)-443.8(cursors support access to chains of duplicate)]TJ
T*
0 Tw
[(data items in the v)25(arious access methods.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 239.4 Tm
0.25 Tw
[(3.9. J)15(oins)]TJ
/TT4 1 Tf
10 0 0 10 323.2 223.2 Tm
0.2702 Tw
[(In database terminology)65(,)-520.3(a)-520.3(join is an operation that)]TJ
T*
0.0616 Tw
[(spans multiple separate tables \(or in the case of Berk)10(e-)]TJ
T*
0.2018 Tw
[(le)15(y)-451.8(DB, multiple separate DB )]TJ
/TT9 1 Tf
13.1024 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2017 Tw
[(les\).)-701.7(F)15(o)0(r)-451.7(e)15(xample, a)]TJ
-13.6586 -1.2 TD
0.0873 Tw
[(compan)15(y)-337.2(may store information about its customers in)]TJ
T*
0.1545 Tw
[(one table and information about sales in another)55(.)-654.5(A)0(n)]TJ
T*
0.1498 Tw
[(application will lik)10(ely w)10(ant to look up sales informa-)]TJ
T*
0.0933 Tw
(tion by customer name; this requires matching records)Tj
T*
0.228 Tw
[(in the tw)10(o)-478(tables that share a common customer ID)]TJ
/TT9 1 Tf
T*
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0015 Tw
[(eld. )-250(This)-251.5(combining of records from multiple tables is)]TJ
-0.5562 -1.2 TD
0 Tw
(called a join.)Tj
0 -1.62 TD
0.3061 Tw
[(Berk)10(ele)15(y)-556.1(D)0(B)-556.1(includes interf)10(aces for joining tw)10(o)-556.2(o)0(r)]TJ
0 -1.2 TD
0 Tw
(more tables.)Tj
ET
endstream
endobj
19 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT9 8 0 R
/TT10 20 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
22 0 obj
<<
/Length 9070
>>
stream
BT
/TT2 1 Tf
12 0 0 12 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.25 Tw
[(3.10. T)74(ransactions)]TJ
/TT4 1 Tf
10 0 0 10 79.2 691.8 Tm
0 Tw
[(T)35(ransactions ha)20(v)15(e)15( )-15(four properties [Gray93]:)]TJ
8 0 0 8 84.2 675.6 Tm
(•)Tj
10 0 0 10 104.2008 675.6 Tm
0.2989 Tw
[(The)15(y)-548.9(are atomic.)-798.9(That is, all of the changes)]TJ
0 -1.2 TD
0.1475 Tw
(made in a single transaction must be applied at)Tj
T*
0.131 Tw
[(the same instant or not at all.)-631(This permits, for)]TJ
T*
0.3565 Tw
[(e)15(xample, the transfer of mone)15(y)-606.5(between tw)10(o)]TJ
T*
0.368 Tw
(accounts to be accomplished, by making the)Tj
T*
0.127 Tw
(reduction of the balance in one account and the)Tj
T*
0 Tw
(increase in the other into a single, atomic action.)Tj
8 0 0 8 84.2 587.4 Tm
(•)Tj
10 0 0 10 104.2008 587.4 Tm
0.0625 Tw
[(The)15(y)-312.5(must be consistent.)-562.5(That is, changes to the)]TJ
T*
0.3628 Tw
[(database by an)15(y)-612.8(transaction cannot lea)20(v)15(e)15( )-15.1(the)]TJ
T*
-0.0001 Tc
0.0001 Tw
[(database in an ille)14.9(gal)-250.1(o)-0.1(r)-250.1(corrupt state.)]TJ
8 0 0 8 84.2 547.2 Tm
0 Tc
0 Tw
(•)Tj
10 0 0 10 104.2008 547.2 Tm
-0.0001 Tc
0.0506 Tw
[(The)14.9(y)-300.7(must be isolatable.)-550.7(Re)14.9(gardless of the num-)]TJ
T*
0 Tc
0.08 Tw
[(ber of users w)10(orking in the database at the same)]TJ
T*
0.188 Tw
[(time, e)25(v)15(ery user must ha)20(v)15(e)15( )-15(the illusion that no)]TJ
T*
0 Tw
[(other acti)25(vity is going on.)]TJ
8 0 0 8 84.2 495 Tm
(•)Tj
10 0 0 10 104.2008 495 Tm
0.304 Tw
[(The)15(y)-554(must be durable.)-804(Ev)15(en if the disk that)]TJ
T*
0.0877 Tw
(stores the database is lost, it must be possible to)Tj
T*
0.0168 Tw
[(reco)15(v)15(e)0(r)-266.8(the database to its last transaction-consis-)]TJ
T*
0 Tw
(tent state.)Tj
-2.5 -1.62 TD
0.249 Tw
[(This combination of properties — atomicity)65(,)-499(consis-)]TJ
0 -1.2 TD
0.3243 Tw
[(tenc)15(y)65(,)65( )-64.9(isolation, and durability — is referred to as)]TJ
T*
0.3458 Tw
[(A)40(CIDity in the literature.)-845.9(Berk)10(ele)15(y)-595.8(DB, lik)10(e)-595.8(most)]TJ
T*
0.0993 Tw
[(database systems, pro)15(vides A)40(CIDity using a collection)]TJ
T*
0 Tw
(of core services.)Tj
0 -1.62 TD
0.0257 Tw
[(Programmers can choose to use Berk)10(ele)15(y)-275.7(DB’)55(s)-275.7(transac-)]TJ
0 -1.2 TD
0 Tw
(tion services for applications that need them.)Tj
/TT2 1 Tf
12 0 0 12 79.2 336.6 Tm
0.25 Tw
[(3.10.1. Write-ahead)-250(logging)]TJ
/TT4 1 Tf
10 0 0 10 79.2 320.4 Tm
0.0479 Tw
[(Programmers can enable the logging system when the)15(y)]TJ
T*
0.0917 Tw
[(start up Berk)10(ele)15(y)-341.8(DB. )-250.1(During)-341.7(a)-341.7(transaction, the appli-)]TJ
T*
0.0493 Tw
[(cation mak)10(es a series of changes to the database.)-549.4(Each)]TJ
T*
0.0552 Tw
[(change is captured in a log entry)65(,)-305.2(which holds the state)]TJ
T*
0.0207 Tw
(of the database record both before and after the change.)Tj
T*
0.2208 Tw
(The log record is guaranteed to be )Tj
/TT9 1 Tf
15.4567 0 TD
0 Tw
(ß)Tj
/TT4 1 Tf
0.5562 0 TD
0.2208 Tw
(ushed to stable)Tj
-16.0129 -1.2 TD
0.0871 Tw
[(storage before an)15(y)-337.1(o)0(f)-337.1(the changed data pages are writ-)]TJ
T*
0.1489 Tw
[(ten. )-250(This)-398.9(beha)20(vior — writing the log before the data)]TJ
T*
0 Tw
(pages — is called)Tj
/TT6 1 Tf
7.3311 0 TD
[(write-ahead lo)10(g)10(ging)]TJ
/TT4 1 Tf
8.1182 0 TD
(.)Tj
-15.4492 -1.62 TD
0.0835 Tw
[(At an)15(y)-333.5(time during the transaction, the application can)]TJ
/TT6 1 Tf
0 -1.2 TD
0 Tw
(commit)Tj
/TT4 1 Tf
2.9438 0 TD
0.1702 Tw
[(,)-420.2(making the changes permanent, or)]TJ
/TT6 1 Tf
15.5162 0 TD
0.1701 Tw
[(r)45(oll bac)20(k)]TJ
/TT4 1 Tf
3.6876 0 TD
0 Tw
(,)Tj
-22.1477 -1.2 TD
0.0852 Tw
(cancelling all changes and restoring the database to its)Tj
T*
0.157 Tw
[(pre-transaction state.)-657(If the application rolls back the)]TJ
T*
0.1003 Tw
(transaction, then the log holds the state of all changed)Tj
T*
0.05 Tw
[(pages prior to the transaction, and Berk)10(ele)15(y)-300(D)0(B)-300(simply)]TJ
T*
0.0226 Tw
[(restores that state.)-522.6(If the application commits the trans-)]TJ
T*
0.0538 Tw
[(action, Berk)10(ele)15(y)-303.8(D)0(B)-303.8(writes the log records to disk.)-553.7(In-)]TJ
T*
0.2312 Tw
(memory copies of the data pages already re)Tj
/TT9 1 Tf
18.9719 0 TD
0 Tw
(ß)Tj
/TT4 1 Tf
0.5562 0 TD
0.2312 Tw
(ect the)Tj
-19.5281 -1.2 TD
0.1399 Tw
(changes, and will be )Tj
/TT9 1 Tf
8.9737 0 TD
0 Tw
(ß)Tj
/TT4 1 Tf
0.5562 0 TD
0.1399 Tw
[(ushed as necessary during nor)20(-)]TJ
-9.5298 -1.2 TD
0.235 Tw
[(mal processing.)-735(Since log writes are sequential, b)20(u)0(t)]TJ
T*
0.8732 Tw
[(data page writes are random, this impro)15(v)15(e)0(s)]TJ
24.4 63.18 TD
0 Tw
(performance.)Tj
/TT2 1 Tf
12 0 0 12 323.2 678 Tm
0.25 Tw
[(3.10.2. Crashes)-250(and )250(r)18(eco)10(v)10(ery)]TJ
/TT4 1 Tf
10 0 0 10 323.2 661.8 Tm
0.1093 Tw
[(Berk)10(ele)15(y)-359.2(DB’)55(s)-359.2(write-ahead log is used by the transac-)]TJ
0 -1.2 TD
0.0414 Tw
[(tion system to commit or roll back transactions.)-541.4(It also)]TJ
T*
0.073 Tw
[(gi)25(v)15(e)0(s)-323(the reco)15(v)15(ery system the information that it needs)]TJ
T*
-0.0001 Tc
0.0825 Tw
(to protect against data loss or corruption from crashes.)Tj
T*
0 Tc
0.0204 Tw
[(Berk)10(ele)15(y)-270.3(D)0(B)-270.3(i)0(s)-270.4(able to survi)25(v)15(e)15( )-15(application crashes, sys-)]TJ
T*
0.0407 Tw
[(tem crashes, and e)25(v)15(en)-290.8(catastrophic f)10(ailures lik)10(e)-290.7(the loss)]TJ
T*
0 Tw
[(of a hard disk, without losing an)15(y)-250(data.)]TJ
0 -1.62 TD
0.0538 Tw
[(Survi)25(ving crashes requires data stored in se)25(v)15(eral dif)25(fer)20(-)]TJ
0 -1.2 TD
0.252 Tw
[(ent places.)-752(During normal processing, Berk)10(ele)15(y)-502(D)0(B)]TJ
T*
0.0766 Tw
[(has copies of acti)25(v)15(e)15( )-15(log records and recently-used data)]TJ
T*
0.1539 Tw
[(pages in memory)65(.)-653.9(Log records are )]TJ
/TT9 1 Tf
15.02 0 TD
0 Tw
(ß)Tj
/TT4 1 Tf
0.5562 0 TD
0.1539 Tw
(ushed to the log)Tj
-15.5762 -1.2 TD
0.0694 Tw
[(disk when transactions commit.)-569.4(Data pages trickle out)]TJ
T*
0.0008 Tw
(to the data disk as pages m)Tj
10.7245 0 TD
-0.015 Tc
0 Tw
(ove )Tj
1.6646 0 TD
0 Tc
0.0008 Tw
[(through the b)20(u)0(f)25(fer cache.)]TJ
-12.3892 -1.2 TD
0.0191 Tw
[(Periodically)65(,)-269.1(the system administrator backs up the data)]TJ
T*
0.0278 Tw
[(disk, creating a safe cop)10(y)-277.8(o)0(f)-277.8(the database at a particular)]TJ
T*
0.0109 Tw
[(instant. )-250(When)-260.9(the database is back)10(ed up, the log can be)]TJ
T*
0.1337 Tw
[(truncated. )-250.1(F)15(or maximum rob)20(ustness, the log disk and)]TJ
T*
0 Tw
[(data disk should be separate de)25(vices.)]TJ
0 -1.62 TD
0.129 Tw
[(Dif)25(ferent system f)10(ailures can destro)10(y)-379(memory)65(,)-379(the log)]TJ
0 -1.2 TD
0.1106 Tw
[(disk, or the data disk.)-610.6(Berk)10(ele)15(y)-360.6(D)0(B)-360.6(i)0(s)-360.6(able to survi)25(v)15(e)]TJ
T*
0.0679 Tw
[(the loss of an)15(y)-317.9(one of these repositories without losing)]TJ
T*
0 Tw
[(an)15(y)-250(committed transactions.)]TJ
0 -1.62 TD
0.1371 Tw
[(If the computer’)55(s)-387.1(memory is lost, through an applica-)]TJ
0 -1.2 TD
0.1619 Tw
(tion or operating system crash, then the log holds all)Tj
T*
0.1788 Tw
[(committed transactions.)-678.9(On restart, the reco)15(v)15(ery sys-)]TJ
T*
-0.0001 Tc
0.0491 Tw
[(tem rolls the log forw)9.9(ard against the database, reapply-)]TJ
T*
0 Tc
0.0681 Tw
[(ing an)15(y)-318.1(changes to on-disk pages that were in memory)]TJ
T*
0.014 Tw
[(at the time of the crash.)-514(Since the log contains pre- and)]TJ
T*
0.0956 Tw
[(post-change state for transactions, the reco)15(v)15(ery system)]TJ
T*
0.114 Tw
[(also uses the log to restore an)15(y)-364(pages to their original)]TJ
T*
0.1615 Tw
[(state if the)15(y)-411.5(were modi)]TJ
/TT9 1 Tf
9.7946 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.1615 Tw
[(ed by transactions that ne)25(v)15(e)0(r)]TJ
-10.3507 -1.2 TD
0 Tw
(committed.)Tj
0 -1.62 TD
0.2051 Tw
(If the data disk is lost, the system administrator can)Tj
0 -1.2 TD
0.0886 Tw
[(restore the most recent cop)10(y)-338.6(from backup.)-588.6(The reco)15(v-)]TJ
T*
-0.0001 Tc
0.1299 Tw
[(ery system will roll the entire log forw)9.9(ard against the)]TJ
T*
0 Tc
0.264 Tw
(original database, reapplying all committed changes.)Tj
T*
0.4363 Tw
(When it )Tj
/TT9 1 Tf
4.316 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.4363 Tw
[(nishes, the database will contain e)25(v)15(ery)]TJ
-4.8721 -1.2 TD
0.0534 Tw
[(change made by e)25(v)15(ery transaction that e)25(v)15(er)-303.4(committed.)]TJ
0 -1.62 TD
0.0494 Tw
[(If the log disk is lost, then the reco)15(v)15(ery system can use)]TJ
0 -1.2 TD
0.1853 Tw
[(the in-memory copies of log entries to roll back an)15(y)]TJ
T*
0.0026 Tw
(uncommitted transactions, )Tj
/TT9 1 Tf
10.8084 0 TD
0 Tw
(ß)Tj
/TT4 1 Tf
0.5561 0 TD
0.0026 Tw
(ush all in-memory database)Tj
-11.3646 -1.2 TD
0.1659 Tw
[(pages to the data disk, and shut do)25(wn gracefully)65(.)-665.8(A)0(t)]TJ
T*
0.2204 Tw
(that point, the system administrator can back up the)Tj
T*
0.0039 Tw
[(database disk, install a ne)25(w)-253.9(log disk, and restart the sys-)]TJ
T*
0 Tw
(tem.)Tj
ET
endstream
endobj
23 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
25 0 obj
<<
/Length 9301
>>
stream
BT
/TT2 1 Tf
12 0 0 12 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.25 Tw
(3.10.3. Checkpoints)Tj
/TT4 1 Tf
10 0 0 10 79.2 691.8 Tm
0.3585 Tw
[(Berk)10(ele)15(y)-608.5(D)0(B)-608.5(includes a checkpointing service that)]TJ
0 -1.2 TD
0.0263 Tw
[(interacts with the reco)15(v)15(ery system.)-526.3(During normal pro-)]TJ
T*
0.2415 Tw
(cessing, both the log and the database are changing)Tj
T*
0.0924 Tw
[(continually)65(.)-592.5(A)0(t)-342.5(a)0(n)15(y)15( )-15(gi)25(v)25( )332.4(en)-342.4(instant, the on-disk v)15(ersions)]TJ
T*
0.0414 Tw
[(of the tw)10(o)-291.4(are not guaranteed to be consistent.)-541.4(The log)]TJ
T*
0.3838 Tw
(probably contains changes that are not yet in the)Tj
T*
0 Tw
(database.)Tj
0 -1.62 TD
0.0085 Tw
[(When an application mak)10(es a)]TJ
/TT6 1 Tf
12.0556 0 TD
0 Tw
[(c)15(hec)20(kpoint)]TJ
/TT4 1 Tf
4.2961 0 TD
0.0086 Tw
[(,)-258.6(all committed)]TJ
-16.3517 -1.2 TD
0.0443 Tw
(changes in the log up to that point are guaranteed to be)Tj
T*
0.0631 Tw
[(present on the data disk, too.)-563.1(Checkpointing is moder)20(-)]TJ
T*
0.0045 Tw
[(ately e)15(xpensi)25(v)15(e)15( )-15.1(during normal processing, b)20(ut limits the)]TJ
T*
0 Tw
[(time spent reco)15(v)15(ering from crashes.)]TJ
0 -1.62 TD
0.3117 Tw
(After an application or operating system crash, the)Tj
0 -1.2 TD
0.7419 Tw
[(reco)15(v)15(ery system only needs to go back tw)10(o)]TJ
0 -1.4 TD
0 Tw
(checkpoints)Tj
7 0 0 7 126.9637 517.4 Tm
(1)Tj
10 0 0 10 134.3397 513.4 Tm
0.1376 Tw
[(to start rolling the log forw)10(ard. )-249.9(W)40(ithout)]TJ
-5.514 -1.2 TD
0.3264 Tw
[(checkpoints, there is no w)10(ay to be sure ho)25(w)-576.5(long)]TJ
T*
0.0395 Tw
[(restarting after a crash will tak)10(e. )-250(W)40(ith checkpoints, the)]TJ
T*
0.0088 Tw
[(restart interv)25(al can be )]TJ
/TT9 1 Tf
8.8948 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0089 Tw
[(x)15(ed by the programmer)55(.)-508.9(Reco)15(v-)]TJ
-9.4509 -1.2 TD
0.0668 Tw
(ery processing can be guaranteed to complete in a sec-)Tj
T*
0 Tw
[(ond or tw)10(o.)]TJ
0 -1.62 TD
0.2457 Tw
[(Softw)10(are crashes are much more common than disk)]TJ
0 -1.2 TD
0.0884 Tw
[(f)10(ailures. )-250.1(Man)15(y)-338.5(d)0(e)25(v)25( )328.4(elopers w)10(ant to guarantee that soft-)]TJ
T*
0.0158 Tw
[(w)10(are b)20(ugs do not destro)10(y)-265.8(data, b)20(ut are willing to restore)]TJ
T*
0.063 Tw
[(from tape, and to tolerate a day or tw)10(o)-313.1(o)0(f)-313.1(lost w)10(ork, in)]TJ
T*
0.089 Tw
[(the unlikle)15(y)-339(e)25(v)15(ent of a disk crash.)-589(W)40(ith Berk)10(ele)15(y)-339(DB,)]TJ
T*
0.1093 Tw
[(programmers may truncate the log at checkpoints.)-609.2(As)]TJ
T*
0.009 Tw
[(long as the tw)10(o)-259(most recent checkpoints are present, the)]TJ
T*
0.0106 Tw
[(reco)15(v)15(ery system can guarantee that no committed trans-)]TJ
T*
0.0611 Tw
[(actions are lost after a softw)10(are crash.)-561.1(In this case, the)]TJ
T*
0.1439 Tw
[(reco)15(v)15(ery system does not require that the log and the)]TJ
T*
0.1328 Tw
[(data be on separate de)25(vices, although separating them)]TJ
T*
0 Tw
(can still impr)Tj
5.2769 0 TD
-0.015 Tc
(ove )Tj
1.6638 0 TD
0 Tc
(performance by spreading out writes.)Tj
/TT2 1 Tf
12 0 0 12 79.2 275.2 Tm
0.25 Tw
[(3.10.4. T)74(w)10(o-phase )250(locking)]TJ
/TT4 1 Tf
10 0 0 10 79.2 259 Tm
0.1915 Tw
[(Berk)10(ele)15(y)-441.6(D)0(B)-441.6(pro)15(vides a service kno)25(wn as tw)10(o-phase)]TJ
0 -1.2 TD
0.0517 Tw
[(locking. )-250(In)-301.7(order to reduce the lik)10(elihood of deadlocks)]TJ
T*
0.2546 Tw
[(and to guarantee A)40(CID properties, database systems)]TJ
T*
0.0063 Tw
[(manage locks in tw)10(o)-256.4(phases. )-250.1(First,)-256.4(during the operation)]TJ
T*
0.1573 Tw
[(of a transaction, the)15(y)-407.4(acquire locks, b)20(ut ne)25(v)15(e)0(r)-407.3(release)]TJ
T*
0.3648 Tw
[(them. )-249.9(Second,)-614.7(at the end of the transaction, the)15(y)]TJ
T*
0.0235 Tw
[(release locks, b)20(ut ne)25(v)15(e)0(r)-273.5(acquire them.)-523.5(In practice, most)]TJ
T*
0.469 Tw
[(database systems, including Berk)10(ele)15(y)-719(DB, acquire)]TJ
T*
0.2314 Tw
[(locks on demand o)15(v)15(e)0(r)-481.4(the course of the transaction,)]TJ
T*
0 Tw
(then )Tj
/TT9 1 Tf
1.9717 0 TD
(ß)Tj
/TT4 1 Tf
0.5562 0 TD
(ush the log, then release all locks.)Tj
ET
0 G
1 J 1 j 0.32 w 10 M []0 d
1 i
79.23 141.39 m
223.23 141.39 l
S
BT
5 0 0 5 100.8 131 Tm
(1)Tj
8 0 0 8 105.638 127.8 Tm
0.0422 Tw
[(One checkpoint is not f)10(ar enough.)-542.2(The reco)15(v)15(ery system can-)]TJ
-3.3047 -1.2 TD
0.0264 Tw
[(not be sure that the most recent checkpoint completed — it may ha)20(v)15(e)]TJ
T*
0.0917 Tw
[(been interrupted by the crash that forced the reco)15(v)15(ery system to run)]TJ
T*
0 Tw
(in the )Tj
/TT9 1 Tf
2.4995 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
(rst place.)Tj
10 0 0 10 323.2 708 Tm
0.0806 Tw
[(Berk)10(ele)15(y)-330.6(D)0(B)-330.6(can lock entire database )]TJ
/TT9 1 Tf
15.7853 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0806 Tw
[(les, which cor)20(-)]TJ
-16.3414 -1.2 TD
0.0844 Tw
[(respond to tables, or indi)25(vidual pages in them.)-584.4(It does)]TJ
T*
0.2141 Tw
[(no record-le)25(v)15(e)0(l)-464.1(locking. )-250(By)-464.1(shrinking the page size,)]TJ
T*
0.3626 Tw
[(ho)25(we)25(v)15(e)0(r)40(,)40( )-40.1(de)25(v)25( )602.6(elopers can guarantee that e)25(v)15(ery page)]TJ
T*
0.2101 Tw
[(holds only a small number of records.)-710.2(This reduces)]TJ
T*
0 Tw
(contention.)Tj
0 -1.62 TD
0.0388 Tw
(If locking is enabled, then read and write operations on)Tj
0 -1.2 TD
0.2817 Tw
[(a)-531.7(database acquire tw)10(o-phase locks, which are held)]TJ
T*
0.3635 Tw
[(until the transaction completes.)-863.5(Which objects are)]TJ
T*
0.0738 Tw
[(lock)10(ed and the order of lock acquisition depend on the)]TJ
T*
0.0502 Tw
[(w)10(orkload for each transaction.)-550.2(It is possible for tw)10(o)-300.2(o)0(r)]TJ
T*
0.1315 Tw
[(more transactions to deadlock, so that each is w)10(aiting)]TJ
T*
0 Tw
[(for a lock that is held by another)55(.)]TJ
0 -1.62 TD
0.0807 Tw
[(Berk)10(ele)15(y)-330.7(D)0(B)-330.7(detects deadlocks and automatically rolls)]TJ
0 -1.2 TD
0.1825 Tw
[(back one of the transactions.)-682.5(This releases the locks)]TJ
T*
0.1925 Tw
[(that it held and allo)25(ws the other transactions to con-)]TJ
T*
0.0847 Tw
[(tinue. )-249.9(The)-334.6(caller is noti)]TJ
/TT9 1 Tf
9.8357 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0847 Tw
(ed that its transaction did not)Tj
-10.3918 -1.2 TD
0.1747 Tw
[(complete, and may restart it.)-674.7(De)25(v)15(elopers can specify)]TJ
T*
0.0646 Tw
[(the deadlock detection interv)25(al and the polic)15(y)-314.7(t)0(o)-314.7(use in)]TJ
T*
0 Tw
(choosing a transaction to roll back.)Tj
0 -1.62 TD
0.6686 Tw
[(The tw)10(o-phase locking interf)10(aces are separately)]TJ
0 -1.2 TD
0.0927 Tw
[(callable by applications that link Berk)10(ele)15(y)-342.7(DB, though)]TJ
T*
0.314 Tw
[(fe)25(w)-564(users ha)20(v)15(e)15( )-15(needed to use that f)10(acility directly)65(.)]TJ
T*
0.2211 Tw
[(Using these interf)10(aces, Berk)10(ele)15(y)-471.1(D)0(B)-471.2(pro)15(vides a f)10(ast,)]TJ
T*
0.24 Tw
(platform-portable locking system for general-purpose)Tj
T*
0.0418 Tw
[(use. )-249.9(It)-291.7(also lets users include non-database objects in a)]TJ
T*
0.3497 Tw
(database transaction, by controlling access to them)Tj
T*
0 Tw
[(e)15(xactly as if the)15(y)-250(were inside the database.)]TJ
0 -1.62 TD
0.0583 Tw
[(The Berk)10(ele)15(y)-308.3(D)0(B)-308.4(t)0(w)10(o-phase locking f)10(acility is b)20(uilt on)]TJ
0 -1.2 TD
0.0608 Tw
[(the f)10(astest correct locking primiti)25(v)15(e)0(s)-310.8(that are supported)]TJ
T*
0.1967 Tw
[(by the underlying architecture.)-696.7(In the current imple-)]TJ
T*
0.0593 Tw
[(mentation, this means that the locking system is dif)25(fer)20(-)]TJ
T*
0.1709 Tw
[(ent on the v)25(arious UNIX platforms, and is still more)]TJ
T*
0.0695 Tw
[(dif)25(ferent on W)40(indo)25(ws NT)74(.)-569.5(I)0(n)-319.5(our e)15(xperience, the most)]TJ
T*
0 Tw
(dif)Tj
/TT9 1 Tf
1.0858 0 TD
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2634 Tw
(cult aspect of performance tuning is )Tj
/TT9 1 Tf
16.1864 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2634 Tw
(nding the)Tj
-18.3845 -1.2 TD
0.0882 Tw
[(f)10(astest locking primiti)25(v)15(e)0(s)-338.3(that w)10(ork correctly on a par)20(-)]TJ
T*
0.126 Tw
[(ticular architecture and then inte)15(grating the ne)25(w)-376(inter)20(-)]TJ
T*
0 Tw
[(f)10(ace with the se)25(v)15(eral that we already support.)]TJ
0 -1.62 TD
0.0536 Tw
[(The w)10(orld w)10(ould be a better place if the operating sys-)]TJ
0 -1.2 TD
0.2096 Tw
[(tems community w)10(ould uniformly implement POSIX)]TJ
T*
0.131 Tw
[(locking primiti)25(v)15(e)0(s)-381(and w)10(ould guarantee that acquiring)]TJ
T*
0.1085 Tw
[(an uncontested lock w)10(as a f)10(ast operation.)-608.5(Locks must)]TJ
T*
0.3641 Tw
[(w)10(ork both among threads in a single process and)]TJ
T*
0 Tw
(among processes.)Tj
/TT2 1 Tf
12 0 0 12 323.2 141 Tm
0.25 Tw
[(3.11. Concurr)18(ency)]TJ
/TT4 1 Tf
10 0 0 10 323.2 124.8 Tm
0.0383 Tw
(Good performance under concurrent operation is a crit-)Tj
T*
0.0766 Tw
[(ical design point for Berk)10(ele)15(y)-326.6(DB. )-249.9(Although)-326.5(Berk)10(ele)15(y)]TJ
T*
0.1961 Tw
(DB is itself not multi-threaded, it is thread-safe, and)Tj
T*
0.0547 Tw
[(runs well in threaded applications.)-554.6(Philosophically)65(,)-304.6(w)0(e)]TJ
T*
0.2264 Tw
[(vie)25(w)-476.4(the use of threads and the choice of a threads)]TJ
ET
endstream
endobj
26 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
28 0 obj
<<
/Length 8993
>>
stream
BT
/TT4 1 Tf
10 0 0 10 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.0065 Tw
[(package as a polic)15(y)-256.6(decision, and prefer to of)25(fer mecha-)]TJ
0 -1.2 TD
0.0042 Tw
[(nism \(the ability to run threaded or not\), allo)25(wing appli-)]TJ
T*
0 Tw
[(cations to choose their o)25(wn policies.)]TJ
0 -1.62 TD
0.1947 Tw
[(The locking, logging, and b)20(u)0(f)25(fer pool subsystems all)]TJ
0 -1.2 TD
0.0711 Tw
(use shared memory or other OS-speci)Tj
/TT9 1 Tf
15.4346 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0711 Tw
[(c sharing f)10(acili-)]TJ
-15.9908 -1.2 TD
0.1713 Tw
[(ties to communicate.)-671.3(Locks, b)20(u)0(f)25(fer pool fetches, and)]TJ
T*
0.1061 Tw
[(log writes beha)20(v)15(e)15( )-15(in)-356.1(the same w)10(ay across threads in a)]TJ
T*
0.0032 Tw
[(single process as the)15(y)-253.2(d)0(o)-253.2(across dif)25(ferent processes on a)]TJ
T*
0 Tw
(single machine.)Tj
0 -1.62 TD
0.0896 Tw
(As a result, concurrent database applications may start)Tj
0 -1.2 TD
0.1651 Tw
[(up a ne)25(w)-415.1(process for e)25(v)15(ery single user)40(,)-415.1(may create a)]TJ
T*
0.2848 Tw
[(single serv)15(er which spa)15(wns a ne)25(w)-534.9(thread for e)25(v)15(ery)]TJ
T*
0 Tw
[(client request, or may choose an)15(y)-250(polic)15(y)-250(i)0(n)-250(between.)]TJ
0 -1.62 TD
0.1128 Tw
[(Berk)10(ele)15(y)-362.9(D)0(B)-362.9(has been carefully designed to minimize)]TJ
0 -1.2 TD
0.007 Tw
[(contention and maximize concurrenc)15(y)65(.)65( )-315(The cache man-)]TJ
T*
0.057 Tw
[(ager allo)25(ws all threads or processes to bene)]TJ
/TT9 1 Tf
17.6733 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.057 Tw
(t from I/O)Tj
-18.2295 -1.2 TD
0.2917 Tw
[(done by one.)-791.7(Shared resources must sometimes be)]TJ
T*
0.1804 Tw
[(lock)10(ed for e)15(xclusi)25(v)15(e)15( )-15(access by one thread of control.)]TJ
T*
0.0158 Tw
[(W)80(e)80( )-79.9(ha)20(v)20( )260.8(e)-265.7(k)10(ept critical sections small, and are careful not)]TJ
T*
0.1199 Tw
(to hold critical resource locks across system calls that)Tj
T*
0.0538 Tw
[(could deschedule the locking thread or process.)-553.9(Sleep-)]TJ
T*
0.0979 Tw
[(ycat Softw)10(are has customers with hundreds of concur)20(-)]TJ
T*
0 Tw
[(rent users w)10(orking on a single database in production.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 401.4 Tm
0.25 Tw
[(4. Engineering)-250(Philosoph)15(y)]TJ
/TT4 1 Tf
10 0 0 10 79.2 385.2 Tm
0.1499 Tw
[(Fundamentally)65(,)-399.8(Berk)10(ele)15(y)-399.8(D)0(B)-399.8(i)0(s)-399.9(a)-399.9(collection of access)]TJ
T*
0.019 Tw
[(methods with important f)10(acilities, lik)10(e)-269(logging, locking,)]TJ
T*
0.1251 Tw
[(and transactional access underlying them.)-625.2(In both the)]TJ
T*
0.0991 Tw
[(research and the commercial w)10(orld, the techniques for)]TJ
T*
0.2727 Tw
[(b)20(uilding systems lik)10(e)-522.7(Berk)10(ele)15(y)-522.7(D)0(B)-522.7(h)0(a)20(v)20( )517.7(e)-522.7(been well-)]TJ
T*
0 Tw
[(kno)25(wn for a long time.)]TJ
0 -1.62 TD
0.0442 Tw
[(The k)10(e)15(y)15( )-15.1(adv)25(antage of Berk)10(ele)15(y)-294.2(D)0(B)-294.2(i)0(s)-294.2(the careful atten-)]TJ
0 -1.2 TD
0.1059 Tw
(tion that has been paid to engineering details through-)Tj
T*
0.1039 Tw
[(out its life.)-603.9(W)80(e)80( )-80(ha)20(v)20( )348.9(e)-353.9(carefully designed the system so)]TJ
T*
0.0452 Tw
[(that the core f)10(acilities, lik)10(e)-295.2(locking and I/O, surf)10(ace the)]TJ
T*
0.0971 Tw
[(right interf)10(aces and are otherwise opaque to the caller)55(.)]TJ
T*
0.0294 Tw
[(As programmers, we understand the v)25(alue of simplicity)]TJ
T*
0.0205 Tw
[(and ha)20(v)15(e)15( )-15.1(w)10(ork)10(ed hard to simplify the interf)10(aces we sur)20(-)]TJ
T*
0 Tw
[(f)10(ace to users of the database system.)]TJ
0 -1.62 TD
0.2031 Tw
[(Berk)10(ele)15(y)-453.1(D)0(B)-453.1(a)20(v)20(oids limits in the code.)-703.1(It places no)]TJ
0 -1.2 TD
0.0473 Tw
[(practical limit on the size of k)10(e)15(ys, v)25(alues, or databases;)]TJ
T*
0 Tw
[(the)15(y)-250(may gro)25(w)-250(t)0(o)-250(occup)10(y)-250(the a)20(v)25(ailable storage space.)]TJ
0 -1.62 TD
0.1857 Tw
[(The locking and logging subsystems ha)20(v)15(e)15( )-15(been care-)]TJ
0 -1.2 TD
0.0184 Tw
(fully crafted to reduce contention and impr)Tj
17.2706 0 TD
-0.015 Tc
0 Tw
(ove )Tj
1.6822 0 TD
0 Tc
(through-)Tj
-18.9528 -1.2 TD
0.216 Tw
(put by shrinking or eliminating critical sections, and)Tj
T*
0 Tw
[(reducing the sizes of lock)10(ed re)15(gions and log entries.)]TJ
0 -1.62 TD
0.2238 Tw
(There is nothing in the design or implementation of)Tj
0 -1.2 TD
0.0318 Tw
[(Berk)10(ele)15(y)-281.8(D)0(B)-281.8(that pushes the state of the art in database)]TJ
T*
0.1044 Tw
[(systems. )-250.1(Rather)40(,)-354.5(w)0(e)-354.5(h)0(a)20(v)20( )349.4(e)-354.5(been v)15(ery careful to get the)]TJ
T*
0.4321 Tw
[(engineering right.)-932.1(The result is a system that is)]TJ
24.4 62.76 TD
0.0366 Tw
[(superior)40(,)-286.7(a)0(s)-286.7(a)0(n)-286.6(embedded database system, to an)15(y)-286.6(other)]TJ
0 -1.2 TD
0 Tw
[(solution a)20(v)25(ailable.)]TJ
0 -1.62 TD
0.0811 Tw
[(Most database systems trade of)25(f)-331.2(simplicity for correct-)]TJ
0 -1.2 TD
0.1651 Tw
[(ness. )-250(Either)-415.1(the system is easy to use, or it supports)]TJ
T*
0.117 Tw
[(concurrent use and survi)25(v)15(e)0(s)-367(system f)10(ailures. )-250(Berk)10(ele)15(y)]TJ
T*
0.1013 Tw
(DB, because of its careful design and implementation,)Tj
T*
0 Tw
[(of)25(fers both simplicity and correctness.)]TJ
0 -1.62 TD
0.0759 Tw
[(The system has a small footprint, mak)10(es simple opera-)]TJ
0 -1.2 TD
0.1012 Tw
[(tions simple to carry out \(inserting a ne)25(w)-351.2(record tak)10(es)]TJ
T*
0.116 Tw
[(just a fe)25(w)-366(lines of code\), and beha)20(v)15(e)0(s)-366(correctly in the)]TJ
T*
0.0527 Tw
[(f)10(ace of hea)20(vy concurrent use, system crashes, and e)25(v)15(en)]TJ
T*
0 Tw
[(catastrophic f)10(ailures lik)10(e)-250(loss of a hard disk.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 537.6 Tm
[(5. )-250(The)-250(Berk)10(eley DB 2.x Distrib)20(ution)]TJ
/TT4 1 Tf
10 0 0 10 323.2 521.4 Tm
0.1671 Tw
[(Berk)10(ele)15(y)-417.1(D)0(B)-417.1(i)0(s)-417.1(distrib)20(uted in source code form from)]TJ
/TT6 1 Tf
T*
0 Tw
[(www)74(.sleepycat.com)]TJ
/TT4 1 Tf
7.8132 0 TD
0.2321 Tw
[(.)-732.2(Users are free to do)25(wnload and)]TJ
-7.8132 -1.2 TD
0 Tw
[(b)20(uild the softw)10(are, and to use it in their applications.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 467.4 Tm
[(5.1. )-250(What)-250(is in the distrib)20(ution)]TJ
/TT4 1 Tf
10 0 0 10 323.2 451.2 Tm
0.4827 Tw
[(The distrib)20(ution is a compressed archi)25(v)15(e)15( )]TJ
/TT9 1 Tf
19.2761 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.7328 Tw
(le. It)Tj
-19.8323 -1.2 TD
0.0057 Tw
[(includes the source code for the Berk)10(ele)15(y)-255.6(D)0(B)-255.6(library)65(,)-255.6(a)0(s)]TJ
T*
0.0453 Tw
(well as documentation, test suites, and supporting utili-)Tj
T*
0 Tw
(ties.)Tj
0 -1.62 TD
0.2612 Tw
[(The source code includes b)20(uild support for all sup-)]TJ
0 -1.2 TD
0.0254 Tw
[(ported platforms.)-525.4(On UNIX systems Berk)10(ele)15(y)-275.5(D)0(B)-275.5(uses)]TJ
T*
0.128 Tw
(the GNU autocon)Tj
/TT9 1 Tf
7.3097 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.128 Tw
(guration tool,)Tj
/TT8 1 Tf
5.8942 0 TD
0 Tw
(autoconf)Tj
/TT4 1 Tf
4.8008 0 TD
[(,)-378(t)0(o)-378(iden-)]TJ
-18.5608 -1.2 TD
0.0992 Tw
[(tify the system and to b)20(uild the library and supporting)]TJ
T*
0.3589 Tw
[(utilities. Berk)10(ele)15(y)-358.9(D)0(B)-358.8(includes )250.1(speci)]TJ
/TT9 1 Tf
15.2961 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.1088 Tw
[(c b)20(uild en)40(viron-)]TJ
-15.8523 -1.2 TD
0.0515 Tw
[(ments for other platforms, such as VMS and W)40(indo)25(ws.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 309 Tm
0.25 Tw
(5.1.1. Documentation)Tj
/TT4 1 Tf
10 0 0 10 323.2 292.8 Tm
0.5008 Tw
[(The distrib)20(uted system includes documentation in)]TJ
T*
0.1626 Tw
[(HTML format.)-662.6(The documentation is in tw)10(o)-412.7(parts: a)]TJ
T*
0.0725 Tw
(UNIX-style reference manual for use by programmers,)Tj
T*
0 Tw
(and a reference guide which is tutorial in nature.)Tj
/TT2 1 Tf
12 0 0 12 323.2 226.8 Tm
0.25 Tw
[(5.1.2. T)92(est )250(suite)]TJ
/TT4 1 Tf
10 0 0 10 323.2 210.6 Tm
0.1107 Tw
[(The softw)10(are also includes a complete test suite, writ-)]TJ
T*
0.0154 Tw
[(ten in Tcl.)-515.4(W)80(e)80( )-80(belie)25(v)15(e)15( )-15(that the test suite is a k)10(e)15(y)15( )-15(adv)25(an-)]TJ
T*
0 Tw
[(tage of Berk)10(ele)15(y)-250(D)0(B)-250(o)15(v)15(e)0(r)-250(comparable systems.)]TJ
0 -1.62 TD
0.2612 Tw
[(First, the test suite allo)25(ws users who do)25(wnload and)]TJ
0 -1.2 TD
0.1731 Tw
[(b)20(uild the softw)10(are to be sure that it is operating cor)20(-)]TJ
T*
0 Tw
[(rectly)65(.)]TJ
0 -1.62 TD
0.0893 Tw
[(Second, the test suite allo)25(ws us, lik)10(e)-339.4(other commercial)]TJ
0 -1.2 TD
0.0535 Tw
[(de)25(v)15(elopers of database softw)10(are, to e)15(x)15(ercise the system)]TJ
T*
0.2256 Tw
[(thoroughly at e)25(v)15(ery release.)-725.6(When we learn of ne)25(w)]TJ
T*
0.1719 Tw
[(b)20(ugs, we add them to the test suite.)-671.9(W)80(e)80( )-80(run the test)]TJ
T*
0.5692 Tw
[(suite continually during de)25(v)15(elopment c)15(ycles, and)]TJ
ET
endstream
endobj
29 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT8 7 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
31 0 obj
<<
/Length 8823
>>
stream
BT
/TT4 1 Tf
10 0 0 10 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.0314 Tw
[(al)10(w)10(ays prior to release.)-531.4(The result is a much more reli-)]TJ
0 -1.2 TD
0 Tw
(able system by the time it reaches beta release.)Tj
/TT2 1 Tf
12 0 0 12 79.2 666 Tm
0.25 Tw
[(5.2. Binary)-250(distrib)20(ution)]TJ
/TT4 1 Tf
10 0 0 10 79.2 649.8 Tm
0.0893 Tw
[(Sleep)10(ycat mak)10(es compiled libraries and general binary)]TJ
T*
0 Tw
[(distrib)20(utions a)20(v)25(ailable to customers for a fee.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 607.8 Tm
0.25 Tw
[(5.3. Supported)-250(platf)25(orms)]TJ
/TT4 1 Tf
10 0 0 10 79.2 591.6 Tm
0.3122 Tw
[(Berk)10(ele)15(y)-562.3(D)0(B)-562.3(runs on an)15(y)-562.2(operating system with a)]TJ
T*
0.0816 Tw
[(POSIX 1003.1 interf)10(ace [IEEE96], which includes vir)20(-)]TJ
T*
0.1997 Tw
[(tually e)25(v)15(ery UNIX system.)-699.7(In addition, the softw)10(are)]TJ
T*
0.285 Tw
[(runs on VMS, W)40(indo)25(ws/95, W)40(indo)25(ws/98, and W)40(in-)]TJ
T*
0.521 Tw
[(do)25(ws/NT)74(.)-1021(Sleep)10(ycat Softw)10(are no longer supports)]TJ
T*
0 Tw
[(deplo)10(yment on sixteen-bit W)40(indo)25(ws systems.)]TJ
/TT2 1 Tf
12 0 0 12 79.2 501.6 Tm
[(6. )-250(Berk)10(eley DB 2.x Licensing)]TJ
/TT4 1 Tf
10 0 0 10 79.2 485.4 Tm
0.0128 Tw
[(Berk)10(ele)15(y)-262.7(D)0(B)-262.7(2.x is distrib)20(uted as an Open Source prod-)]TJ
T*
0.2209 Tw
[(uct. )-250(The)-470.9(softw)10(are is freely a)20(v)25(ailable from us at our)]TJ
T*
0.0872 Tw
[(W)80(e)0(b)-337.2(site, and in other media.)-587.2(Users are free to do)25(wn-)]TJ
T*
0 Tw
[(load the softw)10(are and b)20(uild applications with it.)]TJ
0 -1.62 TD
0.1022 Tw
[(The 1.x v)15(ersions of Berk)10(ele)15(y)-352.2(D)0(B)-352.2(were co)15(v)15(ered by the)]TJ
0 -1.2 TD
0.3763 Tw
[(UC Berk)10(ele)15(y)-626.3(cop)10(yright that co)15(v)15(ers softw)10(are freely)]TJ
T*
0.1741 Tw
[(redistrib)20(utable in source form.)-674.2(When Sleep)10(ycat Soft-)]TJ
T*
0.0906 Tw
[(w)10(are w)10(as formed, we needed to draft a license consis-)]TJ
T*
0.2318 Tw
[(tent with the cop)10(yright go)15(v)15(erning the e)15(xisting, older)]TJ
T*
0.2828 Tw
[(softw)10(are. )-250(Because)-532.8(of important dif)25(ferences between)]TJ
T*
0.0496 Tw
[(the UC Berk)10(ele)15(y)-299.7(cop)10(yright and the GPL, it w)10(as impos-)]TJ
T*
0.0884 Tw
[(sible for us to use the GPL.)-588.4(A)-338.4(second cop)10(yright, with)]TJ
T*
0.087 Tw
(terms contradictory to the )Tj
/TT9 1 Tf
10.9002 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.087 Tw
[(rst, simply w)10(ould not ha)20(v)15(e)]TJ
-11.4564 -1.2 TD
0 Tw
[(w)10(ork)10(ed.)]TJ
0 -1.62 TD
0.2533 Tw
[(Sleep)10(ycat w)10(anted to continue Open Source de)25(v)15(elop-)]TJ
0 -1.2 TD
0.2079 Tw
[(ment of Berk)10(ele)15(y)-457.9(D)0(B)-457.9(for se)25(v)15(eral reasons.)-707.8(W)80(e)80( )-79.9(agree)]TJ
T*
0.0853 Tw
(with Raymond [Raym98] and others that Open Source)Tj
T*
0.0763 Tw
[(softw)10(are is typically of higher quality than proprietary)65(,)]TJ
T*
0.2616 Tw
[(binary-only products.)-761.6(Our customers bene)]TJ
/TT9 1 Tf
18.1535 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2617 Tw
(t from a)Tj
-18.7097 -1.2 TD
0.0983 Tw
[(community of de)25(v)15(elopers who kno)25(w)-348.3(and use Berk)10(ele)15(y)]TJ
T*
0.1317 Tw
[(DB, and can help with application design, deb)20(ugging,)]TJ
T*
0.165 Tw
[(and performance tuning.)-665(W)40(idespread distrib)20(ution and)]TJ
T*
0.1017 Tw
[(use of the source code tends to isolate b)20(ugs early)65(,)-351.7(and)]TJ
T*
0.0032 Tw
(to get )Tj
/TT9 1 Tf
2.5059 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.0031 Tw
[(x)15(es back into the distrib)20(uted system quickly)65(.)-503.1(A)0(s)]TJ
-3.0621 -1.2 TD
0.1053 Tw
[(a)-355.3(result, Berk)10(ele)15(y)-355.3(D)0(B)-355.3(i)0(s)-355.3(more reliable.)-605.4(Just as impor)20(-)]TJ
T*
0.1195 Tw
[(tantly)65(,)-369.5(indi)25(vidual users are able to contrib)20(ute ne)25(w)-369.5(fea-)]TJ
T*
0.1056 Tw
(tures and performance enhancements, to the bene)Tj
/TT9 1 Tf
20.3748 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.1056 Tw
(t of)Tj
-20.931 -1.2 TD
0.0358 Tw
[(e)25(v)25( )275.8(eryone who uses Berk)10(ele)15(y)-285.9(DB. )-250.1(From)-285.9(a)-285.8(b)20(usiness per)20(-)]TJ
T*
0.0615 Tw
[(specti)25(v)15(e)0(,)-311.5(Open Source and free distrib)20(ution of the soft-)]TJ
T*
0.1605 Tw
[(w)10(are creates share for us, and gi)25(v)15(e)0(s)-410.5(u)0(s)-410.5(a)-410.5(mark)10(et into)]TJ
T*
0.0412 Tw
[(which we can sell products and services.)-541.3(Finally)65(,)-291.3(mak-)]TJ
T*
0.0147 Tw
[(ing the source code freely a)20(v)25(ailable reduces our support)]TJ
T*
0.2436 Tw
(load, since customers can )Tj
/TT9 1 Tf
11.4432 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2436 Tw
(nd and )Tj
/TT9 1 Tf
3.431 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
0.2436 Tw
[(x b)20(ugs without)]TJ
-15.9865 -1.2 TD
0 Tw
[(recourse to us, in man)15(y)-250(cases.)]TJ
24.4 62.7 TD
0.3126 Tw
[(T)80(o)80( )-80.1(preserv)15(e)-562.7(the Open Source heritage of the older)]TJ
0 -1.2 TD
0.0504 Tw
[(Berk)10(ele)15(y)-300.3(D)0(B)-300.3(code, we drafted a ne)25(w)-300.4(license go)15(v)15(erning)]TJ
T*
0.0416 Tw
[(the distrib)20(ution of Berk)10(ele)15(y)-291.6(D)0(B)-291.6(2.x. )-250(W)80(e)-291.6(adopted terms)]TJ
T*
0.0411 Tw
[(from the GPL that mak)10(e)-291.1(i)0(t)-291.1(impossible to turn our Open)]TJ
T*
0.1288 Tw
[(Source code into proprietary code o)25(wned by someone)]TJ
T*
0 Tw
(else.)Tj
0 -1.62 TD
(Brie)Tj
/TT9 1 Tf
1.7217 0 TD
(ß)Tj
/TT4 1 Tf
0.5562 0 TD
0.068 Tw
[(y)65(,)-318(the terms go)15(v)15(erning the use and distrib)20(ution of)]TJ
-2.2778 -1.2 TD
0 Tw
[(Berk)10(ele)15(y)-250(D)0(B)-250(are:)]TJ
8 0 0 8 328.2 603.6 Tm
(•)Tj
10 0 0 10 348.2008 603.6 Tm
(your application must be internal to your site, or)Tj
8 0 0 8 328.2 587.4 Tm
(•)Tj
10 0 0 10 348.2008 587.4 Tm
0.0611 Tw
[(your application must be freely redistrib)20(utable in)]TJ
T*
0 Tw
(source form, or)Tj
8 0 0 8 328.2 559.2 Tm
(•)Tj
10 0 0 10 348.2008 559.2 Tm
(you must get a license from us.)Tj
-2.5001 -1.62 TD
0.0131 Tw
[(F)15(o)0(r)-263.1(customers who prefer not to distrib)20(ute Open Source)]TJ
0 -1.2 TD
0.1492 Tw
[(products, we sell licenses to use and e)15(xtend Berk)10(ele)15(y)]TJ
T*
0 Tw
(DB at a reasonable cost.)Tj
0 -1.62 TD
0.1076 Tw
[(W)80(e)80( )-79.9(w)10(ork hard to accommodate the needs of the Open)]TJ
0 -1.2 TD
0.0605 Tw
[(Source community)65(.)-560.6(F)15(or e)15(xample, we ha)20(v)15(e)15( )-15(crafted spe-)]TJ
T*
0.1415 Tw
(cial licensing arrangements with Gnome to encourage)Tj
T*
0 Tw
[(its use and distrib)20(ution of Berk)10(ele)15(y)-250(DB.)]TJ
0 -1.62 TD
0.1603 Tw
[(Berk)10(ele)15(y)-410.3(D)0(B)-410.3(conforms to the Open Source de)]TJ
/TT9 1 Tf
19.5087 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
(nition)Tj
-20.0649 -1.2 TD
0.2367 Tw
[([Open99]. )-250(The)-486.7(license has been carefully crafted to)]TJ
T*
0.0642 Tw
[(k)10(eep the product a)20(v)25(ailable as an Open Source of)25(fering,)]TJ
T*
0 Tw
[(while pro)15(viding enough of a return on our in)40(v)15(estment to)]TJ
T*
0.1546 Tw
[(fund continued de)25(v)15(elopment and support of the prod-)]TJ
T*
0.0534 Tw
[(uct. )-249.9(The)-303.3(current license has created a b)20(usiness capable)]TJ
T*
0.0916 Tw
[(of funding three years of de)25(v)15(elopment on the softw)10(are)]TJ
T*
0 Tw
[(that simply w)10(ould not ha)20(v)15(e)15( )-15(happened otherwise.)]TJ
/TT2 1 Tf
12 0 0 12 323.2 336.6 Tm
0.25 Tw
(7. Summary)Tj
/TT4 1 Tf
10 0 0 10 323.2 320.4 Tm
0.0491 Tw
[(Berk)10(ele)15(y)-299.1(D)0(B)-299.1(o)0(f)25(fers a unique collection of features, tar)20(-)]TJ
T*
0.0174 Tw
[(geted squarely at softw)10(are de)25(v)15(elopers who need simple,)]TJ
T*
0.0492 Tw
(reliable database management services in their applica-)Tj
T*
0.28 Tw
[(tions. )-250(Good)-530(design and implementation and careful)]TJ
T*
0.1633 Tw
[(engineering throughout mak)10(e)-413.3(the softw)10(are better than)]TJ
T*
0 Tw
[(man)15(y)-250(other systems.)]TJ
0 -1.62 TD
0.16 Tw
[(Berk)10(ele)15(y)-410(D)0(B)-410(i)0(s)-410(a)0(n)-410(Open Source product, a)20(v)25(ailable at)]TJ
/TT6 1 Tf
0 -1.2 TD
0 Tw
[(www)74(.sleepycat.com)]TJ
/TT4 1 Tf
8.1286 0 TD
0.0654 Tw
[(for do)25(wnload. )-250(The)-315.4(distrib)20(uted sys-)]TJ
-8.1286 -1.2 TD
0.0382 Tw
[(tem includes e)25(v)15(erything needed to b)20(uild and deplo)10(y)-288.2(the)]TJ
T*
0 Tw
[(softw)10(are or to port it to ne)25(w)-250(systems.)]TJ
0 -1.62 TD
0.2633 Tw
[(Sleep)10(ycat Softw)10(are distrib)20(utes Berk)10(ele)15(y)-513.3(D)0(B)-513.4(under a)]TJ
0 -1.2 TD
0.0764 Tw
[(license agreement that dra)15(ws on both the UC Berk)10(ele)15(y)]TJ
T*
0.2377 Tw
[(cop)10(yright and the GPL.)-737.7(The license guarantees that)]TJ
T*
0.0884 Tw
[(Berk)10(ele)15(y)-338.4(D)0(B)-338.4(will remain an Open Source product and)]TJ
T*
0.1493 Tw
[(pro)15(vides Sleep)10(ycat with opportunities to mak)10(e)-399.4(mone)15(y)]TJ
T*
0 Tw
[(to fund continued de)25(v)15(elopment on the softw)10(are.)]TJ
ET
endstream
endobj
32 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT9 8 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
34 0 obj
<<
/Length 3542
>>
stream
BT
/TT2 1 Tf
12 0 0 12 79.2 708 Tm
0 g
/GS1 gs
0 Tc
0.25 Tw
[(8. Refer)18(ences)]TJ
/TT4 1 Tf
10 0 0 10 79.2 691.8 Tm
0 Tw
([Come79])Tj
2.5 -1.2 TD
0.0627 Tw
[(Comer)40(,)-312.7(D., “The Ubiquitous B-tree,)70(”)]TJ
/TT6 1 Tf
15.283 0 TD
0 Tw
[(A)30(C)0(M)-312.6(Com-)]TJ
-15.283 -1.2 TD
0.0404 Tw
[(puting Surve)30(ys)]TJ
/TT4 1 Tf
6.2163 0 TD
[(V)129(olume 11, number 2, June 1979.)]TJ
-8.7163 -1.62 TD
0 Tw
([Gray93])Tj
2.5 -1.2 TD
0.0482 Tw
[(Gray)65(,)-298.2(J., and Reuter)40(,)-298.2(A.,)]TJ
/TT6 1 Tf
10.1056 0 TD
-0.21 Tw
[(T)55(r)55( ansaction )-258.1(Pr)45(ocessing:)]TJ
-10.1056 -1.2 TD
0.6776 Tw
[(Concepts and T)92(e)0(c)15(hniques)]TJ
/TT4 1 Tf
11.5246 0 TD
-0.0004 Tc
0 Tw
[(,)-928.1(Mor)17.6(gan-Kaufman)]TJ
-11.5246 -1.2 TD
0 Tc
(Publishers, 1993.)Tj
-2.5 -1.62 TD
([IEEE96])Tj
2.5 -1.2 TD
0.0364 Tw
(Institute for Electrical and Electronics Engineers,)Tj
/TT6 1 Tf
T*
0 Tw
(IEEE/ANSI Std 1003.1)Tj
/TT4 1 Tf
9.082 0 TD
[(,)-250(1996 Edition.)]TJ
-11.582 -1.62 TD
([Litw80])Tj
2.5 -1.2 TD
0.2365 Tw
[(Litwin, W)92(., “Linear Hashing: A Ne)25(w)-486.6(T)80(ool for)]TJ
T*
0.1783 Tw
[(File and T)80(able Addressing,)70(”)]TJ
/TT6 1 Tf
12.0883 0 TD
[(Pr)45(oceedings of the)]TJ
-12.0883 -1.2 TD
0.4804 Tw
[(6th International Confer)37(ence on V)111(ery Lar)37(g)10(e)]TJ
T*
0.1983 Tw
(Databases \(VLDB\))Tj
/TT4 1 Tf
7.8365 0 TD
0.1982 Tw
[(,)-448.3(Montreal, Quebec, Canada,)]TJ
-7.8365 -1.2 TD
0 Tw
(October 1980.)Tj
-2.5 -1.62 TD
([Open94])Tj
2.5 -1.2 TD
0.4068 Tw
(The Open Group,)Tj
/TT6 1 Tf
8.4963 0 TD
[(Distrib)20(uted TP: The XA+)]TJ
-8.4963 -1.2 TD
0 Tw
(Speci)Tj
/TT11 1 Tf
2.1655 0 TD
(Þ)Tj
/TT6 1 Tf
0.5 0 TD
0.078 Tw
[(cation, V)111(e)0(r)10(sion 2)]TJ
/TT4 1 Tf
6.8954 0 TD
[(,)-328(The Open Group, 1994.)]TJ
-12.0609 -1.62 TD
0 Tw
([Open99])Tj
2.5 -1.2 TD
0.8307 Tw
[(Opensource.or)18(g, “Open Source De)]TJ
/TT9 1 Tf
16.3857 0 TD
0 Tw
(Þ)Tj
/TT4 1 Tf
0.5562 0 TD
[(nition,)70(”)]TJ
/TT6 1 Tf
-16.9419 -1.2 TD
[(www)74(.opensour)37(ce)15(.or)37(g/osd.html)]TJ
/TT4 1 Tf
12.0318 0 TD
0.063 Tw
[(,)-313(v)15(ersion 1.4, 1999.)]TJ
-14.5318 -1.62 TD
0 Tw
([Raym98])Tj
2.5 -1.2 TD
0.0718 Tw
[(Raymond, E.S., “The Cathedral and the Bazaar)40(,)70(”)]TJ
/TT6 1 Tf
T*
0 Tw
[(www)74(.tuxedo.or)37(g/˜esr/writings/cathedr)15(al-)]TJ
T*
[(bazaar/cathedr)15(al-bazaar)111(.html)]TJ
/TT4 1 Tf
11.9018 0 TD
[(,)-250(January 1998.)]TJ
-14.4018 -1.62 TD
([Selt91])Tj
2.5 -1.2 TD
0.0078 Tw
[(Seltzer)40(,)-257.8(M., and Y)55(igit, O., “)80(A)-257.9(Ne)25(w)25( )-25.1(Hashing P)15(ack-)]TJ
T*
0.6704 Tw
[(age for UNIX,)70(”)]TJ
/TT6 1 Tf
8.4383 0 TD
[(Pr)45(oceedings 1991 W)55(inter)]TJ
-8.4383 -1.2 TD
0 Tw
[(USENIX Confer)37(ence)]TJ
/TT4 1 Tf
8.2662 0 TD
[(,)-250(Dallas, TX, January 1991.)]TJ
-10.7662 -1.62 TD
([Selt92])Tj
2.5 -1.2 TD
0.2865 Tw
[(Seltzer)40(,)-536.5(M., and Olson, M., “LIBTP: Portable)]TJ
T*
0.2845 Tw
[(Modular T)35(ransactions for UNIX,)70(”)]TJ
/TT6 1 Tf
14.9456 0 TD
0 Tw
[(Pr)45(oceedings)]TJ
-14.9456 -1.2 TD
0.149 Tw
[(1992 W)55(inter Usenix Confer)37(ence)]TJ
/TT4 1 Tf
13.2129 0 TD
[(,)-399(San Francisco,)]TJ
-13.2129 -1.2 TD
0 Tw
(CA, January 1992.)Tj
-2.5 -1.62 TD
([Ston82])Tj
2.5 -1.2 TD
0.754 Tw
[(Stonebrak)10(er)40(,)-1004(M., Stettner)40(,)-1004(H., Kalash, J.,)]TJ
T*
0.0763 Tw
[(Guttman, A., and L)55(ynn, N., “Document Process-)]TJ
T*
0.0557 Tw
[(ing in a Relational Database System,)70(”)-305.6(Memoran-)]TJ
T*
0.0825 Tw
[(dum No. UCB/ERL M82/32, Uni)25(v)15(ersity of Cali-)]TJ
T*
0 Tw
[(fornia at Berk)10(ele)15(y)65(,)65( )-65(Berk)10(ele)15(y)65(,)65( )-65(CA, May 1982.)]TJ
ET
endstream
endobj
35 0 obj
<<
/ProcSet [/PDF /Text ]
/Font <<
/TT2 4 0 R
/TT4 5 0 R
/TT6 6 0 R
/TT9 8 0 R
/TT11 36 0 R
>>
/ExtGState <<
/GS1 9 0 R
>>
>>
endobj
9 0 obj
<<
/Type /ExtGState
/SA false
/SM 0.02
/OP false
/op false
/OPM 1
/BG2 /Default
/UCR2 /Default
/HT /Default
/TR2 /Default
>>
endobj
37 0 obj
<<
/Type /FontDescriptor
/Ascent 750
/CapHeight 676
/Descent -250
/Flags 262178
/FontBBox [-168 -218 1000 935]
/FontName /Times-Bold
/ItalicAngle 0
/StemV 133
/XHeight 461
/StemH 139
>>
endobj
38 0 obj
<<
/Type /FontDescriptor
/Ascent 750
/CapHeight 662
/Descent -250
/Flags 34
/FontBBox [-168 -218 1000 898]
/FontName /Times-Roman
/ItalicAngle 0
/StemV 84
/XHeight 450
/StemH 84
>>
endobj
39 0 obj
<<
/Type /FontDescriptor
/Ascent 750
/CapHeight 653
/Descent -250
/Flags 98
/FontBBox [-169 -217 1010 883]
/FontName /Times-Italic
/ItalicAngle -15
/StemV 76
/XHeight 441
/StemH 76
>>
endobj
40 0 obj
<<
/Type /FontDescriptor
/Ascent 753
/CapHeight 562
/Descent -246
/Flags 35
/FontBBox [-28 -250 628 805]
/FontName /Courier
/ItalicAngle 0
/StemV 51
/XHeight 426
/StemH 51
>>
endobj
41 0 obj
<<
/Type /FontDescriptor
/Ascent 750
/CapHeight 662
/Descent -250
/Flags 34
/FontBBox [-168 -218 1000 898]
/FontName /Times-Roman
/ItalicAngle 0
/StemV 84
/XHeight 450
/StemH 84
>>
endobj
42 0 obj
<<
/Type /FontDescriptor
/Ascent 750
/CapHeight 676
/Descent -250
/Flags 262178
/FontBBox [-168 -218 1000 935]
/FontName /Times-Bold
/ItalicAngle 0
/StemV 133
/XHeight 461
/StemH 139
>>
endobj
43 0 obj
<<
/Type /FontDescriptor
/Ascent 750
/CapHeight 653
/Descent -250
/Flags 98
/FontBBox [-169 -217 1010 883]
/FontName /Times-Italic
/ItalicAngle -15
/StemV 76
/XHeight 441
/StemH 76
>>
endobj
4 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 32
/LastChar 122
/Widths [250 0 0 0 0 0 0 0 0 0 0 570 0 333 250 0
500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 0
0 722 667 722 722 667 611 0 778 389 500 0 667 944 0 778
611 0 722 556 667 0 0 1000 0 0 0 0 0 0 0 0
0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500
556 0 444 389 333 556 500 722 500 500 444 ]
/Encoding /WinAnsiEncoding
/BaseFont /Times-Bold
/FontDescriptor 37 0 R
>>
endobj
5 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 32
/LastChar 151
/Widths [250 0 0 0 0 0 778 0 333 333 0 564 250 333 250 278
500 500 500 500 500 500 500 500 500 500 278 278 0 0 0 0
0 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722
556 722 667 556 611 722 722 944 722 722 0 333 0 333 0 0
0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500
500 500 333 389 278 500 500 722 500 500 444 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 333 444 444 350 0 1000 ]
/Encoding /WinAnsiEncoding
/BaseFont /Times-Roman
/FontDescriptor 38 0 R
>>
endobj
6 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 32
/LastChar 152
/Widths [250 0 0 0 0 0 0 0 333 333 0 675 250 333 250 278
500 500 500 500 0 0 500 0 0 500 333 0 0 0 0 0
0 611 611 667 722 611 0 0 0 333 0 0 556 833 667 0
611 0 611 500 556 722 611 833 611 0 0 0 0 0 0 0
0 500 500 444 500 444 278 500 500 278 0 444 278 722 500 500
500 500 389 389 278 500 444 667 444 444 389 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 333 ]
/Encoding /WinAnsiEncoding
/BaseFont /Times-Italic
/FontDescriptor 39 0 R
>>
endobj
7 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 68
/LastChar 117
/Widths [600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 600 600 600
600 600 600 600 600 0 0 0 0 600 600 600 0 0 600 600
600 600 ]
/Encoding /WinAnsiEncoding
/BaseFont /Courier
/FontDescriptor 40 0 R
>>
endobj
8 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 222
/LastChar 223
/Widths [556 556 ]
/Encoding /MacRomanEncoding
/BaseFont /Times-Roman
/FontDescriptor 41 0 R
>>
endobj
20 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 222
/LastChar 222
/Widths [556 ]
/Encoding /MacRomanEncoding
/BaseFont /Times-Bold
/FontDescriptor 42 0 R
>>
endobj
36 0 obj
<<
/Type /Font
/Subtype /TrueType
/FirstChar 222
/LastChar 222
/Widths [500 ]
/Encoding /MacRomanEncoding
/BaseFont /Times-Italic
/FontDescriptor 43 0 R
>>
endobj
1 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 3 0 R
/Contents 2 0 R
>>
endobj
11 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 13 0 R
/Contents 12 0 R
>>
endobj
14 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 16 0 R
/Contents 15 0 R
>>
endobj
17 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 19 0 R
/Contents 18 0 R
>>
endobj
21 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 23 0 R
/Contents 22 0 R
>>
endobj
24 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 26 0 R
/Contents 25 0 R
>>
endobj
27 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 29 0 R
/Contents 28 0 R
>>
endobj
30 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 32 0 R
/Contents 31 0 R
>>
endobj
33 0 obj
<<
/Type /Page
/Parent 10 0 R
/Resources 35 0 R
/Contents 34 0 R
>>
endobj
44 0 obj
<<
/S /D
>>
endobj
45 0 obj
<<
/Nums [0 44 0 R ]
>>
endobj
10 0 obj
<<
/Type /Pages
/Kids [1 0 R 11 0 R 14 0 R 17 0 R 21 0 R 24 0 R 27 0 R 30 0 R 33 0 R]
/Count 9
/MediaBox [0 0 612 792]
>>
endobj
46 0 obj
<<
/CreationDate (D:20090603204335-07'00')
/ModDate (D:20090603204335-07'00')
/Producer (Apple pstopdf)
>>
endobj
47 0 obj
<<
/Type /Catalog
/Pages 10 0 R
/PageLabels 45 0 R
>>
endobj
xref
0 48
0000000000 65535 f
0000079461 00000 n
0000000016 00000 n
0000007432 00000 n
0000077089 00000 n
0000077550 00000 n
0000078120 00000 n
0000078650 00000 n
0000078945 00000 n
0000075560 00000 n
0000080282 00000 n
0000079542 00000 n
0000007571 00000 n
0000016356 00000 n
0000079626 00000 n
0000016474 00000 n
0000025605 00000 n
0000079710 00000 n
0000025745 00000 n
0000034766 00000 n
0000079119 00000 n
0000079794 00000 n
0000034897 00000 n
0000044020 00000 n
0000079878 00000 n
0000044149 00000 n
0000053503 00000 n
0000079962 00000 n
0000053632 00000 n
0000062678 00000 n
0000080046 00000 n
0000062818 00000 n
0000071694 00000 n
0000080130 00000 n
0000071823 00000 n
0000075418 00000 n
0000079289 00000 n
0000075700 00000 n
0000075902 00000 n
0000076099 00000 n
0000076299 00000 n
0000076490 00000 n
0000076687 00000 n
0000076889 00000 n
0000080214 00000 n
0000080242 00000 n
0000080420 00000 n
0000080543 00000 n
trailer
<<
/Size 48
/Root 47 0 R
/Info 46 0 R
/ID [<ce34b1fc2c46d1d0f1d53c456be996c0><ce34b1fc2c46d1d0f1d53c456be996c0>]
>>
startxref
80613
%%EOF
|