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/01/12 19:57:45 UTC

Review Request 29816: DRILL-92: Cassandra Storage Engine

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

Review request for drill.


Repository: drill-git


Description
-------

Cassandra storage engine implementation using the datastax Java driver.
Storage plugin format:
{
  "type": "cassandra",
  "host": "localhost",
  "port": 9042,
  "enabled": true
}

Known Issues:
- Subscan doesnot use min/max filters, hence pulls entire data
- Filter pushdown is broken. Currently only Drill side filters work.


Diffs
-----

  contrib/pom.xml d75dc79 
  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/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/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/CassandraTestConstants.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 2aefe08 
  distribution/src/assemble/bin.xml 8f6e90d 

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


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 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 Feb. 23, 2015, 9:12 a.m.)


Review request for drill.


Changes
-------

Updated pacth to remove unwanted imports causing compilation error.


Repository: drill-git


Description
-------

Cassandra storage engine implementation using the datastax Java driver.
Storage plugin format:
{
  "type": "cassandra",
  "host": "localhost",
  "port": 9042,
  "enabled": true
}

Sample Supported Queries:
SELECT id,pog_rank FROM cassandra.recsys.`trending_now` t;
SELECT * FROM cassandra.recsys.`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 d75dc79 
  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/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 703a4c4 
  distribution/src/assemble/bin.xml 8f6e90d 

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 Jan. 14, 2015, 2:21 p.m.)


Review request for drill.


Changes
-------

- Implemented review comments
- Fixed Cassandra SubScan - SubScan fetches part of data based on Cassandra Partition scheme. Murmur3/Random hash supported.
- Enhanced Testcases and Wired up CassandraTestSuite
- Other Bug Fixes.


Repository: drill-git


Description (updated)
-------

Cassandra storage engine implementation using the datastax Java driver.
Storage plugin format:
{
  "type": "cassandra",
  "host": "localhost",
  "port": 9042,
  "enabled": true
}

Sample Supported Queries:
SELECT id,pog_rank FROM cassandra.recsys.`trending_now` t;
SELECT * FROM cassandra.recsys.`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 d75dc79 
  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/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 2aefe08 
  distribution/src/assemble/bin.xml 8f6e90d 

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>.

> On Jan. 12, 2015, 7:59 p.m., Timothy Chen wrote:
> > contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java, line 209
> > <https://reviews.apache.org/r/29816/diff/1/?file=816785#file816785line209>
> >
> >     What execptions can this throw? Why no catch at all?

This can only throw exceotion if there is any error fetching from result set. 
The purpose of the finally is to stop the stats collecter even if there is any error in fetching result from result set.

Have cleaned the code and moved all the logic to the parent finally block.


> On Jan. 12, 2015, 7:59 p.m., Timothy Chen wrote:
> > contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java, line 225
> > <https://reviews.apache.org/r/29816/diff/1/?file=816785#file816785line225>
> >
> >     You should be able to use 
> >     
> >     for (ColumnDefintioins.Definition def :  row.getColumnDefinitions())

Makes sence. Fixed.


> On Jan. 12, 2015, 7:59 p.m., Timothy Chen wrote:
> > contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java, line 274
> > <https://reviews.apache.org/r/29816/diff/1/?file=816785#file816785line274>
> >
> >     Do we don't throw DrillRuntimeExecption here too? I'm out of touch of storage engines, so just a question.

We do throw DrillRuntime Exception in case of any exception.
I did not throw it here because HBase and Mongo record readers were not doing it.

Since it is the right thing to do I have added the statement in place.


- Yash


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


On Jan. 12, 2015, 7:03 p.m., Yash Sharma wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/29816/
> -----------------------------------------------------------
> 
> (Updated Jan. 12, 2015, 7:03 p.m.)
> 
> 
> Review request for drill.
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> Cassandra storage engine implementation using the datastax Java driver.
> Storage plugin format:
> {
>   "type": "cassandra",
>   "host": "localhost",
>   "port": 9042,
>   "enabled": true
> }
> 
> Sample Supported Queries:
> SELECT id,pog_rank FROM cassandra.recsys.`trending_now` t;
> SELECT * FROM cassandra.recsys.`trending_now` t WHERE id = 'id0004' and pog_rank = 2;
> 
> 
> Known Issues:
> - Subscan doesnot use min/max filters, hence pulls entire data
> - Filter pushdown is broken. Currently only Drill side filters work.
> 
> 
> Diffs
> -----
> 
>   contrib/pom.xml d75dc79 
>   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/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/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/CassandraTestConstants.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 2aefe08 
>   distribution/src/assemble/bin.xml 8f6e90d 
> 
> 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 Timothy Chen <tn...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/29816/#review67681
-----------------------------------------------------------



contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java
<https://reviews.apache.org/r/29816/#comment111763>

    The formatting seems inconsistent, I know Drill has been no standardized styling but let's at least get the same code to look the same.



contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java
<https://reviews.apache.org/r/29816/#comment111764>

    What execptions can this throw? Why no catch at all?



contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java
<https://reviews.apache.org/r/29816/#comment111768>

    You should be able to use 
    
    for (ColumnDefintioins.Definition def :  row.getColumnDefinitions())



contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java
<https://reviews.apache.org/r/29816/#comment111770>

    Do we don't throw DrillRuntimeExecption here too? I'm out of touch of storage engines, so just a question.



contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java
<https://reviews.apache.org/r/29816/#comment111772>

    Stringg -> String typo



contrib/storage-cassandra/src/main/java/org/apache/drill/exec/store/cassandra/CassandraRecordReader.java
<https://reviews.apache.org/r/29816/#comment111771>

    I wonder if instanceof or something similiar is better than string comps


- Timothy Chen


On Jan. 12, 2015, 7:03 p.m., Yash Sharma wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/29816/
> -----------------------------------------------------------
> 
> (Updated Jan. 12, 2015, 7:03 p.m.)
> 
> 
> Review request for drill.
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> Cassandra storage engine implementation using the datastax Java driver.
> Storage plugin format:
> {
>   "type": "cassandra",
>   "host": "localhost",
>   "port": 9042,
>   "enabled": true
> }
> 
> Sample Supported Queries:
> SELECT id,pog_rank FROM cassandra.recsys.`trending_now` t;
> SELECT * FROM cassandra.recsys.`trending_now` t WHERE id = 'id0004' and pog_rank = 2;
> 
> 
> Known Issues:
> - Subscan doesnot use min/max filters, hence pulls entire data
> - Filter pushdown is broken. Currently only Drill side filters work.
> 
> 
> Diffs
> -----
> 
>   contrib/pom.xml d75dc79 
>   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/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/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/CassandraTestConstants.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 2aefe08 
>   distribution/src/assemble/bin.xml 8f6e90d 
> 
> 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 Jan. 12, 2015, 7:03 p.m.)


Review request for drill.


Repository: drill-git


Description (updated)
-------

Cassandra storage engine implementation using the datastax Java driver.
Storage plugin format:
{
  "type": "cassandra",
  "host": "localhost",
  "port": 9042,
  "enabled": true
}

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


Known Issues:
- Subscan doesnot use min/max filters, hence pulls entire data
- Filter pushdown is broken. Currently only Drill side filters work.


Diffs
-----

  contrib/pom.xml d75dc79 
  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/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/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/CassandraTestConstants.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 2aefe08 
  distribution/src/assemble/bin.xml 8f6e90d 

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