4 ms·
What's the purpose of having pluggable-storage-engines? From what I can see, InnoDB is the only engine to support basic features like transactions, foreign-keys
by keeperofdakeys 12y ago
What's the purpose of having pluggable-storage-engines? From what I can see, InnoDB is the only engine to support basic features like transactions, foreign-keys, MVCC, etc. I'm sure there are reasons to use the other storage-engines, like MyISAM for archiving lots of data, but why not just use a different database for this? Is there a performance price for having this flexibility?
- ddorian43 12y agoYeah mysql-implementation sucks. And (from reading the discussions on pg-hackers) was that it's very hard to keep semantics (transactions, snapshot-isolation, indexes etc). Different storage-engines have different pros-cons (the same with indexes gin/gist). You could have: in-memory storage engine (ex: current unlogged tables don't replicate since they don't have wal) compressed (something like tokudb/mx) columnar (see monetdb vs citus) etc It's harder to use another database because maintance + flexibility (ex: postgresql has arrays).
- tomiko_nakamura 12y agoPeople are working on other storage types for PostgreSQL. That's all I can say at this moment.
- ddorian43 12y agoStrange that they are working in secrecy. I would guess something like[1] would be better. [1]: http://www.postgresql.org/message-id/CA+U5nM+AFftDf-8UaMoe7Z8W6Sx-2EjFvEHephKQ=doEQ2Y1nQ@mail.gmail.com http://www.postgresql.org/message-id/CA+U5nM+AFftDf-8UaMoe7Z...
- ddorian43 12y agoMaybe you meant about this ? http://www.datanami.com/2015/03/04/fujitsu-adding-column-oriented-processing-engine-to-postgresql/ http://www.datanami.com/2015/03/04/fujitsu-adding-column-ori...
- dragonwriter 12y ago> why not just use a different database for this? You effectively are using different databases (as far as, e.g., operational characteristics) but with a common interface presented to client apps, letting the visibile database engine serve as an abstraction layer, and the consuming app(s) don't need to be aware of the backend differences, and are also somewhat insulated against needing to change if the storage engine used for various pieces changes.
- deleted 12y ago[deleted]