-------------------------------------------------------- The Corosync Cluster Engine Topic Branches and Backlog -------------------------------------------------------- ---------------------------- Last Updated: October 2011 ---------------------------- -------------------------------------- Current priority list for Needle 2.0 -------------------------------------- 1. implement topic-map 2. replace confdb callers with map callers 3. quorum debugging and rework 4. implement topic-xmlconfig 5. remove external plug-in api 6. remove logsys.h from external headers 7. remove hardcoded values in totempg.c check_q_level 8. check max message size restrictions 9. investigate if https://github.com/asalkeld/libqb/issues/1 is still an issue. 10. allow a cluster name to autogenerate a mcastaddr 11. ring status change via corosync-notifyd -------------------------------------- Current priority list for Needle 2.1 -------------------------------------- 1. implement topic-onecrypt 2. implement add/remove nodes from udpu 3. logsys glue layer removal 4. implement topic-zerocopy 5. implement topic-rdmaud 6. harden and finish ykd algorithm We use topic branches in our git repository to develop new disruptive features that define our future roadmap. This file describes the topic branches the developers have interest in investigating further. targets can be: whitetank, needle2.0, needle3.0, or future (3.0+). Finished can be: percentage or date merged to master. Once in a shipped version, please remove from the topic list. ------------------------------------------------------------------------------ topic-map ------------------------------------------------------------------------------ Main Developer: Honza Friesse Started: not started Finished: 20% target: needle2.0 Currently confdb is very difficult to use. We use this component for our diagnostic feature set as well as storing our runtime configuration. A map is a better choice for a data structure here. Current thinking is to use the trie implementation from libqb to provide the core of this functionality ------------------------------------------------------------------------------ topic-xmlconfig ------------------------------------------------------------------------------ Main Developer: Honza Friesse Started: not started Finished: 0% target: needle2.0 Test suites and users alike would like to configure the software via XML configuration. Current thinking is we will implement a separate binary which converts xml to native config format via XSLT. This keeps libxml out of the corosync process address space. During startup, corosync could either fork and exec this process, or it could be part of the system startup mechanism. ------------------------------------------------------------------------------ topic-onecrypt ------------------------------------------------------------------------------ Main Developer: Honza Friesse Started: not started Finished: 0% target: needle2.1 Description: Currently encryption code is located in totemudp.c, totemudpu.c, and iba has no encryption support. This topic merges the encryption code into a new file such as totemcrp.c and provides a mechanism for totemnet.c to register encrypt and decrypt functions with totem[udp|iba|udpu] and use them as requested by the configuration. ------------------------------------------------------------------------------ topic-netmalloc ------------------------------------------------------------------------------ Main Developer: Honza Friesse Started: not started Finished: 0% target: needle2.1 Description: The totemiba.c driver must allocate memory and assign it to a protection domain in order for an infiniband driver to transmit memory. In the current implementation, totemsrp.c also allocates these same frames. This results in an extra memcpy when transmitting with libibverbs technology. Memory copies are to be avoided. The simple solution is to have each network driver provide a memory allocation function. When totemsrp wants a free frame, it requests it from the network driver. ------------------------------------------------------------------------------ topic-rdmaud ------------------------------------------------------------------------------ Main Developer: Honza Friesse Steven Dake Started: not started Finished: 0% target: needle2.1 Description: Currently our RDMA code uses librdmacm to setup connections. We are not certain this extra library is needed, and may be able to use only ibverbs. If this is possible, the totem code may be more reliable, especially around failure conditions. ------------------------------------------------------------------------------ topic-zerocopy ------------------------------------------------------------------------------ Main Developer: Honza Friesse Started: not started Finished: 0% target: needle2.1 Description: Totem has many copies involved in messaging which we would like to investigate removing. Our goal is to deliver wire speed performance for rdma networks, and if this can be achieved by our other topic investigations, we may not further investigate this topic. The basic idea of the topic is to handle message assembly/fragmentation in libcpg, and have totem be responsible for sending these pages that are shared via posix shared memory. ------------------------------------------------------------------------------ other topics not yet defined: * disallow binding to localhost interfae in redundant ring configuation. * doxygenize include and lib directories. * sort out binding to localhost in general * totem multiring * load balancing over different speed links in RRP