Results 1 to 7 of 7

Thread: Apache Puts Out Cassandra 1.2 NoSQL Database

  1. #1
    Join Date
    Jan 2007
    Posts
    14,361

    Default Apache Puts Out Cassandra 1.2 NoSQL Database

    Phoronix: Apache Puts Out Cassandra 1.2 NoSQL Database

    The Apache Software Foundation has announced the release of Cassandra. Version 1.2 of the Cassandra big data "NoSQL" distributed database introduces several new features to the open-source project...

    http://www.phoronix.com/vr.php?view=MTI2Njg

  2. #2
    Join Date
    Jan 2008
    Posts
    206

    Default So what

    Quote Originally Posted by phoronix View Post
    Phoronix: Apache Puts Out Cassandra 1.2 NoSQL Database
    So what ......?

  3. #3
    Join Date
    May 2012
    Posts
    766

    Default

    Quote Originally Posted by Linuxhippy View Post
    So what ......?
    As Michael's official spokesman I'm informing you the decision was based upon the fact it appeared on slashdot and on general phoronix news cadence requirements. For more details please read the EULA you agreed with when becoming a member of the forum. If you don't agree with anything see you in the courtroom.

  4. #4
    Join Date
    Dec 2011
    Posts
    2,006

    Default not another query language

    Please not another query language.
    Does every database need its own query language?

    If you switch or migrate to another database solution then you have to rewrite your database queries. It leads to vendor lock-in.

    Can't we all get along and use standard common query language?

    Isn't there XPath or XQuery or something?

  5. #5
    Join Date
    Jun 2010
    Posts
    219

    Default

    Preface: I'm a PHP developer who sticks to MVC. I've spent the last two years writing a search engine that uses Oracle, MySQL, MongoDB, LDAP, (and soon, probably, CouchDB). I'm not some idiot who sticks database connection code into their view.

    Quote Originally Posted by uid313 View Post
    Please not another query language.
    Does every database need its own query language?
    To give a counterexample: As Mongo shows, no. There is no "query language", it uses a purely programmatic interface which greatly simplifies your business logic / model layers. That being said, there are significant differences between traditional rowstore databases such as Oracle/MySQL and columnstores like Cassandra. SQL doesn't make a hell of alot of sense unless you force users into a rowstore-like convention. Great example of that: InfiniDB. Columnstore, but with a MySQL interface. Ass-kicking performance, too.

    Quote Originally Posted by uid313 View Post
    If you switch or migrate to another database solution then you have to rewrite your database queries. It leads to vendor lock-in.
    False... if you're locked into one database because of the query language, you're doing it wrong. Your database code should be abstracted from your models using ORM or another common API layer. To support additional database engines, write ORM layers for them. Done.


    Quote Originally Posted by uid313 View Post
    Can't we all get along and use standard common query language?
    Again, Cassandra is a columnstore database, so SQL doesn't make a hell of alot of sense for what the product does. Mongo, being a recordstore (with no strict "schema"), also shouldn't have to fit into an arbitrary query "language" either... they're nonsensical.

    Query languages in general are the problem, we need more purely programmatic interfaces to databases. I'd say one of the biggest drawbacks of MySQL/Oracle is that they rely on the developer to pass them STRINGS of data hacked together with escaping functions, rather than something that makes sense to a developer.

    PHP Code:
    <?php 

    // MySQL Database Connection 
    $dbh = new mysqli('localhost''my_user''my_password''userdatabase');
    if(
    $result $dbh->query('SELECT * FROM users WHERE FIRSTNAME = '.$dbh->real_escape_string($name))){
         
    // Cycle through results
        
    while ($row $result->fetch_object()){
            
    $user_arr[] = $row;
        }
        
    // Free result set
        
    $result->close();
    }

    // Mongo Connection
    $m = new Mongo();
    // Use the user database
    $db $m->userdatabase;

    $user_arr $db->users->find(array('FIRSTNAME' => $name));

    ?>
    One of the most basic advantages here is that I can specify 'FIRSTNAME' as a variable in the Mongo Connection case. To do that with MySQL, I either have to write complex query language building logic, or I have to write lots of specific use case queries with placeholder variables to handle each scenario.

    Query languages are the bane of a developer's existence. There's a reason why Hibernate (Java) and Active Record (Ruby) are so popular... For PHP, I recommend replacing MySQL as your database swiss-army-knife with Mongo. It is faster in every regard and "the Oracle" isn't looming over your head.
    Last edited by kazetsukai; 01-03-2013 at 11:30 AM.

  6. #6
    Join Date
    Dec 2011
    Posts
    2,006

    Default

    Quote Originally Posted by kazetsukai View Post
    Preface: I'm a PHP developer who sticks to MVC. I've spent the last two years writing a search engine that uses Oracle, MySQL, MongoDB, LDAP, (and soon, probably, CouchDB). I'm not some idiot who sticks database connection code into their view.
    You should take a look at MariaDB, I've heard it is same as MySQL but faster and better.

    You should also take a look at PostgreSQL, it seems like a nice database, I've heard it is much more strict and sane than MySQL.

  7. #7
    Join Date
    Jun 2010
    Posts
    219

    Default

    Quote Originally Posted by uid313 View Post
    You should take a look at MariaDB, I've heard it is same as MySQL but faster and better.

    You should also take a look at PostgreSQL, it seems like a nice database, I've heard it is much more strict and sane than MySQL.
    Both use SQL based query languages and (at least in MariaDB's case-) don't scale up well. Postgres is heavy analytic but suffers in performance in many areas.

    Calpont's InfiniDB is probably the best scaling SQL database I've seen yet. On a single i7 workstation / 12GB of RAM, I was able to do analytic queries (distinct count, count(*) + group by, etc) against a ~500,000,000,000 "row" table in about 2.5s (without indexes, unnecessary). All cores light up 100%, RAM usage minimal, and the disks are screaming. Really maximizes the hardware. MySQL reaches that response time at 20,000,000 rows (with indexes) with the same hardware.

    I'd love to have tried their commercial product with 14 nodes in a scale-out configuration.

    That being said, Mongo took over an 80M row database I was hosting on InfiniDB and brought some complex 0.8s query times down to 0.015s. Heavy reliance on Indexes and it eats your RAM alive but no CPU or disk usage. The database is obviously cheating (indexes in RAM ) but that means high-volume in addition to big-data, and you can even host the database itself on a VM (with ample RAM). I could also use the dynamic schema nature of recordstore to bring the same dataset down from 80M documents to about 500,000 documents (consolidation of canonicals, etc), so I still have a lot of optimization left to do.
    Last edited by kazetsukai; 01-03-2013 at 12:55 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •