Sunday, June 08, 2008

Microsoft Velocity

I have blogged a number of times about Distributed Object Caches. Almost all large financial firms have investments in object cache products. The three biggies are Gemfire, Tangasol Coherence (now part of Oracle), and GigaSpaces, and traditionally, these companies have targetted the Java and C++ marketplaces.

There have been niche products like NCache and memcache, but I have not seen an incredible amount of use of these out there in Wall Street.

If you have been reading this blog for any length of time, you know that I constantly lament the fact that Microsoft did not have what I refer to as "The Wall Street Stack".

However, last week, Microsoft landed with both big boots on the Wall Street Stack with the introduction of Velocity, their first attempt at a distributed object cache. Velocity, combined with some other efforts that Microsoft is working on (I have been sworn to secrecy on these efforts), dispells my ideas that Microsoft is ignoring enterprise technologies that matter to Wall Street, and especially, the area of trading systems.

I won't go into my thoughts on Distributed Object Caches, as I have blogged about them many times. But, I just want to list of few things that went through my mind as I read the Velocity announcement. I have a call this week with the Velocity team, and I hope to ask them these questions:

1) Will it remain free? I hope so. For the companies who pay lots and lots of money to Gemstone, Tangasol, and GigaSpaces, a free entry into this arena from a major vendor is sure to make the other vendors think about lowering their prices. In these economic times, financial companies will certainly welcome the chance to embrace this technology without having to spend a lot of money.

2) Will it be supported? If so, for how long, and by what product group? Microsoft is well known for coming out with technology that they let languish or deprecate. Right now, it seems like there is a small group in Microsoft that is working on Velocity. Does Microsoft have the appetite to build a support organization to properly support the product?

3) What are the synergies with other Microsoft technologies? LINQ? SQL Server? Gemfire has a SQL query language which you can apply to the data in their cache.

4) The Velocity team already said that they do not have push notifications yet. But, when they do, can we integrate a version of streaming LINQ (CLINQ?) with it? Push notifications is an extremely important feature that Velocity is missing right now, but it seems that a lot of people have told the Velocity team that this is a major shortfall.

5) Support for different messaging systems. Once we are able to get push notifications from Velocity, can we use JMS/Tibco EMS or RV?

6) Interface with Grids. It is no secret that the most prevelant use of object caches on Wall Street is with Grid Computing. How will Velocity interface with Compute Cluster? How about Digipede (if I know John Powers, he probably has support for Velocity already)?

7) Interoperability with non .NET-based systems?

8) What external database systems to they support? Will they support Oracle and Sybase? How about KDB?



©2008 Marc Adler - All Rights Reserved

6 comments:

Bill Bain said...

ScaleOut Software also has been delivering fully featured, scalable, highly available distributed caching for .NET since January, 2005. The key features that Microsoft has listed for release in CTP2 and V1 (and others which will not be available in V1) are available today in ScaleOut StateServer. SOSS is also self-configuring and self-healing as a fully peer-to-peer architecture. Lastly, with the forthcoming Grid Computing Edition, SOSS is adding new features (in particular, parallel method invocation) designed to support financial services applications, which is a key target market for us. SOSS is also very cost-effective at about $1K/server. Please see our Web site's press release (http://www.scaleoutsoftware.com) for our response to the Velocity announcement.

Regarding whether Velocity will be free, is this really what you want to encourage? Please consider the effect it has on the marketplace for other vendors who have invested years in developing this technology. If you want angel investors and VC's to invest in Microsoft-related technologies that drive new innovations, then it's unwise to kill off the market for others just as significant customer traction emerges.

marc said...

>> Regarding whether Velocity will be free, is this really what you want to encourage? <<<

Er .... yes. I am totally for free software. Isn't memcached free? Isn't NCache free? (Well, the Express version is.) It is very difficult for developers who are hobbyists and who are budget-constrained to afford the kinds of prices that companies like Gemstone demand.

Microsoft will probably take a while before it gets to the stage that Gemfire, Tangasol, GigaSpaces, and even ScaleOut are at. Maybe if and when they get to that stage, they will start charging the prices that everyone else charges. Or, maybe they will give Velocity out for free as a loss leader to drive more SQL Server sales.

For years, Microsoft has been packaging new, free utilities into Windows. These utilities have invaded the space of similiar utilities that used to be free. Companies have died because of Microsoft released a free utility in a certain space. Why should Microsoft's entry into the enterprise software space be any different.

If I run into Cameron or the Gemfire people or Geva Perry at SIFMA, I will ask them what they think of Velocity. But, none of these vendors felt the need to come out with a special press release that publically addressed Velocity. I think that Microsoft is still a ways away from competing against the more established vendors .... but I will find out more about their plans when I talk to the Velocity guys this week.

Anonymous said...

Given Vhayu trademarked the term Velocity for their product suite several years ago, I'm sure their lawyers will be contacting Microsoft soon :)

Geva Perry said...

Marc --

Unfortunately, I won't be at SIFMA this week, but here's my take, from a GigaSpaces perspective.

First, you should know that we have also had a very strong focus on .Net at GigaSpaces, and have a dedicated development team for that aspect of the product. In fact, we have several major pure .Net customers, such as SIG (announcement).

Second, we have seen competing products from big vendors come before, and to date, it had little effect on our business (in the case of the Oracle-Tangosol acquisition, it had a positive effect!). I don't expect the MSFT product to be any different. There are a number of reasons for this but I will give what I believe is the most important of them:

The large vendors are heavily invested in a variety of products and platforms that make up their current bread & butter. It is nearly impossible for them to "eat their own young" -- although in many cases it would be the right solution. So they don't build their solutions in an optimized way (for example, true interoperability) and they don't make product integration and other choices based on market needs, but rather based on pressure from other product groups in the organization.

GigaSpaces takes a holistic approach that says: if I wanted to do everything right, how would I approach this? Why do I need a separate product for messaging, business logic container and caching? Why is the DB still the system of record when it is clearly a bottleneck? And so on. The large vendors cannot take this approach because they need to sell those other products and the same architecture they have been pushing down customer throats for decades.

To your specific points:

1. Free: They will probably keep it free until its mature and maybe beyond. But that's an illusion -- they will do that in order to sell you all their other crap. See Nati's post Economies of Non-Scale.
As for the "hobbyist developer" - that's why we offer our Community Edition and Start-Up Program.

3. Support for other MSFT technologies: Please take a look at our already extensive .Net support in ver. 6.5. More to come including things such as LINQ. Of course we support SQL as well.

4. Push notifications: One of the stronger aspects of the GigaSpaces product.

5. Support for messaging systems: Again, a strong aspect of our product. Full JMS support and have integrated often with Tibco RV. Of course, in many cases GS eliminates the need for a messging product altogether.

6. Support for grid products: Of course we already support our partners at DataSynapse and Platform, not to mention, Microsoft's own HPC Server. Also see Project Convergence.

7. Interoperability with Non-.Net: Don't expect this from MSFT any time soon... Again, one of our strong suits: Java, Spring, .Net, C++, dynamic languages and more.

8. External database support: Again, for that same reason above, MSFT (and IBM, Oracle) will always have a bias towards their own stuff.

Thanks,
Geva Perry
GigaSpaces

John Powers said...

Yes, Marc, apparently you do know John Powers. Yes, we have working code putting Velocity and the Digipede Network to work together. More info at:
http://powersunfiltered.com.

And more to come. Stay tuned.

Anil Nori said...

As one of the senior Velocity guys, I want to respond to some of Marc's original questions. In fact, I did address some of these questions at my TechEd talk on Velocity.

First and foremost, how important is Velocity to Microsoft? Given Microsoft’s commitment to the enterprise and to the Services space, Velocity is an important component in the distributed application platform stack. As mentioned in my post on http://blogs.msdn.com/velocity , while there have been distributed cache products in the market, Velocity is different in couple of ways. Velocity will be well integrated with the .NET and Microsoft echo system – this includes ASP.NET, IIS, LINQ, SQL Server, SSDS, etc. Velocity is not just targeting the enterprise but also the web work load. Velocity will scale from enterprise to large scale web applications. Now, let me provide some specific answers:

Will Velocity be supported? Absolutely. As I mentioned above, Velocity is conscious strategy rather than a skunk works project. It is coming from the SQL Server organization, which have the expertise in building complex systems. You can be rest assured, velocity is here to stay.

Synergies with MSFT technologies. Given that Velocity is coming from the database org, we do value data services, including query (LINQ and SQL). In fact, I believe eventually we will support other services like sync, reporting and analytics. Having come from database and applications background, we realize the importance of support for such data services on Velocity and we have the experience to do it. We will also have better together story with SQL Server.

Push notifications. While they are not in CTP1, we will support them in CTP2 which we plan to release around PDC in late October.

Support for messaging systems. Marc makes a good observation. Once the distributed cache has push notifications, soon applications would want low latency pub/sub support. We have not yet addressed how we will deliver this or how we will integrate with other messaging systems.

Interface with Grids. Velocity can be hosted in multiple app hosting environments (e.g. windows services, IIS, ASP.NET etc.). Velocity can be hosted on large grid computing clusters.

Interoperability with non NET based systems. We do plan to support PHP and C++ clients. If there is considerable demand for Java clients from customers, we will support Java clients as well. This will provide support for most enterprise and web applications.

External database systems. Velocity is an explicit application cache. It is not dependent on any specific backend data source. So, an application can populate data from Oracle or other DBMSs into the Velocity cache. It is up to the application to read from and write to the backend DBMS.

I did not address the pricing question Marc raised in his post. At this point, we have not finalized the licensing terms. Certainly CTP1 is free and hopefully we will address the broader licensing terms soon.

Anil Nori
Distinguished Engineer
SQL Server