Enhancement #2199

Enhancement #2195: Implement Spread connection pooling

Spread connection pooling for informers [Common Lisp]

Added by J. Moringen over 4 years ago. Updated 12 months ago.

Status:ResolvedStart date:03/11/2015
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Common Lisp
Target version:rsb-0.18

Related issues

Related to Robotics Service Bus - Enhancement #1026: Add transport class [Common Lisp] Resolved 06/25/2012
Related to Robotics Service Bus - Bug #2398: Unable to play large tide file when using spread transport New 09/22/2015

Associated revisions

Revision c6c7eba4
Added by J. Moringen over 3 years ago

Use new transport infrastructure in src/transport/spread/*.lisp

refs #2199 refs #1026

  • 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

Revision 8a84583f
Added by J. Moringen 12 months 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 12 months 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 over 4 years ago

  • Subject changed from Implement Common Lisp connection pooling to Implement Common Lisp Spread connection pooling

#2 Updated by J. Moringen over 4 years ago

  • Status changed from New to In Progress

#3 Updated by J. Moringen over 4 years ago

#4 Updated by J. Wienke over 4 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 over 4 years ago

  • Target version changed from rsb-0.12 to rsb-0.13

#6 Updated by J. Moringen almost 4 years ago

  • Related to Bug #2398: Unable to play large tide file when using spread transport added

#7 Updated by J. Moringen over 3 years ago

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

#8 Updated by J. Moringen over 3 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 over 3 years ago

  • % Done changed from 0 to 70

#10 Updated by J. Moringen over 3 years ago

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

#11 Updated by J. Moringen almost 3 years ago

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

#12 Updated by J. Moringen over 2 years ago

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

#13 Updated by J. Moringen almost 2 years ago

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

#14 Updated by J. Moringen 12 months ago

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

Also available in: Atom PDF