TODO 4.8 KB

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