Hi Caleb,

This is exciting news !

On Tue, Aug 2, 2011 at 11:51 PM, Caleb James DeLisle
<[email protected]> wrote:
> I have an instance of XWiki finally running on Cassandra.
> http://kk.l.to:8080/xwikiOnCassandra/
>
> Cassandra is a "NoSQL" database, unlike a traditional SQL database it cannot 
> do advanced queries but it can store data in a more flexible way eg: each row 
> is like a hashtable where additional "columns" can be added at will.

Do we have a clear view of what XWQL queries will/will not be
supported, or is it too soon to say ?

> The most important feature of Cassandra is that multiple Cassandra nodes can 
> be connected together into potentially very large "swarms" of nodes which 
> reside in different racks or even data centers continents apart, yet all of 
> them represent the same database.
> Cassandra was developed by Facebook and their swarm was said to be over 200 
> nodes strong.
> In it's application with XWiki, each node can have an XWiki engine sitting on 
> top of it and users can be directed to the geographically closest node or to 
> the node which is most likely to have a cache of the page which they are 
> looking for.
> Where a traditional cluster is a group of XWiki engines sitting atop a single 
> MySQL engine, this allows for a group of XWiki engines to sit atop a group of 
> Cassandra engines in a potentially very scalable way.
> In a cloud setting, one would either buy access to a provided NoSQL store 
> such as Google's BigTable or they would setup a number of XWiki/Cassandra 
> stacks in a less managed cloud such as Rackspace's or Amazon's.
>
> How it works:
> XWiki objects in the traditional Hibernate based storage engine are persisted 
> by breaking them up into properties which are then joined again when the 
> object is loaded.
> A user object which has a name and an age will occupy a row in each of three 
> tables, the xwikiobjects table, the xwikistrings table, and the xwikiintegers 
> table.
> The object's metadata will be in the xwikiobjects table while the name will 
> be in a row in the xwikistrings table and the age, a number, will go in the 
> xwikiintegers table.
> The NoSQL/Datanucleus based storage engine does this differently, the same 
> object only occupies space in the XWikiDocument table where it takes 
> advantage of Cassandra's flexibility by simply adding a new column for each 
> property.
> NOTE: this is not fully implemented yet, objects are still stored serialized.
>
> What works
>
> * Document storage
> * Classes and Objects
> * Attachments
> * Links and Locks
> * Basic querying with JDOQL
>
> What doesn't work
>
> * Querying inside of objects
> * JPQL/XWQL queries
> * Document history
> * Permissions (requires unimplemented queries)
> * The feature you want
>
>
> I am interested in what the community thinks is the first priority, I can 
> work on performance which will likely lead to patches being merged into 
> master which will benefit everyone

You mean global performance of XWiki, or something in a specific area
? FYI in case you would have missed it there was a mail by Paul
Libbrecht about a possible fine tuning of Hibernate cache that could
boost performance ([xwiki-devs] hibernate cache optimization?).

To answer your question, as member of the community I am interested in
performance of XWiki with big number of documents ; I'd say both
generic performance improvements or experimental work on Cassandra
fits in this line :)

Jerome

> or I can work on more features which will benefit people who want to use 
> XWiki as a traditional application wiki but use it on top of Cassandra.
> You can reply here or add comments to the wiki ;)
>
> Caleb
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to