Enhancement #2530

Enhancement #2195: Implement Spread connection pooling

Spread connection pooling for listeners [Common Lisp]

Added by J. Moringen almost 8 years ago. Updated over 5 years ago.

Status:ResolvedStart date:04/15/2016
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Common Lisp
Target version:rsb-0.18

Associated revisions

Revision 8a84583f
Added by J. Moringen over 5 years ago

Connectors use bus in src/transport/spread/*connector.lisp

fixes #2199 fixes #2530

  • 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

Revision 6ec3670f
Added by J. Moringen over 5 years ago

Mention full Spread connection sharing in Common Lisp in news.rst

refs #2199 refs #2530

  • news.rst (RSB 0.18): mention full Spread connection sharing in
    Common Lisp implementation

History

#1 Updated by J. Moringen almost 8 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 70

#2 Updated by J. Moringen almost 8 years ago

  • Target version changed from rsb-0.14 to rsb-0.15

#3 Updated by J. Moringen over 7 years ago

  • Target version changed from rsb-0.15 to rsb-0.16

#4 Updated by J. Moringen almost 7 years ago

  • Target version changed from rsb-0.16 to rsb-0.17

#5 Updated by J. Moringen over 6 years ago

  • Target version changed from rsb-0.17 to rsb-0.18

#6 Updated by J. Moringen over 5 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 70 to 100

Also available in: Atom PDF