On Thu, Mar 10, 2016 at 2:11 AM, Ben Pfaff <b...@ovn.org> wrote: > Database txn ACID consist trk HA OS C Py format > ------------- --- ---- ------- --- --- --- --- --- ------ > ActorDB yes ACID strong NO yes yes yes yes sql > Aerospike yes ACID strong NO yes yes yes yes db/KV > Cassandra NO -C-D tunable NO yes yes NO yes table > Cockroach DB yes ACID strong NO yes yes ? ? sql > Couchbase NO ???? ???? NO yes NO? yes yes JSON > CrateIO NO ???? EVNTUAL NO yes yes NO yes sql > etcd NO ACID strong yes? yes yes yes yes KV > Gigaspaces XAP yes ACID strong yes yes NO NO NO multi > HBase NO ACID strong NO yes yes NO yes table > Hyperdex yes ACID strong NO yes NO yes yes KV > Hypertable NO ???? ???? NO yes yes NO yes table > MongoDB NO ACID strong ?? yes yes yes yes JSON > RAMCloud yes ???? strong NO yes yes NO yes KV > Redis yes -C?D ???? NO yes yes yes yes KV > Riak NO ---D EVNTUAL NO yes yes yes yes KV > Scalaris yes ACI- strong NO yes yes NO yes KV > ScyllaDB NO -C-D tunable NO yes yes NO yes table > Voldemort NO ???? EVNTUAL NO yes yes NO yes KV > Zookeeper yes AC-D strong yes yes yes yes yes KV > > OVSDB yes ACID strong yes NO yes yes yes table >
I've shared this message with a few people that I work with that have more experience evaluating these things than I do to gather some feedback. Julien Danjou offered the following alternative that I felt was worth adding to the conversation: > Database txn ACID consist trk HA OS C Py format > ------------- --- ---- ------- --- --- --- --- --- ------ > PostgreSQL yes ACID strong yes yes yes yes yes sql > > PostgreSQL is way more powerful than most people know, and I think it > offers all the features you need: > > - Size: not an issue, it can handle terabytes and you only seem to need > a few hundred of megabytes > - Scale: not an issue too, can handle thousands of connection per > seconds > - Performance: again, not an issue, can handle very large amounts of it > - Transactions: yup > - HA: this can be done, though it requires probably a bit more manual > work to be put in place. This can automated in some way, but it's easy > to do stream replication with a hot stand by server to recover. > Recent versions of PostgreSQL offer tools for that. > - Open source, as you know :) > - C client > - Python client (psycopg2 is pretty good, used it a lot) > - Table obviously > - Schema but you know it > - Network, amirite? > - Easy to have a lot of read-only replicas > > So yes, it has everything OVN needs. It can push notifications to > clients via the NOTIFY¹ command (that you can use in any > procedure/trigger). For example, you could imagine creating a trigger > that sends a JSON payload for each new update/insert in the database. > That's literally 10 lines of PL/SQL. > > ¹ http://www.postgresql.org/docs/9.5/static/sql-notify.html > > I think that PostgreSQL would be the safer bet in this move, as: > - building something on top of etcd would seem weak w.r.t your > schema/table requirements > - investing in OVSDB (though keep in mind I don't know it :-) would > probably end up in redoing a job PostgreSQL people already have done > better than you would ;-) > > The only questions that this raises to me are: > - whether PostgreSQL is too large/complex to deploy for OVN. Seeing the > list of candidates that were evaluated, I wouldn't think so, but there > can be a lot of different opinions on that based on different > perception of PostgreSQL. And since you're targeting a network DB, you > definitely need a daemon configured and set-up so I'm only partially > worried here. :) I wouldn't think so, but it sounds like I need to study the HA model. Specific to the OVN+OpenStack use case, I imagine a frequent question would be, "why do I have to use MariaDB+Galera AND PostgreSQL in the same environment?!" I suppose OpenStack works with PostgreSQL, too, and it's just a deployment choice that most people seem to be using MariaDB+Galera. Further on that note, I take it MariaDB+Galera is lacking against these requirements? Or should it be on this list? > - if the HA model(s) provided by PostgreSQL can fit the requirement of > OVN. I would think so, but I'm not sure on how exactly OVN is on the > scale of "resilient vs integrity". Based on this info, PostgreSQL sounds worth a close look. (Thanks, Julien!) -- Russell Bryant _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev