Ini berorientasi pada Java, tetapi API klien basis data asli dapat dijembatani ke sumber data JDBC. Tungsten Myosotis adalah contoh untuk MySQL asli untuk JDBC bridging.
Tungsten Enterpriese baik untuk multi-master asinkron. Saya pikir ini berfungsi untuk MySQL, PostgreSQL, dan Oracle. Itu dapat menjalankan mandiri atau tertanam di aplikasi Java. Saya telah melihatnya berfungsi untuk MySQL, tetapi mereka mengklaim PostgreSQL. Komponen Replikator mereka adalah open-source, tetapi solusi lengkap memiliki lebih banyak bagian dan membutuhkan biaya lisensi. Continuent awalnya memiliki Sequoia untuk multi-master sinkron tetapi mereka meninggalkannya, dan menciptakan Tungsten sebagai gantinya untuk multi-master asinkron - mereka menganggap skala bisnis yang lebih strategis daripada konsistensi ACID sinkron. Tungsten ditulis di Jawa, oleh karena itu mereka menawarkan Myosotis untuk menjembatani klien database asli.
SymmetricDS baik untuk multi-master asynchronous. Ini adalah open-source. Ini menginstal / mencopot pemasangan memicu untuk menangkap pembaruan, bukan bin logging. Itu dapat menjalankan mandiri atau tertanam di aplikasi Java.
HA-JDBC baik untuk multi-master sinkron. Ini menggantikan perangkat lunak lama yang tidak berfungsi seperti C-JDBC dan Sequoia. Ini adalah open-source. Ia menggunakan komit dua fase dan berfungsi untuk PostgreSQL, MySQL, Oracle, SQL Server, Derby, Sybase, dan banyak lainnya melalui dialek. Ini terutama untuk embedded, jadi embed dalam aplikasi Java untuk menjembataninya ke PostgreSQL. Kunci, urutan, waktu, rand, dan sebagainya yang didistribusikan, ditangani oleh jGroups dari Redhat / JBoss. Salah satu fitur yang bagus adalah mode transaksi "serial" alih-alih "paralel", jika aplikasi Anda mengalami kebuntuan dan tidak mendukung rollback. Saya berhasil menggunakan mode "serial" ini untuk me-retrofit aplikasi lawas yang tidak disadari DB-cluster, jadi tidak ada kode coba lagi transaksi. Mode serial menyelamatkan hari dan menghindari penulisan ulang yang tidak menyenangkan.
H2 baik untuk multi-master sinkron. Ini adalah open-source. Ini mendukung database atau cluster mandiri menggunakan komit dua fase, mirip dengan arsitektur HA-JDBC, tetapi semuanya dalam satu alih-alih memerlukan komponen tambahan untuk komit dua fase. Tidak yakin apakah kunci itu didistribusikan sendiri, atau tergantung pada pihak ketiga seperti jGroups atau Hazelcast.
Setiap replikasi berbasis JDBC untuk PostgreSQL dan basis data lainnya memerlukan asli ke jembatan JDBC, kecuali aplikasi Anda sudah ditulis dalam Java. Untuk MySQL, Tungsten Enterprise menawarkan komponen opsional yang disebut Myosotis. Saya berhasil menggunakan ini untuk menjembatani PHP / Perl / C / mysqlclient ke JDBC, di mana sumber data JDBC kebetulan merupakan sumber data proxy HA-JDBC yang menunjuk ke 4-node MySQL / InnoDB cluster.
Tungsten mendukung PostgreSQL dalam komponen Replicator dan Router mereka, tetapi tidak yakin tentang komponen Myosotis. Mungkin. Tungsten Replicator / Router komponen untuk multi-master asynchronous, tetapi Myosotis dapat menjembatani Anda ke back-end JDBC alternatif seperti HA-JDBC atau H2 untuk sinkron.
Jika ada PostgreSQL asli dari JDBC bridge, saya ingin mendengarnya. Secara teori, basis data apa pun dengan driver JDBC Type 4 dapat dijembatani. Tipe 4 JDBC berbicara protokol basis data asli seperti antarmuka klien asli untuk basis data itu, jadi harus ada pemetaan satu-ke-satu dari panggilan asli ke panggilan JDBC.