rainbows 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/.document +6 -5
  2. data/DEPLOY +13 -0
  3. data/GIT-VERSION-GEN +1 -1
  4. data/GNUmakefile +1 -1
  5. data/README +32 -6
  6. data/SIGNALS +11 -7
  7. data/TODO +2 -3
  8. data/lib/rainbows.rb +10 -3
  9. data/lib/rainbows/app_pool.rb +90 -0
  10. data/lib/rainbows/base.rb +41 -4
  11. data/lib/rainbows/const.rb +1 -6
  12. data/lib/rainbows/http_server.rb +1 -1
  13. data/lib/rainbows/rev.rb +174 -0
  14. data/lib/rainbows/revactor.rb +40 -37
  15. data/lib/rainbows/thread_pool.rb +31 -57
  16. data/lib/rainbows/thread_spawn.rb +32 -45
  17. data/local.mk.sample +4 -3
  18. data/t/.gitignore +1 -2
  19. data/t/GNUmakefile +21 -7
  20. data/t/README +42 -0
  21. data/t/bin/content-md5-put +36 -0
  22. data/t/bin/unused_listen +1 -1
  23. data/t/content-md5.ru +23 -0
  24. data/t/sleep.ru +11 -0
  25. data/t/t0000-basic.sh +29 -3
  26. data/t/t1000-thread-pool-basic.sh +5 -6
  27. data/t/t1000.ru +5 -1
  28. data/t/t1002-thread-pool-graceful.sh +37 -0
  29. data/t/t2000-thread-spawn-basic.sh +4 -6
  30. data/t/t2000.ru +5 -1
  31. data/t/t2002-thread-spawn-graceful.sh +37 -0
  32. data/t/t3000-revactor-basic.sh +4 -6
  33. data/t/t3000.ru +5 -1
  34. data/t/t3001-revactor-pipeline.sh +46 -0
  35. data/t/t3002-revactor-graceful.sh +38 -0
  36. data/t/t3003-revactor-reopen-logs.sh +54 -0
  37. data/t/t3100-revactor-tee-input.sh +8 -13
  38. data/t/t4000-rev-basic.sh +51 -0
  39. data/t/t4000.ru +9 -0
  40. data/t/t4002-rev-graceful.sh +52 -0
  41. data/t/t4003-rev-parser-error.sh +34 -0
  42. data/t/t4100-rev-rack-input.sh +44 -0
  43. data/t/t4101-rev-rack-input-trailer.sh +51 -0
  44. data/t/t9000-rack-app-pool.sh +37 -0
  45. data/t/t9000.ru +14 -0
  46. data/t/test-lib.sh +29 -2
  47. data/vs_Unicorn +50 -1
  48. metadata +28 -6
data/vs_Unicorn CHANGED
@@ -3,6 +3,55 @@
3
3
  While \Rainbows! depends on Unicorn for its process/socket management,
4
4
  HTTP parser and configuration language; \Rainbows! is more ambitious.
5
5
 
6
+ == Architectural Diagrams
7
+
8
+ === Unicorn uses a 1:1 mapping of processes to clients
9
+
10
+ unicorn master
11
+ \_ unicorn worker[0]
12
+ | \_ client[0]
13
+ \_ unicorn worker[1]
14
+ | \_ client[1]
15
+ \_ unicorn worker[2]
16
+ | \_ client[2]
17
+ ...
18
+ \_ unicorn worker[M]
19
+ \_ client[M]
20
+
21
+ === \Rainbows! uses a M:N mapping of processes to clients
22
+
23
+ rainbows master
24
+ \_ rainbows worker[0]
25
+ | \_ client[0,0]
26
+ | \_ client[0,1]
27
+ | \_ client[0,2]
28
+ | ...
29
+ | \_ client[0,N]
30
+ \_ rainbows worker[1]
31
+ | \_ client[1,0]
32
+ | \_ client[1,1]
33
+ | \_ client[1,2]
34
+ | \_ client[1,3]
35
+ | ...
36
+ | \_ client[1,N]
37
+ \_ rainbows worker[2]
38
+ | \_ client[2,0]
39
+ | \_ client[2,1]
40
+ | \_ client[2,2]
41
+ | ...
42
+ | \_ client[2,N]
43
+ ...
44
+ \_ rainbows worker[M]
45
+ \_ client[M,0]
46
+ \_ client[M,1]
47
+ \_ client[M,2]
48
+ ...
49
+ \_ client[M,N]
50
+
51
+ In both cases, workers share common listen sockets with the master and
52
+ pull connections off the listen queue only if the worker has resources
53
+ available.
54
+
6
55
  == Differences from Unicorn
7
56
 
8
57
  * log rotation is handled immediately in \Rainbows! whereas Unicorn has
@@ -25,7 +74,7 @@ HTTP parser and configuration language; \Rainbows! is more ambitious.
25
74
 
26
75
  == Similarities with Unicorn
27
76
 
28
- While some similarities are obvious (we depend on and subclass of
77
+ While some similarities are obvious (we depend on and subclass off
29
78
  Unicorn code), some things are not:
30
79
 
31
80
  * Does not attempt to accept() connections when pre-configured limits
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rainbows
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rainbows! developers
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-06 00:00:00 -07:00
12
+ date: 2009-10-15 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -44,22 +44,25 @@ executables:
44
44
  extensions: []
45
45
 
46
46
  extra_rdoc_files:
47
- - README
48
- - LICENSE
47
+ - ChangeLog
49
48
  - DEPLOY
49
+ - FAQ
50
50
  - lib/rainbows.rb
51
+ - lib/rainbows/app_pool.rb
51
52
  - lib/rainbows/base.rb
52
53
  - lib/rainbows/const.rb
53
54
  - lib/rainbows/http_response.rb
54
55
  - lib/rainbows/http_server.rb
56
+ - lib/rainbows/rev.rb
55
57
  - lib/rainbows/revactor.rb
56
58
  - lib/rainbows/revactor/tee_input.rb
57
59
  - lib/rainbows/thread_pool.rb
58
60
  - lib/rainbows/thread_spawn.rb
59
- - ChangeLog
61
+ - LICENSE
60
62
  - NEWS
63
+ - README
64
+ - SIGNALS
61
65
  - TODO
62
- - FAQ
63
66
  - TUNING
64
67
  - vs_Unicorn
65
68
  files:
@@ -85,10 +88,12 @@ files:
85
88
  - TUNING
86
89
  - bin/rainbows
87
90
  - lib/rainbows.rb
91
+ - lib/rainbows/app_pool.rb
88
92
  - lib/rainbows/base.rb
89
93
  - lib/rainbows/const.rb
90
94
  - lib/rainbows/http_response.rb
91
95
  - lib/rainbows/http_server.rb
96
+ - lib/rainbows/rev.rb
92
97
  - lib/rainbows/revactor.rb
93
98
  - lib/rainbows/revactor/tee_input.rb
94
99
  - lib/rainbows/thread_pool.rb
@@ -99,17 +104,34 @@ files:
99
104
  - setup.rb
100
105
  - t/.gitignore
101
106
  - t/GNUmakefile
107
+ - t/README
108
+ - t/bin/content-md5-put
102
109
  - t/bin/unused_listen
110
+ - t/content-md5.ru
103
111
  - t/sha1.ru
112
+ - t/sleep.ru
104
113
  - t/t0000-basic.sh
105
114
  - t/t0000.ru
106
115
  - t/t1000-thread-pool-basic.sh
107
116
  - t/t1000.ru
117
+ - t/t1002-thread-pool-graceful.sh
108
118
  - t/t2000-thread-spawn-basic.sh
109
119
  - t/t2000.ru
120
+ - t/t2002-thread-spawn-graceful.sh
110
121
  - t/t3000-revactor-basic.sh
111
122
  - t/t3000.ru
123
+ - t/t3001-revactor-pipeline.sh
124
+ - t/t3002-revactor-graceful.sh
125
+ - t/t3003-revactor-reopen-logs.sh
112
126
  - t/t3100-revactor-tee-input.sh
127
+ - t/t4000-rev-basic.sh
128
+ - t/t4000.ru
129
+ - t/t4002-rev-graceful.sh
130
+ - t/t4003-rev-parser-error.sh
131
+ - t/t4100-rev-rack-input.sh
132
+ - t/t4101-rev-rack-input-trailer.sh
133
+ - t/t9000-rack-app-pool.sh
134
+ - t/t9000.ru
113
135
  - t/test-lib.sh
114
136
  - vs_Unicorn
115
137
  has_rdoc: true