Enhancement #2199
Enhancement #2195: Implement Spread connection pooling
Spread connection pooling for informers [Common Lisp]
Status: | Resolved | Start date: | 03/11/2015 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | Common Lisp | |||
Target version: | rsb-0.18 |
Related issues
Associated revisions
Use new transport infrastructure in src/transport/spread/*.lisp
- src/transport/spread/transport.lisp: new file; contains first-class
transport object for the transport implementation - src/transport/spread/connector.lisp (header): updated copyright
(connector): added :transport option - src/transport/spread/in-pull-connector.lisp (header): updated
copyright
(register-connector :spread :in-pull): new; register connector - src/transport/spread/in-push-connector.lisp (header): updated
copyright
(register-connector :spread :in-push): new; register connector - src/transport/spread/out-connector.lisp (header): updated
copyright
(register-connector :spread :out): new; register connector - rsb-transport-spread.asd (header): updated copyright
(system rsb-transport-spread): added file
src/transport/spread/transport.lisp
Connectors use bus in src/transport/spread/*connector.lisp
- src/transport/spread/connector.lisp (connector::bus): renamed slot
connection -> bus
(connector): added age-limit option
(initialize-instance :before connector): accept keyword parameter
bus instead of connection
(shared-initialize :after connector t): likewise; accept keyword
parameters tcpnodelay and age-limit; store in configuration
(notify connector eql t eql :attached): use `ensure-access'
(notify connector eql t eql :attached): notify bus
(notify connector scope t): new method; adapter - src/transport/spread/in-connector.lisp (in-connector): removed
superclasses `broadcast-processes' and `assembly-mixin'
(notify in-connector scope eql :attached): subscribe to scope via
bus
(notify in-connector scope eql :detached): unsubscribe from scope
via bus
(notify in-connector eql t eql :detached): removed; no longer needed
(receive-notification in-connector t): likewise
(notification->event in-connector bus-notification t): accept
`bus-notification' instead of `wire-notification' and thus do not
deserialize the notification - src/transport/spread/in-pull-connector.lisp (header): updated
copyright
(in-pull-connector::queue): new slot; stores queued events
(notify in-pull-connector scope eql :attached): removed; no longer
needed
(notify in-pull-connector scope eql :detached): likewise
(handle in-pull-connector bus-notification): new method; push onto
queue
(receive-notification in-pull-connector eql nil): new method; try to
pop from queue
(receive-notification in-pull-connector eql t): new method; pop from
queue - src/transport/spread/in-push-connector.lisp (in-push-connector):
removed superclasses `threaded-message-receiver-mixin' and
`error-handling-push-receiver-mixin'; added superclasses
`broadcast-processor' and `error-policy-mixin'
(in-push-connector::state): removed; no longer needed
(apply-error-policy in-push-connector connection-unexpectedly-closed):
removed; no longer needed
(apply-error-policy in-push-connector spread-error): likewise
(notify in-push-connector eql t eql :attached): likewise
(notify in-push-connector eql t eql :detached): likewise
(handle in-connector bus-notification): new method; convert to event
and dispatch - src/transport/spread/out-connector.lisp
(event->notification out-connector event): pass notification to bus
instead of sending
(event->notification out-connector outgoing-notification): removed;
handled by `message-sender'
(send-notification out-connector destined-wire-notification):
likewise - src/transport/spread/assembly-mixin.lisp: removed; no longer needed
- test/transport/spread/connectors.lisp (header): updated copyright
(test case in-connector-root::notification->event): adapted to changes
(test case define-connector-suite): adapted comment - rsb-transport-spread.asd (system rsb-transport-spread): removed file
src/transport/spread/assembly-mixin.lisp
History
#1 Updated by J. Moringen about 8 years ago
- Subject changed from Implement Common Lisp connection pooling to Implement Common Lisp Spread connection pooling
#2 Updated by J. Moringen almost 8 years ago
- Status changed from New to In Progress
#3 Updated by J. Moringen almost 8 years ago
- Related to Enhancement #1026: Add transport class [Common Lisp] added
#4 Updated by J. Wienke almost 8 years ago
- Subject changed from Implement Common Lisp Spread connection pooling to Implement Common Lisp Spread connection pooling for informers
#5 Updated by J. Moringen almost 8 years ago
- Target version changed from rsb-0.12 to rsb-0.13
#6 Updated by J. Moringen over 7 years ago
- Related to Bug #2398: Unable to play large tide file when using spread transport added
#7 Updated by J. Moringen about 7 years ago
- Target version changed from rsb-0.13 to rsb-0.14
#8 Updated by J. Moringen almost 7 years ago
- Subject changed from Implement Common Lisp Spread connection pooling for informers to Spread connection pooling for informers [Common Lisp]
#9 Updated by J. Moringen almost 7 years ago
- % Done changed from 0 to 70
#10 Updated by J. Moringen almost 7 years ago
- Target version changed from rsb-0.14 to rsb-0.15
#11 Updated by J. Moringen over 6 years ago
- Target version changed from rsb-0.15 to rsb-0.16
#12 Updated by J. Moringen almost 6 years ago
- Target version changed from rsb-0.16 to rsb-0.17
#13 Updated by J. Moringen over 5 years ago
- Target version changed from rsb-0.17 to rsb-0.18
#14 Updated by J. Moringen over 4 years ago
- Status changed from In Progress to Resolved
- % Done changed from 70 to 100
Applied in changeset rsb-cl|8a84583f1a2b9e2e39af7e3c52d84f07cd8df6a5.