Jim Lawrence
accessd at shaw.ca
Mon Jul 4 10:56:07 CDT 2011
Hi Gustav: Good points. Like MongoDB needs the client NoRM so it can connect to .Net, Cassandra needs the client Thrift. There are other clients but Thrift seems to be the most popular probably because it was the first client. An aside: My son-in-law does a lot of work on Cassandra and he uses the client PHPCassa. It can either use Thrift as a plug-in or connect directly through PHP sockets. (As PHPCassa has just been released it is having some growing pains which should be resolved by the fall.) The below sample shows a system connecting through a Virtual drive and then connection to .Net. http://www.ridgway.co.za/archive/2009/11/06/net-developers-guide-to-getting- started-with-cassandra.aspx I have been considering which NoSQL, or more accurately, Map-Reduce instead of SQL, database to become involved with and Cassandra matched some very important points. When I get involved it will be for the long run so: 1. Cassandra has the largest group of fortune 500 companies supporting it. 2. Cassandra, like MongoDB is being supported by Microsoft. After Cassandra's, next major release, coming this summer, I would suspect that there will be a real and full .Net client to follow. In this region, there is a huge presents of Oracle on Linux/Unix/Windows but there appears to be some real limitations with what a vertical Database can do. There is only so powerful an HP Proliant or Dell that can be built and a number of clients have been hitting that wall. In addition, the Oracle licensing, costs are far greater than the servers. Just like single core CPUs hit the wall in 2006 so are large growing databases. In the near future, there will be some real opportunities for NoSQL experts. Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: Monday, July 04, 2011 2:50 AM To: accessd at databaseadvisors.com Subject: Re: [AccessD] SSD, The Game Changer - SQL Man of Mystery -SQLServerCentral.com Hi Jim But Casandra doesn't seem to be much .Net/C# friendly. Clients exist only for the old version 0.7, and both of these seem to provide nothing that come close to DataTableAdapters or the like (not to mention LINQ), only simple command-type access: http://aquiles.codeplex.com/ On the other hand, MongoDB seems to have proceeded further with NoRM: http://iridescence.no/post/NoSQL-Getting-started-with-MongoDB-and-NoRM.aspx /gustav >>> accessd at shaw.ca 04-07-2011 05:10 >>> Inline: -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Sunday, July 03, 2011 2:41 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] SSD, The Game Changer - SQL Man of Mystery - SQLServerCentral.com Jim, I read the first article and I don't see how it fits at all. * It fits very well. First in overview this database does not require a single PC to run the database. It is distributive in nature so you can just add nodes to a bunch of old new and old PCs. The main problem with the database as you have it now is that it is dependant on the hardware of a single box. Just like in 2006 the single CPU reached it maximum and multi-core processors were then created. Cassandra runs like a multi-core PC. When the database is running on numerous PCs it is like running a full RAID. 1) My data is very much a normal table, with rows and columns. In one case (the people table) there are a small number of columns, and most of the columns are fully populated. In the second table, there are pushing 700 fields and the columns are rarely fully populated. * Cassandra, for example, has a sparse data structure. This means columns can be over 2 billion (rows as well) wide (high), if required and the 'fields' do not have to be populated. At any time you can just insert another 'field' and there is no rebuild required or performance loss (It can all be done in real time). You can have your cake and eat it too. 2) The data is relational, though just barely. One of my people tables is directly related to the data table. All of my people tables may have people in the other tables. Eventually I will be pulling all of my people into a single table with pointers back to the non people data in the original able. * When you say barely relational that is what Cassandra is designed for. What you are describing in item 2 is exactly what type of database Cassandra is. It may not use SQL as we traditionally know it but it uses a system called 'map-reduce' which can quickly (very quickly) obtain the same results...it is data-mining tool on steroids. 3) I rarely update the data. The people table is updated once per month as I validate the addresses looking for moves. I get about 1.5% / month moves. The data table is never updated, at least the data in the existing columns. Very occasionally I add new columns. * Again, your requirements and description is matching Cassandra's design nature to a tee. 4) I only have a single user (myself) and I never expect to have more. * That does not matter if you are the only user. What does matter is that you can pull any data out of a huge mass of mix data fast and easy. You have noticed how Google can pull 365,000,000 hits in somewhere around 0.03 seconds. It is not because they have huge vertical super-powerful computers...their computer are but beaters in comparison but their database is spans hundreds of computers...just like Cassandra is capable of. In comparison, the NoSQL databases claim to store documents and make them searchable. Blog posts, web pages etc. They claim to be good as the numbers of people simultaneously *writing* to them climbs into the hundreds or thousands. So while the technology is fascinating, it hardly seems like a fit for my application. * You are right in all the above but with the exception that the Cassandra is a near perfect fit. To that end I will be starting my own Cassandra database system and just to see how it plays out. Here is a little video to watch that will do a lot to explain what and how Cassandra does things: http://video.disruptivecode.com/video/840645/what-makes-cassandra-trick.html . I think you will be pleasantly surprised. The product runs on any OS as all that it is needs is a copy of Java and Apache, which is free, downloads. http://www.quora.com/How-can-i-install-Apache-Cassandra-on-Windows-Operating -System John W. Colby www.ColbyConsulting.com