Archive for November 16th, 2007

I Love GigaSpaces Startup Program

Friday, November 16th, 2007

GigaSpaces announced a week ago that it started its Startup Program. It basically allows individuals and start-up companies (which we define as companies with less than US $5 million in revenues) to use the GigaSpaces products for any purpose, including production, indefinitely - for free. There are no time, functionality or CPU limitations to this program.

This is a revolutionary move for a commercial product. GigaSpaces has been doing really well (we had, by far, out best year ever, and the year is not over yet…), especially within markets that can afford us. What we realized was that there is a big portion of innovative market that can’t afford us, but would still love to use our product, namely - statups. So, we decided to share our wealth with startups, allowing them to get the product for free, and once they get to a stage where they actually make money, and only then, pay us back.

I really think the following post at this TSS thread nails it:

This is a good move. I don’t mind paying for a product … the problem is paying upfront (when you have zero revenue and don’t know if you will ever have some).

If one day I have revenues, I think it is logical to share the wealth generated in part thanks to the software used.

I think that many startups used free/open source products because of the cost. If you get a great product and only pay license fees if you make enough $$$ I think that many people will focus on choosing the best product (not only the best product among free/open source products).

This move is going (actually already) to have many startup companies (and I hope each and every one of them is successful) to be able to use GigaSpaces. This, together with our ongoing effort of integrating with popular Open Source projects (Spring, Hibernate) is going to make us a very viable solution to such startups. On that front, we are hard at work at having Mule integration within our OpenSpaces effort (at the same level of our Spring integration). And I have been working (as a side project) at having GigaSpaces integrated with Compass and Lucene, allowing to store Lucene index within GigaSpaces distributed grid (and integrated with Compass) as well as having the ability to automatically index objects stored in the grid indexed and searched upon (using Compass OSEM support). This effort is at a rough beta stages, but if you are interested in it, drop me a line.

Lucene and Amazon S3

Friday, November 16th, 2007

I spent some time trying to have the ability to store Lucene index on Amazon S3 service. Amazon S3 is a really cool idea, and having the ability to store Lucene index on top of it will provide a simple way to allow storing Lucene index in a distributed environment supporting HA. It will also make a lot of sense for applications deployed on Amazon EC2, since working with S3 from EC2 is free.

It was pretty simply to implement Lucene Directory interface on top of Amazon S3. A bucket is considered to be a Lucene index, and each file has one file object that holds its meta data, and 0 or more file objects holding portions of it (naturally, it is configurable). This, with Compass support for such storage, and Compass local cache support, should provide minor performance overhead when switching from local file system to S3.

Even before I embarked on this quick hacking session, the main thing I was concerned about was how to implement locking on top of S3. There is no formal locking API for it, but I heard somewhere that bucket creation is atomic. Assuming that it is, a very simple locking support can be done (creating a bucket and succeeding indicates a lock obtained, failure means it is locked already, deletion of a bucket releases the lock). Sadly, this is not the case and bucket creation is certainly not atomic. Funnily enough, it does not even fail when trying to create an already existing bucket.

So for now I shelved the implementation. It would be great if the good people at Amazon would allow for simple locking support. I understand that this is not simple to do in a distributed environment (hey, I work at GigaSpaces), but it must be there in some form, it will make S3 much a more attractive offer.