Could I use MySQL?
  • I have mysql installed on my machine, I don't feel like installing another sql program, but if I must, I will try

    I think that if you need postgresql, that may be causing some people to turn away, as some have other sql programs installed already

    also where are the config files stored?
  • Installing PostgreSQL is trivial on most Linux distributions and does not interfere in any way with MySQL. What possible other reason would you have for not wanting to install it?
  • I don't know how to configure Postgresql for this program, I already have configured mysql, so far I cannot figure out if postgre has a default account... so I cannot configure it
  • Personally, I use MySQL for everything else, so while installing PG is trivial I'd rather be able to use my dbms of choice.

    I wouldn't mind doing some work to make Cyphesis use either PG or MySQL. (by configure options, eg. --with-mysql)

    Does anyone have any objections or cons to this?

    Ian
  • I have a few reservations that I'll detail here.

    Firstly postgresql is just one of around 40 dependencies that Cyphesis has, and I am not sure whether user preference really has any role in determining which dependencies a program should have, or a reason to support a choice of dependencies to achieve essentially the same role. When you have PostgreSQL installed for cyphesis, you are not really using it any more than you are using avahi or python. All interaction with the database is abstracted using the cyphesis admin tools. It is just another chunk of code that cyphesis is using; the fact that part of it runs in a separate process space is not relevant.

    There is currently quite a tight interface between cyphesis and the database client code with a number of features that were fairly tricky to implement and depend on the API design of the library. In particular support for asynchronous communication and the ability to handle RDBMS crash or restart seamlessly. Cyphesis is single threaded so blocking operations cannot be supported.

    Finally I am concerned that MySQL is missing features at the back end which cyphesis makes use of. I believe referential integrity is currently not supported and I would need to be sure that sequences can be reliably used to guarantee ID space integrity.

    There are two steps to implementing MySQL support. The first is to add a meaningful abstraction layer so that there is no tight coupling to client code. The second is then to write the MySQL driver for this layer.

    The abstraction layer is where I think most of the issues occur, so I would prefer to have a good understanding of the technical design proposed for such a layer before committing to integrating the effort into the main codebase. Whether that means a design document or a more freeform discussion is up to you. A proper evaluation of whether the mysql client library supports asynch communication and re-connection in a way that can work with Cyphesis is also important.

    I'll do my best to be constructive and non-obstructive in dealing with these issues.

    Al
  • "alriddoch" said:
    I have a few reservations that I'll detail here.

    Finally I am concerned that MySQL is missing features at the back end which cyphesis makes use of. I believe referential integrity is currently not supported and I would need to be sure that sequences can be reliably used to guarantee ID space integrity.

    There are two steps to implementing MySQL support. The first is to add a meaningful abstraction layer so that there is no tight coupling to client code. The second is then to write the MySQL driver for this layer.

    Al


    Excellent point regarding the RI. I hadn't considered that. I think that's pretty much a deal breaker then. That, and I'm beginning to lose faith a little in MySQL now that Oracle has it in its clutches. :)

    Ian
  • To clarify I don't think that the lack of referential integrity is a deal breaker, but it does possibly mean that MySQL would be a second class backend from a data integrity point of view. I do systems administration for a large MySQL installation, and I am aware that MySQL performs pretty well, so I can see value in doing the port and I don't see Oracle as a significant threat to the project.

    I'll leave it up to you whether you think the idea is worth pursuing. I just wanted to highlight my perspective on the issues, and the barriers to getting the code into the core cyphesis codebase.

    Al

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Google Sign In with OpenID