Re: Call for roadmap features for future releases

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/13/2012 11:07 AM, Jan Friesse wrote:
> I invite all of our contributors to help define the X.Y roadmap of
> Corosync.  Please submit your ideas on this list.  Some
> examples of suggested ideas have been things like "remove binding to
> localhost", "don't rely on multicast loop facility" or "include user
> data in cpg join/callbacks".
> 
> Please submit your ideas by May 11, 2012 (Friday).

- re-evaluate using libtool to link libraries.
  current method is suboptimal and it´s not easy to port across
  different OS´es.

- reorganize library/headers/code in the tree.
  right now we have libraries in 3 dirs:
  common/ (corosync_common)
  exec/   (totem)
  lib/    (user exposed service libraries)

  the logical division is crystal clear but it has the disadvantage
  to duplicate a lot of the build logic around and it duplicates
  some util.h bits (confusing).
  It also make header inclusion a bit more complex than it needs to be.
  Also the way headers are layered it creates an unnecessary amount
  of define/struct duplications between user visible header/ipc/services

  My suggestion is to simplify it all at once (only because it makes
  more sense to do it in one-pass) by:

  1) move all the libraries in libs/ subdirectory and still retain
     logical division libs/{common,totem,lib}
  2) move all internal headers to includes/internal
  3) deduplicate definitions by creating corosync/common/ headers
     to share between exec and user libraries.

  *NONE* of the above has any user visible change (except for
  packagers).

  the end result would be cleaner in terms of code location,
  headers readability (this needs to be discussed in more details)
  and deduplicating data around.

  One simple example to make it more clear (that applies to some
  structs and many other defines too in several services):

  [fabbione@daikengo corosync]$ grep VOTEQUORUM_INFO_LEAVE * -r | grep
define
  include/corosync/ipc_votequorum.h:#define VOTEQUORUM_INFO_LEAVE_REMOVE
          32
  include/corosync/votequorum.h:#define VOTEQUORUM_INFO_LEAVE_REMOVE
       32

  There is no point to keep this duplication around.

  votequorum.h can simply include common/votequorum.h
  ipc_votequorum.h can do exactly the same

  common/votequorum.h would define INFO_LEAVE.

  From a votequorum (or service foo) perspective there are no changes
  as the application using it will see no difference, but it simplifies
  the amount of code changes when adding new flags or adding new IPC
  calls and all.

- change and simplify build defaults.
  Right now we have a major discrepancy between the way we build
  upstream and the way distributions build corosync.
  Default corosync is to build no features unless enabled.
  Default for distributions is to build everything that can possibly
  be built.
  I think this is just plain silly.
  My suggestion here is:
  - architecture independent features should be on by default
    (example: xml, dbus, monitoring, watchdog, augeas, systemd,
     initddir...)
  - architecture dependent features should be off by default
    (example: rdma, small-footprint)
  - general policy for features:
    - stable feature: ON
    - devel/experimental features: OFF
  - test/debugging components/options off by default

In time we can take a step forward and remove all the conditionals
around "INSTALL_FOO" and simply install it. It doesn´t harm
the final user as packagers will strip down as necessary
and makes the build system incredibly simpler.
Simplicity will also reflect in the spec file.

- porting of qdisk to votequorum and eventually finalize qdevice API
  in votequorum.

- support more encryption methods (other than none/aes256) from nss.

- libtotem cleanup/rewrite (3.x)
  During the last phase of 2.0 devel, we did hit a few limitations
  on what we could fix and how due to the way libtotem layers
  call each other. We should evaluate and consider to simplify those
  layers and make code easier to maintain.
  Simplification will give us also the option to improve runtime
  reconfiguration of totem (right now very limited).

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss



[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux