Cross-platform software

Couchbase is Simply Awesome

Here are five things that make Couchbase a go-to service in any architecture.

Couchbase is simple to setup.

Keep It Simple. It's one of the axioms of system administration. Couchbase, though complicated under the hood, makes it very simple to setup even complicated clusters spanning multiple data centers.

Every node comes with a very user friendly web interface including the ability to monitor performance across all the nodes in the same machine's cluster.

Adding nodes to a cluster is as simple as plugging in the address of the new node after which, all the data in the cluster is automatically rebalanced between the nodes. The same is true when removing nodes.

Couchbase is built to never require downtime which makes it a pleasure to work with.

32 or 64 bit MySQL

Recently, I wanted to confirm that I was running the 64 bit version of the MySQL server as opposed to the 32 bit version.

The Sun Webstack installation comes with both versions and if you use the built in SMF service, the difference between using the 32 bit version or 64 bit version is controlled by a flag in the service properties.

I, however, was not using the built in service, but rather using Sun Cluster to start the server.

Better User Management for MySQL

If you're like me, you love the granular permissions capabilities of MySQL but hate the work that goes into managing them.

Recently, I've been dealing with MySQL permissions a lot and most of the time I'm creating very similar permissions over and over again. It got me thinking that I could really use MySQL groups. Unfortunately, there doesn't seem to be anything like groups in MySQL and according to plans won't be added officially until MySQL 7.0 (WL#988). Considering they originally planned to include Role support in MySQL 5.0, I'm not sure I'm holding my breath.

While searching around, I found Securich – a project about 6 months old which uses stored procedures to create a much more capable and easy to manage permissions system on top of MySQL's existing permissions. DISCLAIMER: I have not actually tried this so everything I say is based on what I'veunderstood from the documentation.

Real Time Reporting Databases

Reporting projects are the kind of projects which never seem to end. After a couple iterations I've come to the following conclusions:

  1. Absolutely no reports should run on a production database.
  2. Moving/aggregating data from a production database to a reporting database using ETL tools prone to synchronization issues and pretty unreliable.
  3. The best option is to set up real time replication of the data and build additional views on that.

Unfortunately, if you need to get data from heterogeneous databases, ie. Oracle, MySQL, SQL Server, etc. into a single reporting database, replication is not a simple solution. If you are running expensive database software in production, it may not be cost effective to run the same database for reporting.

Of course there are cross database replication solutions like Golden Gate or SharePlex but they are very expensive. I had already given up on getting data from Oracle into MySQL for reports when I stumbled across Tungsten Replicator.