david 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -136,13 +136,13 @@ entries that can be read from your Rack application if necessary.
136
136
 
137
137
  ## Benchmarks
138
138
 
139
- David handles about 11.000 requests per second (tested in MRI 2.2.0 with up to
140
- 10.000 concurrent clients on a single core of a Core i7-3520M CPU running Linux
141
- 3.18.5).
139
+ David handles about 12,500 requests per second in MRI and 14,000 in JRuby
140
+ (tested in MRI 2.3.0 and JRuby 1.7.19 with up to 10,000 concurrent clients on a
141
+ single core of a Core i7-3520M CPU running Linux 3.18.6).
142
142
 
143
143
  ## Copyright
144
144
 
145
- The code is published under the GPLv3 license (see the LICENSE file).
145
+ The code is published under the MIT license (see the LICENSE file).
146
146
 
147
147
  ### Authors
148
148
 
data/TODO.md CHANGED
@@ -46,16 +46,9 @@ More detailed CoAP implementation
46
46
 
47
47
  ### Examples for missing or unsufficient features:
48
48
 
49
- * Message Deduplication (4.5.)
50
49
  * Transmission Parameters (4.8.)
51
- * Request/Response Matching (5.3.2.) (became transparent in connection to
52
- observe transmissions)
53
- * "For a new Confirmable message, the initial timeout is set to a random
54
- duration (often not an integral number of seconds) between ACK_TIMEOUT and
55
- (ACK_TIMEOUT * ACK_RANDOM_FACTOR) (see Section 4.8)"
56
50
  * Validation of ETag (conditional requests)
57
51
  * Request validations and error responses
58
- * Follow redirects
59
52
 
60
53
 
61
54
  Non-blocking I/O
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,8815.0
3
- 20.0,0.0,10892.33333
4
- 30.0,0.0,12250.0
5
- 40.0,0.0,12796.33333
6
- 50.0,0.0,13014.33333
7
- 60.0,0.0,13099.66667
8
- 70.0,0.0,13386.33333
9
- 80.0,0.0,13409.0
10
- 90.0,0.0,13471.0
11
- 100.0,0.0,13588.66667
12
- 200.0,0.0,13875.33333
13
- 300.0,0.01055,13905.0
14
- 400.0,0.05861,13876.66667
15
- 500.0,0.10786,13721.0
16
- 600.0,0.17011,13970.66667
17
- 700.0,0.24956,13926.0
18
- 800.0,0.30426,13821.66667
19
- 900.0,0.3781,14011.0
20
- 1000.0,0.47965,13854.33333
21
- 2000.0,1.18875,13871.33333
22
- 3000.0,1.89677,13986.66667
23
- 4000.0,2.6085,13976.33333
24
- 5000.0,3.30927,14127.33333
25
- 6000.0,4.05932,13946.0
26
- 7000.0,4.7129,14047.0
27
- 8000.0,5.42063,14117.66667
28
- 9000.0,6.18359,13997.0
29
- 10000.0,6.83943,14152.33333
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,8815.0,103.1633
3
+ 20.0,0.0,10892.33333,435.57268
4
+ 30.0,0.0,12250.0,68.70711
5
+ 40.0,0.0,12796.33333,136.27505
6
+ 50.0,0.0,13014.33333,112.29821
7
+ 60.0,0.0,13099.66667,143.35581
8
+ 70.0,0.0,13386.33333,92.57189
9
+ 80.0,0.0,13409.0,75.74959
10
+ 90.0,0.0,13471.0,120.27746
11
+ 100.0,0.0,13588.66667,63.56274
12
+ 200.0,0.0,13875.33333,56.54693
13
+ 300.0,0.01055,13905.0,39.67367
14
+ 400.0,0.05861,13876.66667,162.69672
15
+ 500.0,0.10786,13721.0,110.64357
16
+ 600.0,0.17011,13970.66667,20.49932
17
+ 700.0,0.24956,13926.0,37.53221
18
+ 800.0,0.30426,13821.66667,75.59688
19
+ 900.0,0.3781,14011.0,32.12476
20
+ 1000.0,0.47965,13854.33333,46.14711
21
+ 2000.0,1.18875,13871.33333,128.73055
22
+ 3000.0,1.89677,13986.66667,77.92874
23
+ 4000.0,2.6085,13976.33333,90.82706
24
+ 5000.0,3.30927,14127.33333,100.88387
25
+ 6000.0,4.05932,13946.0,192.7226
26
+ 7000.0,4.7129,14047.0,118.80516
27
+ 8000.0,5.42063,14117.66667,119.97315
28
+ 9000.0,6.18359,13997.0,93.62692
29
+ 10000.0,6.83943,14152.33333,79.93887
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,2381.33333
3
- 20.0,0.0,4493.0
4
- 30.0,0.0,5627.66667
5
- 40.0,0.0,6252.0
6
- 50.0,0.0,7016.66667
7
- 60.0,0.0,7683.66667
8
- 70.0,0.0,8086.33333
9
- 80.0,0.0,8346.0
10
- 90.0,0.0,8681.0
11
- 100.0,0.0,9048.33333
12
- 200.0,0.0,10374.33333
13
- 300.0,0.01423,10304.66667
14
- 400.0,0.07869,10335.66667
15
- 500.0,0.1446,10242.0
16
- 600.0,0.22004,10386.66667
17
- 700.0,0.30472,10282.0
18
- 800.0,0.42972,10373.33333
19
- 900.0,0.53255,10377.0
20
- 1000.0,0.61002,10460.0
21
- 2000.0,1.56891,10410.0
22
- 3000.0,2.52571,10377.0
23
- 4000.0,3.52706,10326.66667
24
- 5000.0,4.50624,10359.66667
25
- 6000.0,5.35553,10524.66667
26
- 7000.0,6.37579,10378.0
27
- 8000.0,7.27164,10526.66667
28
- 9000.0,7.97817,10897.33333
29
- 10000.0,8.68828,11087.0
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,2381.33333,100.31395
3
+ 20.0,0.0,4493.0,12.83225
4
+ 30.0,0.0,5627.66667,58.94819
5
+ 40.0,0.0,6252.0,48.92852
6
+ 50.0,0.0,7016.66667,76.94298
7
+ 60.0,0.0,7683.66667,38.90444
8
+ 70.0,0.0,8086.33333,50.67763
9
+ 80.0,0.0,8346.0,22.64214
10
+ 90.0,0.0,8681.0,182.04578
11
+ 100.0,0.0,9048.33333,76.63043
12
+ 200.0,0.0,10374.33333,138.40601
13
+ 300.0,0.01423,10304.66667,53.27497
14
+ 400.0,0.07869,10335.66667,107.22666
15
+ 500.0,0.1446,10242.0,71.90735
16
+ 600.0,0.22004,10386.66667,82.09074
17
+ 700.0,0.30472,10282.0,29.79933
18
+ 800.0,0.42972,10373.33333,94.52454
19
+ 900.0,0.53255,10377.0,60.51446
20
+ 1000.0,0.61002,10460.0,104.61676
21
+ 2000.0,1.56891,10410.0,62.03225
22
+ 3000.0,2.52571,10377.0,48.92852
23
+ 4000.0,3.52706,10326.66667,44.21413
24
+ 5000.0,4.50624,10359.66667,65.74868
25
+ 6000.0,5.35553,10524.66667,64.9735
26
+ 7000.0,6.37579,10378.0,99.40825
27
+ 8000.0,7.27164,10526.66667,75.23002
28
+ 9000.0,7.97817,10897.33333,392.76484
29
+ 10000.0,8.68828,11087.0,83.79737
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,7398.66667
3
- 20.0,0.0,9447.0
4
- 30.0,0.0,10468.66667
5
- 40.0,0.0,10760.33333
6
- 50.0,0.0,11018.0
7
- 60.0,0.0,11029.0
8
- 70.0,0.0,11090.33333
9
- 80.0,0.0,11249.33333
10
- 90.0,0.0,11388.0
11
- 100.0,0.0,11439.0
12
- 200.0,0.0,11522.0
13
- 300.0,0.01263,11611.0
14
- 400.0,0.0707,11722.66667
15
- 500.0,0.13411,11764.0
16
- 600.0,0.20014,11624.66667
17
- 700.0,0.28316,11669.0
18
- 800.0,0.34738,11734.66667
19
- 900.0,0.43741,11797.66667
20
- 1000.0,0.55793,11630.0
21
- 2000.0,1.42399,11704.0
22
- 3000.0,2.29497,11525.33333
23
- 4000.0,3.1387,11608.66667
24
- 5000.0,3.95165,11793.0
25
- 6000.0,4.81369,11740.0
26
- 7000.0,5.62425,11846.33333
27
- 8000.0,6.47804,11873.33333
28
- 9000.0,7.41864,11678.66667
29
- 10000.0,8.15429,11881.33333
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,7398.66667,75.46449
3
+ 20.0,0.0,9447.0,578.7475
4
+ 30.0,0.0,10468.66667,122.37193
5
+ 40.0,0.0,10760.33333,33.87559
6
+ 50.0,0.0,11018.0,64.7508
7
+ 60.0,0.0,11029.0,57.43402
8
+ 70.0,0.0,11090.33333,120.94719
9
+ 80.0,0.0,11249.33333,80.40039
10
+ 90.0,0.0,11388.0,54.35685
11
+ 100.0,0.0,11439.0,61.64414
12
+ 200.0,0.0,11522.0,6.68331
13
+ 300.0,0.01263,11611.0,119.71912
14
+ 400.0,0.0707,11722.66667,75.3053
15
+ 500.0,0.13411,11764.0,48.04859
16
+ 600.0,0.20014,11624.66667,79.62551
17
+ 700.0,0.28316,11669.0,137.18843
18
+ 800.0,0.34738,11734.66667,12.91855
19
+ 900.0,0.43741,11797.66667,52.49974
20
+ 1000.0,0.55793,11630.0,77.07572
21
+ 2000.0,1.42399,11704.0,58.29237
22
+ 3000.0,2.29497,11525.33333,40.18568
23
+ 4000.0,3.1387,11608.66667,146.84762
24
+ 5000.0,3.95165,11793.0,39.50527
25
+ 6000.0,4.81369,11740.0,108.89751
26
+ 7000.0,5.62425,11846.33333,38.853
27
+ 8000.0,6.47804,11873.33333,97.12306
28
+ 9000.0,7.41864,11678.66667,64.83483
29
+ 10000.0,8.15429,11881.33333,140.11741
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,1898.0
3
- 20.0,0.0,3671.33333
4
- 30.0,0.0,4611.0
5
- 40.0,0.0,5441.33333
6
- 50.0,0.0,6057.0
7
- 60.0,0.0,6521.66667
8
- 70.0,0.0,6727.33333
9
- 80.0,0.0,7102.33333
10
- 90.0,0.0,7346.66667
11
- 100.0,0.0,7576.66667
12
- 200.0,0.0,8743.0
13
- 300.0,0.01695,8654.0
14
- 400.0,0.09348,8700.33333
15
- 500.0,0.17188,8616.33333
16
- 600.0,0.26859,8624.66667
17
- 700.0,0.37221,8638.33333
18
- 800.0,0.49335,8636.66667
19
- 900.0,0.63501,8652.0
20
- 1000.0,0.72363,8661.0
21
- 2000.0,1.87251,8600.66667
22
- 3000.0,3.05652,8667.0
23
- 4000.0,4.19376,8708.33333
24
- 5000.0,5.21177,8938.0
25
- 6000.0,6.5111,8707.66667
26
- 7000.0,7.5681,8788.33333
27
- 8000.0,8.77693,8719.66667
28
- 9000.0,9.64561,8970.0
29
- 10000.0,10.60239,9131.33333
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,1898.0,74.16648
3
+ 20.0,0.0,3671.33333,81.22944
4
+ 30.0,0.0,4611.0,47.3075
5
+ 40.0,0.0,5441.33333,30.8689
6
+ 50.0,0.0,6057.0,48.46304
7
+ 60.0,0.0,6521.66667,42.39759
8
+ 70.0,0.0,6727.33333,6.94422
9
+ 80.0,0.0,7102.33333,83.00335
10
+ 90.0,0.0,7346.66667,118.99673
11
+ 100.0,0.0,7576.66667,11.08553
12
+ 200.0,0.0,8743.0,115.7958
13
+ 300.0,0.01695,8654.0,52.00641
14
+ 400.0,0.09348,8700.33333,83.29199
15
+ 500.0,0.17188,8616.33333,116.51705
16
+ 600.0,0.26859,8624.66667,58.21989
17
+ 700.0,0.37221,8638.33333,79.87212
18
+ 800.0,0.49335,8636.66667,44.45472
19
+ 900.0,0.63501,8652.0,34.21501
20
+ 1000.0,0.72363,8661.0,29.70971
21
+ 2000.0,1.87251,8600.66667,81.55707
22
+ 3000.0,3.05652,8667.0,83.09432
23
+ 4000.0,4.19376,8708.33333,50.76307
24
+ 5000.0,5.21177,8938.0,302.00662
25
+ 6000.0,6.5111,8707.66667,15.19503
26
+ 7000.0,7.5681,8788.33333,56.4171
27
+ 8000.0,8.77693,8719.66667,92.67266
28
+ 9000.0,9.64561,8970.0,332.22884
29
+ 10000.0,10.60239,9131.33333,217.07346
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,10254.0
3
- 20.0,0.0,10904.33333
4
- 30.0,0.0,11079.66667
5
- 40.0,0.0,11123.33333
6
- 50.0,0.0,11260.0
7
- 60.0,0.0,11301.0
8
- 70.0,0.0,11320.33333
9
- 80.0,0.0,11355.66667
10
- 90.0,0.0,11378.66667
11
- 100.0,0.0,11326.33333
12
- 200.0,0.0,11411.0
13
- 300.0,0.01282,11443.33333
14
- 400.0,0.07087,11476.33333
15
- 500.0,0.13263,11367.33333
16
- 600.0,0.19729,11410.0
17
- 700.0,0.28569,11394.66667
18
- 800.0,0.3809,11440.33333
19
- 900.0,0.44546,11370.66667
20
- 1000.0,0.57215,11348.66667
21
- 2000.0,1.41383,11396.0
22
- 3000.0,2.36996,11165.66667
23
- 4000.0,3.20951,11395.66667
24
- 5000.0,4.09396,11350.66667
25
- 6000.0,4.95657,11447.33333
26
- 7000.0,5.84745,11364.33333
27
- 8000.0,6.68096,11448.66667
28
- 9000.0,7.65066,11368.33333
29
- 10000.0,8.4629,11450.0
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,10254.0,55.14224
3
+ 20.0,0.0,10904.33333,1.69967
4
+ 30.0,0.0,11079.66667,59.23025
5
+ 40.0,0.0,11123.33333,71.65814
6
+ 50.0,0.0,11260.0,61.97311
7
+ 60.0,0.0,11301.0,23.15167
8
+ 70.0,0.0,11320.33333,23.4426
9
+ 80.0,0.0,11355.66667,26.94851
10
+ 90.0,0.0,11378.66667,33.88543
11
+ 100.0,0.0,11326.33333,58.25423
12
+ 200.0,0.0,11411.0,77.08437
13
+ 300.0,0.01282,11443.33333,69.58129
14
+ 400.0,0.07087,11476.33333,82.72579
15
+ 500.0,0.13263,11367.33333,68.8299
16
+ 600.0,0.19729,11410.0,63.54526
17
+ 700.0,0.28569,11394.66667,55.95435
18
+ 800.0,0.3809,11440.33333,12.71045
19
+ 900.0,0.44546,11370.66667,79.33193
20
+ 1000.0,0.57215,11348.66667,30.26916
21
+ 2000.0,1.41383,11396.0,18.45716
22
+ 3000.0,2.36996,11165.66667,45.82818
23
+ 4000.0,3.20951,11395.66667,65.83987
24
+ 5000.0,4.09396,11350.66667,67.01907
25
+ 6000.0,4.95657,11447.33333,84.48011
26
+ 7000.0,5.84745,11364.33333,85.42183
27
+ 8000.0,6.68096,11448.66667,25.22345
28
+ 9000.0,7.65066,11368.33333,80.90049
29
+ 10000.0,8.4629,11450.0,56.78028
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,4956.66667
3
- 20.0,0.0,5847.0
4
- 30.0,0.0,7632.33333
5
- 40.0,0.0,8040.0
6
- 50.0,0.0,8306.0
7
- 60.0,0.0,8658.66667
8
- 70.0,0.0,8935.0
9
- 80.0,0.0,9145.0
10
- 90.0,0.0,9139.33333
11
- 100.0,0.0,9264.66667
12
- 200.0,0.0,9946.0
13
- 300.0,0.01472,9964.66667
14
- 400.0,0.0822,9894.33333
15
- 500.0,0.14874,9949.66667
16
- 600.0,0.24766,10031.0
17
- 700.0,0.33138,9991.33333
18
- 800.0,0.43305,10008.66667
19
- 900.0,0.54896,9955.66667
20
- 1000.0,0.66531,9949.33333
21
- 2000.0,1.6203,10003.66667
22
- 3000.0,2.64236,9864.33333
23
- 4000.0,3.697,9928.33333
24
- 5000.0,4.60777,9979.33333
25
- 6000.0,5.7074,9950.66667
26
- 7000.0,6.64438,9993.33333
27
- 8000.0,7.80497,9799.33333
28
- 9000.0,8.62443,10046.66667
29
- 10000.0,9.3513,10335.0
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,4956.66667,190.01988
3
+ 20.0,0.0,5847.0,112.17843
4
+ 30.0,0.0,7632.33333,17.51824
5
+ 40.0,0.0,8040.0,75.68796
6
+ 50.0,0.0,8306.0,20.83267
7
+ 60.0,0.0,8658.66667,22.48456
8
+ 70.0,0.0,8935.0,125.23844
9
+ 80.0,0.0,9145.0,40.99593
10
+ 90.0,0.0,9139.33333,71.21017
11
+ 100.0,0.0,9264.66667,24.07396
12
+ 200.0,0.0,9946.0,250.28917
13
+ 300.0,0.01472,9964.66667,65.48961
14
+ 400.0,0.0822,9894.33333,154.54305
15
+ 500.0,0.14874,9949.66667,147.60382
16
+ 600.0,0.24766,10031.0,32.93428
17
+ 700.0,0.33138,9991.33333,67.64778
18
+ 800.0,0.43305,10008.66667,80.37551
19
+ 900.0,0.54896,9955.66667,47.95368
20
+ 1000.0,0.66531,9949.33333,161.87718
21
+ 2000.0,1.6203,10003.66667,66.95936
22
+ 3000.0,2.64236,9864.33333,63.88705
23
+ 4000.0,3.697,9928.33333,65.18862
24
+ 5000.0,4.60777,9979.33333,67.46028
25
+ 6000.0,5.7074,9950.66667,43.14575
26
+ 7000.0,6.64438,9993.33333,18.92676
27
+ 8000.0,7.80497,9799.33333,125.27392
28
+ 9000.0,8.62443,10046.66667,198.85059
29
+ 10000.0,9.3513,10335.0,115.95114
@@ -1,29 +1,29 @@
1
- concurrent,loss,throughput
2
- 10.0,0.0,10935.66667
3
- 20.0,0.0,11728.0
4
- 30.0,0.0,12033.33333
5
- 40.0,0.0,12294.33333
6
- 50.0,0.0,12314.66667
7
- 60.0,0.0,12309.33333
8
- 70.0,0.0,12327.33333
9
- 80.0,0.0,12365.0
10
- 90.0,0.0,12394.0
11
- 100.0,0.0,12384.66667
12
- 200.0,0.0,12466.66667
13
- 300.0,0.01167,12569.33333
14
- 400.0,0.06434,12641.33333
15
- 500.0,0.11764,12590.0
16
- 600.0,0.20462,12586.0
17
- 700.0,0.2739,12551.0
18
- 800.0,0.32555,12549.0
19
- 900.0,0.44781,12507.0
20
- 1000.0,0.53118,12633.66667
21
- 2000.0,1.30825,12542.0
22
- 3000.0,2.11439,12529.0
23
- 4000.0,2.92541,12527.66667
24
- 5000.0,3.70095,12597.0
25
- 6000.0,4.50835,12547.33333
26
- 7000.0,5.28881,12591.33333
27
- 8000.0,6.08858,12577.66667
28
- 9000.0,6.92192,12493.33333
29
- 10000.0,7.63077,12713.0
1
+ concurrent,loss,throughput,sd
2
+ 10.0,0.0,10935.66667,128.86255
3
+ 20.0,0.0,11728.0,54.85131
4
+ 30.0,0.0,12033.33333,50.69078
5
+ 40.0,0.0,12294.33333,37.93269
6
+ 50.0,0.0,12314.66667,28.76727
7
+ 60.0,0.0,12309.33333,52.1046
8
+ 70.0,0.0,12327.33333,18.40894
9
+ 80.0,0.0,12365.0,44.5496
10
+ 90.0,0.0,12394.0,6.97615
11
+ 100.0,0.0,12384.66667,30.65217
12
+ 200.0,0.0,12466.66667,31.79448
13
+ 300.0,0.01167,12569.33333,39.51652
14
+ 400.0,0.06434,12641.33333,48.60956
15
+ 500.0,0.11764,12590.0,16.26858
16
+ 600.0,0.20462,12586.0,48.68949
17
+ 700.0,0.2739,12551.0,15.29706
18
+ 800.0,0.32555,12549.0,13.49074
19
+ 900.0,0.44781,12507.0,81.07198
20
+ 1000.0,0.53118,12633.66667,33.40991
21
+ 2000.0,1.30825,12542.0,69.10861
22
+ 3000.0,2.11439,12529.0,36.88722
23
+ 4000.0,2.92541,12527.66667,58.36856
24
+ 5000.0,3.70095,12597.0,39.09817
25
+ 6000.0,4.50835,12547.33333,17.55626
26
+ 7000.0,5.28881,12591.33333,26.0299
27
+ 8000.0,6.08858,12577.66667,17.98765
28
+ 9000.0,6.92192,12493.33333,11.2645
29
+ 10000.0,7.63077,12713.0,96.70919