TODO 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. --------------------------------------------------------
  2. The Corosync Cluster Engine Topic Branches and Backlog
  3. --------------------------------------------------------
  4. ----------------------------
  5. Last Updated: October 2011
  6. ----------------------------
  7. --------------------------------------
  8. Current priority list for Needle 2.0
  9. --------------------------------------
  10. 1. implement topic-map
  11. 2. replace confdb callers with map callers
  12. 3. quorum debugging and rework
  13. 4. implement topic-xmlconfig
  14. 5. remove external plug-in api
  15. 6. remove logsys.h from external headers
  16. 7. remove hardcoded values in totempg.c check_q_level
  17. 8. check max message size restrictions
  18. 9. investigate if https://github.com/asalkeld/libqb/issues/1 is still an issue.
  19. 10. allow a cluster name to autogenerate a mcastaddr
  20. 11. ring status change via corosync-notifyd
  21. 12. remove dashes in UDPU notifier and replace with dots once map code is in
  22. 13. put addition/removal of members in totem.interface.member objects
  23. 14. dynamic UDPU needs ring id settings for multiple rings
  24. --------------------------------------
  25. Current priority list for Needle 2.1
  26. --------------------------------------
  27. 1. implement topic-onecrypt
  28. 2. implement add/remove nodes from udpu
  29. 3. logsys glue layer removal
  30. 4. implement topic-zerocopy
  31. 5. implement topic-rdmaud
  32. 6. harden and finish ykd algorithm
  33. We use topic branches in our git repository to develop new disruptive features
  34. that define our future roadmap. This file describes the topic branches
  35. the developers have interest in investigating further.
  36. targets can be: whitetank, needle2.0, needle3.0, or future (3.0+).
  37. Finished can be: percentage or date merged to master. Once in a shipped
  38. version, please remove from the topic list.
  39. ------------------------------------------------------------------------------
  40. topic-map
  41. ------------------------------------------------------------------------------
  42. Main Developer: Honza Friesse
  43. Started: not started
  44. Finished: 20%
  45. target: needle2.0
  46. Currently confdb is very difficult to use. We use this component for
  47. our diagnostic feature set as well as storing our runtime configuration. A
  48. map is a better choice for a data structure here. Current thinking is to
  49. use the trie implementation from libqb to provide the core of this
  50. functionality
  51. ------------------------------------------------------------------------------
  52. topic-xmlconfig
  53. ------------------------------------------------------------------------------
  54. Main Developer: Honza Friesse
  55. Started: not started
  56. Finished: 0%
  57. target: needle2.0
  58. Test suites and users alike would like to configure the software via XML
  59. configuration. Current thinking is we will implement a separate binary which
  60. converts xml to native config format via XSLT. This keeps libxml out of the
  61. corosync process address space. During startup, corosync could either fork
  62. and exec this process, or it could be part of the system startup mechanism.
  63. ------------------------------------------------------------------------------
  64. topic-onecrypt
  65. ------------------------------------------------------------------------------
  66. Main Developer: Honza Friesse
  67. Started: not started
  68. Finished: 0%
  69. target: needle2.1
  70. Description:
  71. Currently encryption code is located in totemudp.c, totemudpu.c, and iba has
  72. no encryption support. This topic merges the encryption code into a new
  73. file such as totemcrp.c and provides a mechanism for totemnet.c to register
  74. encrypt and decrypt functions with totem[udp|iba|udpu] and use them as
  75. requested by the configuration.
  76. ------------------------------------------------------------------------------
  77. topic-netmalloc
  78. ------------------------------------------------------------------------------
  79. Main Developer: Honza Friesse
  80. Started: not started
  81. Finished: 0%
  82. target: needle2.1
  83. Description:
  84. The totemiba.c driver must allocate memory and assign it to a protection domain
  85. in order for an infiniband driver to transmit memory. In the current
  86. implementation, totemsrp.c also allocates these same frames. This results in
  87. an extra memcpy when transmitting with libibverbs technology. Memory copies
  88. are to be avoided. The simple solution is to have each network driver provide
  89. a memory allocation function. When totemsrp wants a free frame, it requests
  90. it from the network driver.
  91. ------------------------------------------------------------------------------
  92. topic-rdmaud
  93. ------------------------------------------------------------------------------
  94. Main Developer: Honza Friesse Steven Dake
  95. Started: not started
  96. Finished: 0%
  97. target: needle2.1
  98. Description:
  99. Currently our RDMA code uses librdmacm to setup connections. We are not
  100. certain this extra library is needed, and may be able to use only ibverbs. If
  101. this is possible, the totem code may be more reliable, especially around
  102. failure conditions.
  103. ------------------------------------------------------------------------------
  104. topic-zerocopy
  105. ------------------------------------------------------------------------------
  106. Main Developer: Honza Friesse
  107. Started: not started
  108. Finished: 0%
  109. target: needle2.1
  110. Description:
  111. Totem has many copies involved in messaging which we would like to investigate
  112. removing. Our goal is to deliver wire speed performance for rdma networks,
  113. and if this can be achieved by our other topic investigations, we may not
  114. further investigate this topic. The basic idea of the topic is to handle
  115. message assembly/fragmentation in libcpg, and have totem be responsible for
  116. sending these pages that are shared via posix shared memory.
  117. ------------------------------------------------------------------------------
  118. other topics not yet defined:
  119. * disallow binding to localhost interfae in redundant ring configuation.
  120. * doxygenize include and lib directories.
  121. * sort out binding to localhost in general
  122. * totem multiring
  123. * load balancing over different speed links in RRP