Opened 9 years ago

Closed 8 years ago

#765 closed task (complete)

Investigate alternatives to MSGQ

Reported by: stephen Owned by:
Priority: high Milestone:
Component: ~msgq (obsolete) Version:
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: Core Feature Depending on Ticket:
Estimated Difficulty: 0.0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

Any package meeting the requirements (below) is a possibilities. Ones that may be worth considering are rabbitmq, boost::msgq, and dbus.

Requirements

  • We have to be able to secure if it uses other computers.
  • Nice: Cross-machine
  • Compatible license (not GPL)
  • Nice: send file descriptors
  • Nice: minimize dependencies
  • Nice: Client-side in Python and C++
  • Nice: Not have to declare types before sending
  • Nice: high-performance
  • Point-to-point and group communication (including no listeners)
  • Separate instances (to run multiple BIND 10 in parallel)
  • Multiple OS support
  • Nice: unit-tests for the code itself
  • Nice: mock test support

Subtickets

Change History (16)

comment:1 Changed 9 years ago by shane

  • Milestone changed from Year 3 Task Backlog to Sprint-20110419
  • Priority changed from major to critical

This task may be more usefully split into separate tasks, one for each specific library we want to look at.

In which case this tasks becomes 'investigate possible options and create tickets for them pointing here',

comment:2 Changed 9 years ago by vorner

I'm going to take DBus first, created ticket #849 for it. Leaving this open, so someone can have a look at others.

comment:3 Changed 9 years ago by vorner

Taking the boost::msgq next, in #852.

comment:4 Changed 9 years ago by shane

I created a ticket for boost::mpi based on looking at the boost::multiprocess::message_queue research from #852. This is ticket #853.

comment:5 Changed 9 years ago by stephen

  • Milestone changed from Sprint-20110503 to Year 3 Task Backlog

comment:6 Changed 9 years ago by shane

  • Defect Severity set to N/A
  • Sub-Project set to DNS

I had a look at RabbitMQ and it uses the Mozilla Public License, which requires code publication and is probably incompatible with ISC license needs. Please don't bother to investigate unless you hear otherwise.

comment:7 Changed 9 years ago by shane

This question contains a lot of links worth looking at in this context:

http://stackoverflow.com/questions/731233/activemq-or-rabbitmq-or-zeromq-or

comment:8 Changed 9 years ago by shane

  • Priority changed from critical to major
  • Sub-Project changed from DNS to Core

comment:9 Changed 8 years ago by jelte

Just adding a note here to serve as a reminder: bind10.py's log messages (necessarily) contain a few references to msgq in particular, and when we replace msgq, we need to go through bind10.py and it's messages to update, add, and/or remove those. (as noted in the review of ticket #758)

comment:10 Changed 8 years ago by jreed

I created a ticket for MessagePack: #1145

Last edited 8 years ago by shane (previous) (diff)

comment:11 Changed 8 years ago by stephen

  • Milestone changed from Year 3 Task Backlog to Sprint-20110802

This is an umbrella task, and is to be marked closed once the new message queue has been finally decided upon.

comment:12 Changed 8 years ago by shane

  • Priority changed from major to critical

comment:13 Changed 8 years ago by vorner

I had a look at the messagepack (#1145) and I don't think it is what we need. See the ticket for details.

comment:14 Changed 8 years ago by stephen

  • Milestone changed from Sprint-20110816 to Next-Sprint-Proposed

comment:15 Changed 8 years ago by shane

See msgqReplacements for a summary of the findings.

comment:16 Changed 8 years ago by shane

  • Milestone Next-Sprint-Proposed deleted
  • Resolution set to complete
  • Status changed from new to closed

We decided we'll use d-bus for this. See August2011MeetingMinutes.

Note: See TracTickets for help on using tickets.