FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.26k stars 216 forks source link

using external firebird databases as cluster. #8024

Open gladiston opened 8 months ago

gladiston commented 8 months ago

Discussed in https://github.com/FirebirdSQL/firebird/discussions/8022

Originally posted by **gladiston** February 28, 2024 Is it possible in the future all firebird databases will be an unique cluster of databases and do this: select a.name, b.pic_logo from database1..clients a inner join database2..images b on (a.id_client=b.id_client) Maybe using databases aliases in databases.conf as alias database name in the query. Separate databases is more convenient to be written in different devices where the performance will be better for each database and backups too. I like this feature in another RDBMS like MSSQL. Just an idea.
mrotteveel commented 8 months ago

This sounds like cross-database querying, which is something else than clusters (a term usually involving multiple servers/hosts acting as one). I believe there is an existing ticket for this feature, but I'm having trouble finding it.

gladiston commented 8 months ago

Cluster of cpu´s, cluster of disks, ... the Sybase and MSSQL called just one Device with multiples databases inside. But I not thinking grid computing, just a several databases in the same host, because it´s more easy to implement. Two phase commit in several hosts, that will be much more complicate, knightmare to any dev. @romansimakov says that feature already exists in RedDatabase6 - Firebird like. I dont know this particular RDBMS, but it´s near.

aafemt commented 8 months ago

With introduction of zero-seek-time SSD and multicore CPUs this kind of clusters lost meaning.

gladiston commented 8 months ago

With introduction of zero-seek-time SSD and multicore CPUs this kind of clusters lost meaning. My intention is to make one database see the other transparently. It´s a big step. If the name will be "cluster" or anything else does not matter.

aafemt commented 8 months ago

This step is so big that nobody can do it without a very-very strong reason. If it is your intention - you are welcome to prepare a pull request

romansimakov commented 8 months ago

With introduction of zero-seek-time SSD and multicore CPUs this kind of clusters lost meaning. My intention is to make one database see the other transparently. It´s a big step. If the name will be "cluster" or anything else does not matter.

I'd hazzard a guess tablespaces might fit your goals. They already are in RedDatabase 5 and I can send you a link to beta version for testing. You can move database tables or indices though multiple tablespaces (disks). A patch for Firebird will be based on this implementation.

Another future that might help you is partitioning. It's another step in the direction you mentioned.