You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Yash Sharma <ya...@gmail.com> on 2015/03/29 09:10:56 UTC

Re: Review Request 29816: DRILL-92: Cassandra Storage Engine

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/29816/
-----------------------------------------------------------

(Updated March 29, 2015, 7:10 a.m.)


Review request for drill.


Changes
-------

Implemented review comments with new Storage plugin format.


Repository: drill-git


Description (updated)
-------

Cassandra storage engine implementation using the datastax Java driver. Implemented review comments.

New Storage plugin format:
{
  "storage":{
    cassandra : {
      type:"cassandra",
      enabled: false,
      config : {
        "cassandra.hosts" : ["127.0.0.1","127.0.0.2"],
        "cassandra.port"  : 9042
      }
    }
  }
}

Sample Supported Queries:
SELECT id,pog_rank FROM cassandra.drilltest.`trending_now` t;
SELECT * FROM cassandra.drilltest.`trending_now` t WHERE id = 'id0004' and pog_rank = 2;


Known Issues:
- Filter pushdown is broken. Currently only Drill side filters work.


Diffs (updated)
-----

  contrib/pom.xml f8a1583 
  contrib/storage-cassandra/pom.xml PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraCompareFunctionsProcessor.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraDatabaseSchema.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraFilterBuilder.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraGroupScan.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraPartitionToken.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraPushDownFilterForScan.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraScanBatchCreator.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraScanSpec.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraSchemaFactory.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraStoragePlugin.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraStoragePluginConfig.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraSubScan.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraUtil.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/DrillCassandraConstants.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/connection/CassandraConnectionManager.java PRE-CREATION 
  contrib/storage-cassandra/src/main/resources/bootstrap-storage-plugins.json PRE-CREATION 
  contrib/storage-cassandra/src/main/resources/drill-module.conf PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/BaseCassandraTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraFilterPushdownTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraProjectPushdownTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraRecordReaderTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraTestConstants.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraTestSuite.java PRE-CREATION 
  contrib/storage-cassandra/src/test/resources/cassandra-plans/cassandra_scan_screen_physical.json PRE-CREATION 
  contrib/storage-cassandra/src/test/resources/cassandra-plans/cassandra_scan_screen_with_columns_physical.json PRE-CREATION 
  distribution/pom.xml 2f44f62 
  distribution/src/assemble/bin.xml 0576fd2 

Diff: https://reviews.apache.org/r/29816/diff/


Testing
-------

Testing done via Sqlline and Web Interface. 
Tested with Physical plan and Sql query via New Test framework.

Testcases:

CassandraRecordReaderTest
- testPlanLocal
- testPlanLocalWithColumns

CassandraProjectPushdownTest
- testProjection

CassandraFilterPushdownTest
- testSelectAll
- testFilter
- testFilter1
- testFilter2
- testFilterZeroRecords
- testFilterWithOrCondition
- testFilterWithAndCondition


Thanks,

Yash Sharma


Re: Review Request 29816: DRILL-92: Cassandra Storage Engine

Posted by Yash Sharma <ya...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/29816/
-----------------------------------------------------------

(Updated March 31, 2015, 9:50 a.m.)


Review request for drill.


Changes
-------

Updated cassandra test suite to incorporate new changes.


Repository: drill-git


Description
-------

Cassandra storage engine implementation using the datastax Java driver. Implemented review comments.

New Storage plugin format:
{
  "storage":{
    cassandra : {
      type:"cassandra",
      enabled: false,
      config : {
        "cassandra.hosts" : ["127.0.0.1","127.0.0.2"],
        "cassandra.port"  : 9042
      }
    }
  }
}

Sample Supported Queries:
SELECT id,pog_rank FROM cassandra.drilltest.`trending_now` t;
SELECT * FROM cassandra.drilltest.`trending_now` t WHERE id = 'id0004' and pog_rank = 2;


Known Issues:
- Filter pushdown is broken. Currently only Drill side filters work.


Diffs (updated)
-----

  contrib/pom.xml f8a1583 
  contrib/storage-cassandra/pom.xml PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraCompareFunctionsProcessor.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraDatabaseSchema.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraFilterBuilder.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraGroupScan.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraPartitionToken.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraPushDownFilterForScan.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraScanBatchCreator.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraScanSpec.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraSchemaFactory.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraStoragePlugin.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraStoragePluginConfig.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraSubScan.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraUtil.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/DrillCassandraConstants.java PRE-CREATION 
  contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/connection/CassandraConnectionManager.java PRE-CREATION 
  contrib/storage-cassandra/src/main/resources/bootstrap-storage-plugins.json PRE-CREATION 
  contrib/storage-cassandra/src/main/resources/drill-module.conf PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/BaseCassandraTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraFilterPushdownTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraProjectPushdownTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraRecordReaderTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraTest.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraTestConstants.java PRE-CREATION 
  contrib/storage-cassandra/src/test/java/org/apache/drill/cassandra/CassandraTestSuite.java PRE-CREATION 
  contrib/storage-cassandra/src/test/resources/cassandra-plans/cassandra_scan_screen_physical.json PRE-CREATION 
  contrib/storage-cassandra/src/test/resources/cassandra-plans/cassandra_scan_screen_with_columns_physical.json PRE-CREATION 
  distribution/pom.xml 2f44f62 
  distribution/src/assemble/bin.xml 0576fd2 

Diff: https://reviews.apache.org/r/29816/diff/


Testing
-------

Testing done via Sqlline and Web Interface. 
Tested with Physical plan and Sql query via New Test framework.

Testcases:

CassandraRecordReaderTest
- testPlanLocal
- testPlanLocalWithColumns

CassandraProjectPushdownTest
- testProjection

CassandraFilterPushdownTest
- testSelectAll
- testFilter
- testFilter1
- testFilter2
- testFilterZeroRecords
- testFilterWithOrCondition
- testFilterWithAndCondition


Thanks,

Yash Sharma