Blog Archive

Showing posts with label Oracle. Show all posts
Showing posts with label Oracle. Show all posts

What's Next for Tungsten Replicator

As Giuseppe Maxia recently posted we released Tungsten Replicator 2.0.4 this week.  It has a raft of bug fixes and new features of which one-line installations are the single biggest improvement.  I set up replicators dozens of times a day and having a single command for standard cluster topologies is a huge step forward.  Kudos to Jeff Mace for getting this nailed down.

So what's next?  You can get see what we are up to in general by looking at our issues list.  We cannot do everything at once, but here are the current priorities for Tungsten Replicator 2.0.5.
  • Parallel replication speed and robustness.  I'm currently working on eliminating choke points in performance (like this one) as well as eliminating corner cases that cause the replicator to require manual intervention, such as aging out logs that are still needed by slaves.  
  • Multi-master replication.  This includes better support for system of record architectures, many masters to one slave, and replication between the same databases on different sites.  Stephane Giron nailed a key MyISAM multi-master bug for the last release.  We will continue to polish this as we work through our current projects.   
  • Better installations for more types of databases.  Jeff recently hacked in support for PostgreSQL as well as Oracle slaves, and we are contemplating addition of MongoDB support.  Heterogeneous replication is getting simpler to set up.  
  • Filter usability.  Giuseppe has a list of improvements for filters, which are one of the most powerful Tungsten Replicator features but not as easy for non-developers to use as we would like.  Better installation support is first on the list followed by ability to load and unload dynamically.  
  • Data warehouse loading.  We have a design for fast data warehouse loading that I hope we'll be able to implement in the next few weeks.  Linas Virbalas has also been working on this problem along with a number of other heterogeneous projects for customers.  
This is a lot of work and not everything will necessarily be finished when 2.0.5 goes out.  However, I hope we'll make progress on all of them.  In case you are wondering how we pick things, replicator development is largely driven by customer projects.   If you have something you need in the replicator, please contact Continuent.

After this build we will... Er, let's get 2.0.5 done first.  Suffice it to say we have a long list of useful and interesting features to discuss in future blog articles.

Oracle : Racing Ahead

This note follows the post on Fusion Apps Launch announcement. There were a slew of announcements from Oracle this Open World 2010 and Larry said few times that Oracle has launched so much this week like never before in the history of the company. I spent time at the Oracle Open World conference talking to partners, customers, oracle teams and fellow influencers and found that in general the mood was positive and Oracle was trying to move things forward. The tagline hardware and software engineered together was resonating quite a bit in the variety of announcements made in the meet . Oracle’s integrated hardware and software systems approach is a major step forward and brings an element of twist to the data center game. I want to quickly look at the core ideas, rationale and benefit of the integrated appliance model, the impact of Exadata and Exalogic, the new Fusion suite, and an early view of what could be coming next.

Oracle Fusion Apps – Giant Leap? : Integration, Simpicity, Ease of Use, Flexibility are the key advantages touted by Oracle. The first set of apps encompass 7 big modules of fusion apps – Financial Management, HCM, Sales and Marketing, Project Portfolio management, SCM, PROCUREMENT & GRC . A good spread so to say, Oracle claims that these modules have within themselves, 5000 TABLES, 20000 VIEW OBJECTS, 10000 BUSINESS PROCESSES , 2500 APP MODULES – no doubt a mammoth effort. An Oracle engineer told me 8000 plus engineers worked for several years to get this out – truly a massive engineering effort. Oracle showed a good demo of Fusion Apps in action integrating a variety of business processes. The demo showed Fusion Apps having good clean UI with modern look and feel with lots of embedded activity stream.


Apparently, these modules were simultaneously tested with select customers while getting developed and Oracle says extensive efforts went behind optimizing the screens, workflows and functionalities. The key thing here is that the Fusion Apps platform leverages standard middleware and oracle says no proprietary language is involved. By using Java as the development standard, Oracle seems to have pushed the platform become lot more easy to adopt and Oracle highlighted that competition ranging from SAP to Salesforce.com insists on using proprietary languages to develop on their respective platforms. Such a middleware support makes it possible to connect easily with SAP and any other enterprise system and the emphasis here is that the ease come from the fact that everything is web service enabled. All these confirm the fact that Oracle is one of the few vendors to completely rebuild its apps, BI, and middleware from scratch though their stand on multitenancy is not clear as of today. It’s a major step forward to see that all models of cloud - Public, private, hybrid, on premise are fully supported with facilitated help to move easily across these clouds. Fusion Apps, the long-awaited next iteration of the company’s application suite, will begin shipping to customers in CY1Q11, but the full vision is likely still a couple of years from reality( as in fully blown implementations)


I did spend a lot of time looking at the new set of fusion apps - HCM to CRM to SCM etc.. Oracle is claiming embedded collaboration inside Fusion apps and what I saw therein was an integrated social layer built inside, engineered to share and use the profile information tied to identity management and leading onto analytics. The standard features that we see in terms of begin able to synthesise information based on social profiles, initiate loose form of collaboration like chat, VoIP are now integral inside Fusion Apps. The in-speak, in-context enablement was certainly there inside the apps. This may run contrary to purist form of social collaboration but context is a powerful element in the collaboration mix and coupled with enterprise objectives of easing communications amongst stakeholders make this a powerful enterprise collaboration enabler. The product has good social networking inside the ECM product with support for activity streams and features like integration with Microsoft Outlook to support threaded conversations, document level collaborations etc, ability to have linkages with non Oracle apps through social networks signify important advancements therein. Fusion apps is stepping up to behave and act like an enterprise collaboration infrastructure for Apps users and this is SIGNIFICANT advancement in and of itself.

Collaboration inside Fusion apps looks very powerful – mirroring SAP’s streamworks, it provides context based social conversation possible. The real-time and intelligent collaboration inise Fusion Apps is designed to operate around ‘conversations’ as the primary social object, it works as a central engagement utility in the enterprise that can be triggered from anywhere – natively or (soon) from other applications. Oracle executives told me that this extends to provide a lightweight collaboration feature such as tagging and annotating digital assets , analytics integration With light collaboration features such as annotation on digital assets, multimedia support (like video, voice), this will prove to be very useful inside enterprises. It appears to me that Oracle’s goal was to be best amongst the enterprise players in the social and collaborative space (ignoring the stand alone best of breed players) and they seem to have achieved their objectives here. If these go into their customer’s enterprise, we will see significant usage and extensions

With the launch of Exalogic Elastic Cloud, Oracle now has an integrated, purpose-built machine for data warehousing, OLTP, (Exadata) and application server middleware workloads. The key things to note is that when Fusion Apps rolls out early year, they will also run on Exalogic. Potential Impact : Significant – Oracle gets a differentiated position to balance and consolidate workloads and given its significant marketshare, gets to become a big force in the data center.


Exalogic- Optimizing (Redefining?) Java Workloads

The launch of Exalogic is a real milestone for Oracle and for the enterprise users. An integrated Java middleware aimed at balancing and consolidating workloads and potentially drive costs down for the enterprise. We now see Oracle making full use of the BEA acquisition here – the complete WebLogic stack is made to run on an optimized Linxu Kernel delivers can deliver very high reliability and a mindblowing performance. Add the Tuxedo piece here (forthcoming according to Oracle) – this makes the combo more powerful and can potentially run as a credible candidate in some cases for mainframe replacements. Tuxedo already has offerings that can enable enterprises migrate OLTP apps to run on Oracle platforms without any code change. Today Tuxedo can run on Exalogic but a fully optimized Tuxedo on Exalogic is rolling out shortly.

I could not attend the Java one conference but would expect Oracle to make Java programming easier to compete with easy to use newer cousins like VMWare’s spring source framework. Such a move would add more possibilities for growth herein.

Consolidating Customer Spend

Together with Exadata and Exalogic, Oracle’s positioning would be that they are giving their customers the real opportunity to reduce TCO. With more than 2/3rd of the IT budget goes towards sustenance leaving less than a third for new programs and innovation, Exalogic is engineered to enable customers to provision, monitor and manage the infrastructure stake end-to-end. This obliviates the need for enterprises to invest in separate storage and management mechanism for enterprises. If Oracle muscles into enterprise and help them lower costs by having an integrated, simpler to use and easy to maintain well engineered systems, By optimizing across the stack including middleware and database, Oracle can optimize so much that queries can run faster and performance can get a real push. Exalogic obviates the need to purchase SAN storage, by integrating disk storage, compute and middleware into Exalogic. Not only would it impact high end sales but Oracle also integrated several backup features including replication, snapshots, and disk to disk to tape backup, Enterprises will begin to see opportunities around consolidation od their assets and leverage their internal talent to reduce maintenance overheads – resulting in a potentially big savings, if thought through and executed well. For enterprises, such a strategy could unlock more dollars from sustanence activities to be redeployed to new programs and innovation. Belief in such a philosophy could force enterprise customers to consolidate more and more around the oracle stack.


Its undeniable that the “feel on the street” at Oracle OpenWorld this year was that it was “full speed ahead” at Oracle. Its clear that Oracle has attempted to create an entirely new architecture here and amongst the key differences include building business intelligence and analytics directly into the applications, This move also in a way gives an upgrade path to users of add –on enterprise apps like JDE, Peoplesoft etc that Oracle over a period acquired, This increases the stickiness for Oracle customers and potentially make competition look that much more distant. Oracle has been able to demonstrate its ability to integrate wide ranging technology players and show a decent financial performance and their streak seems to continue here with hardware and software engineered together to deliver successful performance, Oracle blue stack is now well ahead of the pack in terms of owning key technologies in every layer of the stack from the chip through the application. If all these reach the customer in exactly the same way Oracle demonstrated, it will be a huge success story for Oracle and the enterprise software industry,

Oracle is moving very fast here –considering its size and reach. They are now rightfully setting the pace for its ecosystem partners to keep in step and deliver value to its customers . In fact Oracle seems to be getting closer to be the leader in the enterprise technology space –putting competition on alert and forcing them to collaborate with them as well as race fast where they want to play and lead.

Oracle, Cloud & Enterprise

I read with interest that observers of Oracle Open World 2010 brought out while reviewing the agenda : Oracle executive vice president Thomas Kurian's keynote was originally scheduled to showcase Fusion apps, but will now be all about "Oracle and Cloud Computing" and his company's role in the cloud "throughout the application lifecycle—from development and deployment to management and self-service administration. . . . Oracle's cloud solution spans all layers of the cloud, including infrastructure as a service (IaaS), platform as a service (PaaS), and applications or software as a service (SaaS), and this keynote focuses on how Oracle products enable cloud computing." Am headed later this evening,to Mascone to listen to Larry Ellison talk about the much delayed and much awaited Fusion Apps launch besides others like Exadata, Java, MySql and ofcourse about Mark Hurd.

There are compelling reasons for both large and medium-sized enterprises to be interested in cloud computing. For medium-sized companies, the top reason they are looking at cloud computing is that it's so much faster and cheaper to get started. Medium-sized companies may not have sophisticated IT departments nor the money to invest in upfront capital expenses, so using a public cloud provider may be very attractive. For larger companies, using an external cloud vendor may enable small teams or departments to get a new application or a development/test environment running in minutes instead of months. The self-service aspect of public clouds means that small teams can avoid a long wait for IT departments to approve project requests, procure servers, find room for them in the data center, install software, configure software, etc. Also, some applications have a limited lifespan of a few weeks or months, perhaps for a marketing campaign, event or special project. Pay-for-use and being able to return IT resources to the pool is perfect for these situations. Some enterprises, especially larger ones with economies of scale, are implementing "private clouds" for their own exclusive use. Large enterprises are interested in building their own private cloud to get the agility, efficiency and quality of service advantages of cloud computing, while mitigating concerns about public clouds, such as security, compliance, performance, reliability, vendor lock-in and long-term costs.

While we assess cloud adoption inside enterprises, we can overlook the fact that there really is a perfect storm in IT. Cloud computing, open source and Enterprise 2.0 are complementary technology shifts that threaten incumbant vendors, offer innovation & cost benefit opportunities (&risk) while challenging IT. It may be more profound than the introduction of PCs or Web 1.0 in business.

While I mull over all these topics, I was just seeing the state of adoption of Cloud/SaaS and the mindset amo0ngst enterprise buyers in moving to the new model. While I have written about how the cloud will disrupt all the stakeholders here, here and here, I wanted to look at the inhibiting factors for cloud adoption inside enterprises and what can be done about it.

Survey after survey lists key adoption concerns of users revolving around, legacy environments –stakeholder interests –in terms of ownership, governance ,legacy environments –protecting investments, Status quo maintenance in respect of leagacy apps – why tinker with it if its performing at acceptable levels. In many places, IT and Business are thoroughly underprepared to do the generation climb – they may have to revisit all the important decisions that they have lived woth in respect of system of records, security practices, integration mechanisms, business rules and process orchestrations, master data management etc. Revisiting all these things would call for mammoth preparation from IT and Business . Arguably, this is a very overwhelming proposition for IT inside enterprises. Business would tend to believe this move into clouds/SaaS may simplify their operations but in reality expectations may be overrunning reality and with the result the list of needs keep expanding adding to the burden on cloud/SaaS adoption.

Business need to look at their portfolio and arrive at a right solution that fits their need, Oracle with its very rich and highly capable consulting and system integration partners can help customers work through this terrain towards adopting Cloud/SaaS model starting from planning, contracting, migration approaches, implementation, integration and ongoing support. But,what Ellison announces today would be very important as it will in many ways shape enterprise adoption of cloud.Oracle is a profoundly influential force in the market today, and the strategies it pursues and the positions that it takes and its view on the ecosystem influences everybody across all those constituent sets of customers and prospects and partners and stakeholders and, perhaps most of all, competitors. Through various public announcements, Oracle has indicated that Fusion Applications' technical underpinnings, which include Oracle Fusion Middleware and the JDeveloper toolkit, may result in change for many users of Oracle's existing ERP (enterprise resource planning) products, which include JD Edwards, PeopleSoft and E-Business Suite. In terms of commercials, Oracle has indicated that Fusion Applications will obviously be sold in on-premises form as well as via hosting services like Oracle's own On Demand division, But it may be up to partners to deliver the software as true multi-tenant SaaS, which provides cost savings and cuts management chores, since multiple customers share the same application instance. Oracle has indicated in the past that upgrades could be “'like-for-like” meaning, if customers are upgrading from [E-Business Suite] financials to Fusion financials that should be a no-cost upgrade. But if it's a new module, that will be additional cost.

So far Oracle has revealed its cloud computing approach in three parts:
1. If you want an internal, or private, cloud, Oracle will sell you the hardware and/or middleware to build it.
2. If you want to use Oracle’s software on a third-party cloud, Oracle supports Amazon Web Services and Rackspace Cloud today, and will support other clouds in the future.
3. If you want to rent rather than own Oracle’s business applications, Oracle will provide those apps under a hosted subscription model.

This calls for too much of IT assembly and what’s needed is multitenant solutions across the oracle platform with a clearly articulated strategy . Rolling out more SaaS products is a good start point that will help simplify Oracle's offerings for customers. But Oracle also needs to define packages of its hardware and software components - similar to IBM’s notion of a “cloud in a box” and/or Microsoft’s Business Productivity Online Suite (BPOS). I am also keen to find out how much across the stack Oracle intends to support external products say DB2 or other virtualization platforms. All eyes are on what Larry will announce about Oracle’s cloud strategy tonight and the various cloud sessions planned in the next three days.

From information made available so far, What I see is that Oracle's strategy on public clouds remain very hazy( may be it is emerging or kept as a top secret pending an announcement in the session tonight), while their partners are Iaas/Paas partners are seen more of an additional channel. While private and hybrid cloud look to be a good starting point for enterprises to adopt, I see that the destination may be to have federated clouds and fully embracing public clouds. Also transitions to private clouds, may not be so easy as one tends to believe before venturing into the journey. Oracle's cloud approach needs to provide answers to these scenarios. I will be there talking to Oracle to find out more answers.

MySQL Conference Slides and Thoughts on State of the Dolphin

I did two talks on replication and clustering at the recent MySQL Conference in Santa Clara.  Thanks to all of you who attended as well as the fine O'Reilly folks who organized everything.  Slides are posted on the talk descriptions at the following URLs: 

Conferences like the MySQL UC are fun because you get to see all your virtual pals in the flesh and have a beer with them.  This is one of the fundamental open source bonding experiences.  Unfortunately the taps for draft beer stopped working at the bar, and Tungsten is in the middle of a big crunch to get parallel replication working.  I didn't get to hang around a lot this year.  A few things still stood out compared to 2009. 

First of all, long-term effects of the Oracle acquisition are clear.   Edward Screven's keynote on "The State of the Dolphin" was sensible and boring.  It seemed a telling metaphor for life in the community going forward.  Oracle is going to do an adequate job of MySQL engineering and better than adequate for Windows.  This is of course "adequate" in the same way that the word applies to products like Microsoft Word. 

An adequate MySQL is probably the worst possible outcome for the groups trying to build businesses on alternative builds.  It looks like an effective way for Oracle to neutralize competitive threats from below for a few years to come.   On the other hand, it's good for most users, who won't be greatly inclined to switch unless Oracle tries to soak them for big licensing fees.  At least one conference attendee, a licensee of other Oracle products, mentioned that had already happened.  He's a MariaDB fan now. 

Second, solid state devices (SSDs) are for real.   Andreas Bechtolsheim gave a great talk on the coming SSD revolution at the 2009 MySQL Conference.  It sounded good.  At the 2010 conference we started to see some real test results.  The hype on SSDs is completely justified. 

There was an excellent panel talk sponsored by Fusion-IO that presented some very compelling results including 10x throughput improvements that allowed one of the companies doing the testing to pull out and repurpose 75% of their hosts.  PCI-based Fusion-IO cards have a 300- to 400X price differential compared to basic rotating disk, but the cost is likely to drop pretty quickly as the technology matures and more competitors enter the field.  Much cheaper SATA alternatives like the Intel X-25 are already starting to flood the low-end market.  Anybody building database systems has to have a plan that accounts for SSDs now. 

Third, innovation is continuing apace but the problems (and solutions) are moving away from MySQL.   Mark Callaghan really put his finger on it at his Ignite MySQL talk when he said, "In 3 years MySQL won't be the default DBMS for high-scale applications."  New system investment is going into applications that handle big data, have to utilize new hardware efficiently to operate economically, and require multi-tenancy.  These are good targets for Drizzle, PBXT, Tungsten, and other new projects working to make names for themselves.   We all have to raise our game or MySQL will start to become irrelevant.   It's going to be an interesting year.  :)

Community Builds for Tungsten Clustering

It's been almost two months since I have posted anything on the Scale-Out Blog, as our entire team has been heads-down working on Tungsten. We now have a number of accomplishments that are worth writing articles about. Item one on that list is community builds for Tungsten clusters.

Tungsten community builds offer a bone-simple process to check out and build Tungsten clustering software. The result is a fully integrated package that includes replication, management, monitoring, and SQL routing. The community builds work for MySQL 5.0 and 5.1 and also allow you to set up basic replication from MySQL to Oracle.

Community builds do not include much logic for autonomic management, including automated failover and sophisticated rules that keep databases up and running rain or shine. Those and other features like floating IP address support are part of the commercial Tungsten software. PostgreSQL and Oracle-to-Oracle support is also commercial only at least for the time being.

Community builds do include our standard installation process, which allows you to set up a working cluster a few minutes. You can back up and restore datebases, check liveness of cluster members, failover master databases for maintenance and a lot of other handy features. There is also full documentation, located here.

To get started, you need a host running Mac OS X, Linux, or Solaris that meets the following prerequisites. On Linux you can usually satisfy these requirements using Yum or Apt-get if the required software is not already there.
  • Java JDK 1.5 or higher.
  • Ant 1.7.0 or higher for builds
  • Subversion. We use version 1.6.1
  • MySQL 5.0 or 5.1 (only on hosts where cluster is installed)
  • Ruby 1.8.5 or greater (only on hosts where cluster is installed)
Now you can grab the software and do a build. Make a work directory, cd to it, and enter the following commands. (Due to truncation on the blog the SVN URL looks a little funny. Don't be fooled.)
svn checkout \
https://tungsten.svn.sourceforge.net/\
svnroot/tungsten/trunk/community

cd community
./release-community.sh # (Press ENTER when prompted)
The release-community.sh script checks out most of the Tungsten code for you and does a build. IMPORTANT NOTE: The command shown above builds SVN HEAD, which means you may have a life of adventure. You can also build off branches which are more or less stable. Look at the available config files in the community directory.

After the build finishes, you have ready-to-install clustering software. You can scp the resulting tar.gz file out to another host or just cd directly into the build itself as shown below and run the configure script, which sets up Tungsten software on a single host.
cd build/tungsten-community-2009-1.2
./configure
You may need to read the manuals so you get all the answers right. The installation manual is posted here at www.continuent.com. You'll also need to look at the Replication Guide, Chapter 2 to see how to set up MySQL properly. We'll do that automatically in the future, but for now it's help yourself. (Don't worry: the database set-up is easy.)

To make the cluster interesting you should install on at least a couple of hosts. Here's what an installed cluster looks like using the Tungsten cluster control (cctrl) program.
[tungsten@centos5a tungsten-community-2009-1.2]$ tungsten-manager/bin/cctrl
[LOGICAL] /cluster/comm/> ls

COORDINATOR[centos5a:MANUAL]

ROUTERS:
+-----------------------------------------------------------------------+
|NONE |
+-----------------------------------------------------------------------+

DATASOURCES:
+-----------------------------------------------------------------------+
|centos5a(master:ONLINE, progress=3) |
+-----------------------------------------------------------------------+
| REPLICATOR(role=master, state=ONLINE) |
| DATASERVER(state=ONLINE) |
+-----------------------------------------------------------------------+

+-----------------------------------------------------------------------+
|centos5b(slave:ONLINE, progress=3, latency=0.0) |
+-----------------------------------------------------------------------+
| REPLICATOR(role=slave, master=centos5a, state=ONLINE) |
| DATASERVER(state=ONLINE) |
+-----------------------------------------------------------------------+
Starting from scratch and pulling code from SourceForge, it takes me about 30 minutes to get to an installed cluster with two nodes. At this point you have access to a very powerful set of tools to protect data, keep your databases available, and scale performance. Look at the manuals. Try it out. If you have questions or feedback, post them in the Tungsten forums. In the meantime, have fun with your database cluster.

p.s., We will post binary builds next week. The current build is in final release checks, so you may notice a few problems--I hit a Ruby warning on configuration that will be fixed shortly.

The Future of Database Clustering

Baron Schwartz started a good discussion about MMM use cases that quickly veered into an argument about clustering in general. As Florian Haas put it on his blog, this is not just an issue of DRBD vs. MySQL Replication. Is a database cluster something you cobble together through bits and pieces like MMM? Or is it something integrated that we can really call a cluster? This is the core question that will determine the future of clustering for open source databases.

I have a strong personal interest in this question, because Tungsten clustering, which I designed, is betting that the answer is changing in two fundamental ways. First, the problems that clustering solves are evolving, which will in turn will lead to significant changes in off-the-shelf clusters. Second, for most users the new clusters will be far better than solutions built from a bunch of individual pieces.

To see why, let's start with some history of the people who use open source databases and why they have been interested in clustering over the last decade or so. Open source databases have a wide range of users, but there are a couple of particularly significant groups. Small- to medium-sized business applications like content management systems are a very large segment. Large web facing applications like Facebook or GameSpot are another. Then there are a lot of custom applications that are somewhere in between--too big to fit on a single database dual- or quad-core server but completely satisfied with the processing power of 2 to 4 servers.

For a long time all of these groups of users introduced clusters for two main reasons: ensuring availability and raising performance. Spreading processing across a cluster of smaller commodity machines was a good solution to both requirements and explains the enormous popularity of MySQL Replication as well as many less-than-successful attempts to implement multi-master clustering. However the state of the art has evolved in a big way in the last couple of years.

The reason for change is simple: hardware. Multi-core architectures, cheap DRAM, and flash memory are changing not just the cost of databases but the fundamental assumptions of database computing. Pull out your dog-eared copy of Transaction Processing by Gray and Reuter, and have a look at the 1991 price/performance trade-offs for memory inside the front cover. Then look at any recent graph of DRAM and flash memory prices (like this one). For example, within a couple of years it will be practical to have even relatively large databases on SSDs. Assuming reasonable software support random reads and writes to "disk" will approach main memory speeds. Dirt-cheap disk archives are already spread across the Internet. The old graph of costs down to off-line tape has collapsed.

Moreover, open source databases are also starting to catch up with the hardware. In the MySQL community both MySQL 5.4 and Drizzle are focused on multi-core scaling. PostgreSQL has been working on this problem for years as well. Commercial vendors like Schooner are pushing the boundaries with custom appliances that integrate new hardware better than most users can do it themselves and add substantial database performance improvements to boot.

With better multi-core utilization plus cheap memory and SSDs, the vast majority of users will be able to run applications with adequate performance on a single database host rather than the 2 to 4 nodes of yore. In other words, performance scaling is rapidly becoming a non-issue for a larger and larger group of users. These user don't need infinite performance any more than they need infinite features in a word processing program. What's already there is enough, or will be within the next year or two.

Performance is therefore receding as a motivation for clustering. Meanwhile, here are three needs that will drive database clustering of open source SQL databases over the next few years.
  1. Availability. Keeping databases alive has always been the number one concern for open source database users, even back in the days when hosts and databases were less capable. This is not a guess. I have talked to hundreds of them since early 2006. Moreover most users just don't have the time to cover all the corner cases themselves and want something that just works without a lot of integration and configuration.
  2. Data protection. Losing data is really bad. For most users nirvana is verified, up-to-the-minute copies of data without having to worry a great deal about how it happens. Off-site protection is pretty big too. Talk to any DBA if you don't believe how important this problem is.
  3. Hardware utilization. With the dropping cost of hardware, concerns about up-front hardware investment are becoming somewhat outdated. Operational costs are a different matter. Let's look at power consumption and assume a dual CPU host drawing 250W, which we double to allow for cooling and other overhead. Using recent industrial electricity rates of 13.51 cents per kilowatt/hour in California you get an electric bill of around $600 per year. Electricity is just one part of operational expenses, which add up very quickly. (Thanks to an alert reader for correcting my math in the original post.)
We will continue to see database clusters in the future: in fact lots of them. But off-the-shelf clusters that meet the newer requirements in an efficient and cost-effective way for open source databases are going to look quite different from tightly coupled master/master or shared disk clusters like Postgres-R and RAC. Instead, we will see clusters based for the most part on far more scalable master/slave replication and with features that give them many of the same cluster benefits but cover a wider range of needs. To the extent that other approaches remain viable in the mass market, they will need to cover these needs as well.
  • Simple management and monitoring - The biggest complaint about clustering is that it's complicated. That's a solvable problem or should be once you can work with master/slave methods instead of more complex approaches. You can use group communications to auto-discover and auto-provision databases. You can control failover using simple, configurable policies based on business rules. You can schedule recurring tasks like backups using job management queues. You can have installations that pop up and just work.
  • Fast, flexible replication - Big servers create big update loads and overwhelm single-threaded slaves. We either need parallel database replication or disk-level approaches like the proposed PostgreSQL 8.5 log-streaming/hot standby or DRBD. Synchronous replication is a requirement for many users. Cross-site replication is increasingly common as well. Finally, replication methods will need to be pluggable, because different replication methods have different strengths; replication itself is just one part of the clustering solution, which for the most part is the same regardless of the replication type.
  • Top-to-bottom data protection - Simple backup integration is a good start, but the list of needs is far longer: off-site data storage, automatic data consistency checks, and data repair are on the short list of necessary features. Most clustering and replication frameworks offer little or nothing in this area even though replica provisioning is often closely tied to backups. Yet for many users integrated data protection will be the single biggest benefit of the new clustering approach.
  • Partition management - In the near future most applications will fit on a single database server, but most organizations have multiple applications while ISPs run many thousands of them. There need to be ways to assign specific databases to partitions and then allow applications to locate them transparently. This type of large-scale sharding is the problem that remains when single application databases can run on a single host.
  • Cloud and virtualized operation - In the long run virtualization is the simplest cure for hardware utilization problems--far easier and more transparent than other approaches. A large number of applications now run on virtual machines at ISPs or in cloud environments like Amazon for this reason. To operate in virtual environments, database clusters must be software only, have simple installation, and make very minimal assumptions about resources. Also, they need to support seamless database provisioning to as capacity needs rise and fall, for example adding new VMs or provisioning an existing 4 core VM to a larger 8-core VM with more memory as demand shifts.
  • Transparent application access - Applications need to be able to connect to clusters seamlessly using accustomed APIs and without SQL changes. This is actually easier to do on databases that use simple master/slave or disk block methods rather than more complex clustering implementations. (Case in point: porting existing applications to MySQL Cluster.) Also, the application access needs to be able to handle simple performance-based routing, such as directing reports or backups to a replica database. The performance scaling that most users now need is just not that complicated.
  • Open source - For a variety of reasons closed approaches to clustering are doomed to insignificance in the open source database markets. The base clustering components have to be open source as some of them will depend on extensions of existing open source technology down to the level of storage and database log changes. You also need the feedback loops and distribution that open source provides to create mass-market solutions.
What I have just described is exactly what we are building with Tungsten. Tungsten is aimed at the increasingly large number of applications that can run on a single database. We can help with database performance too, of course, but we recognize that over time other issues will loom larger for most users. The technical properties described above are tractable to implement and we have a number of them already with more on the way in the near future. Master/slave clustering is not just feasible--it works, and works well for a wide range of users.

Still, I don't want anyone to mistake my point. There are many applications for which performance is a very serious problem or whose other needs cannot possibly be met by off-the-shelf software. Facebook and other large sites will continue to use massive, custom-built MySQL clusters as well as non-SQL approaches that push the state of the art for scaling and availability. Analytics and reporting will continue to require ever larger databases with parallel query and automatic partitioning of data as Aster and GreenPlum do. There are specialized applications like Telco provisioning that really do require a tightly coupled cluster and where it's worth the effort to rewrite the application so it works well in such an environment. These are all special cases at the high end of the market.

Mainstream users need something that's a lot simpler and frankly more practical to deliver as an off-the-shelf cluster. Given the choice between combining a number of technologies like MMM, backups of various flavors, cron jobs, Maatkit, etc., a lot of people are just going to choose something that pops up and works. The hardware capability shift and corresponding database improvements are tilting the field to clustering solutions like Tungsten that are practical to implement, cover the real needs of users, and are fully integrated. I'm betting that for a sizable number of users this is the future of database clustering.

p.s., We have had a long summer of work on Tungsten, which is why this blog has not been as active as in some previous months. We are working on getting a full clustering solution out in open source during the week of September 7th. For more information check out full documentation of open source and commercial products here.