Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Won't Fix
    • 10.0.3
    • None
    • None
    • MariaDB 10.0.3-MariaDB Cassandra 1.2  Rhat 6 64 bit

    Description

      Unable to access Cassandra engine - the following error:

      MariaDB [casstest]> create table t1 ( rowkey varchar(36) primary key,  data1 varchar(60), data2 bigint ) engine=cassandra  thrift_host='localhost' keyspace='mariadbtest2'column_family='cf1';
      ERROR 1429 (HY000): Unable to connect to foreign data source: connect() failed: Permission denied [1]
      MariaDB [casstest]>

      Cassandra working fine and MariaDB working fine, the integration is not working.

      Attachments

        Issue Links

          Activity

            alex_accelerationdb Alex (Inactive) created issue -
            serg Sergei Golubchik made changes -
            Field Original Value New Value
            Description Unable to access Cassandra engine - the following error:

            MariaDB [casstest]> create table t1 ( rowkey varchar(36) primary key, data1 varchar(60), data2 bigint ) engine=cassandra thrift_host='localhost' keyspace='mariadbtest2'column_family='cf1';
            ERROR 1429 (HY000): Unable to connect to foreign data source: connect() failed: Permission denied [1]
            MariaDB [casstest]>

            Cassandra working fine and MariaDB working fine, the integration is not working.
            Unable to access Cassandra engine - the following error:
            {noformat}
            MariaDB [casstest]> create table t1 ( rowkey varchar(36) primary key, data1 varchar(60), data2 bigint ) engine=cassandra thrift_host='localhost' keyspace='mariadbtest2'column_family='cf1';
            ERROR 1429 (HY000): Unable to connect to foreign data source: connect() failed: Permission denied [1]
            MariaDB [casstest]>
            {noformat}
            Cassandra working fine and MariaDB working fine, the integration is not working.
            serg Sergei Golubchik made changes -
            Assignee Elena Stepanova [ elenst ]

            Hi Alex,

            Do you have SELinux on? If you do, before we proceed, could you please turn it off and see if you still get the error. It's known to cause all kinds of obscure permission-related problems, so it's better to rule it out from the start.

            Thanks.

            elenst Elena Stepanova added a comment - Hi Alex, Do you have SELinux on? If you do, before we proceed, could you please turn it off and see if you still get the error. It's known to cause all kinds of obscure permission-related problems, so it's better to rule it out from the start. Thanks.

            Elena,

            I disabled SeLinux and ran into yet another problem:

            create table t1 ( rowkey varchar(36) primary key, data1 varchar(60), data2 bigint ) engine=cassandra thrift_host='localhost' keyspace='xxx' column_family='xxx';

            When in fact I created column family xxx under xxx keyspace.

            Please note that I'm using cassandra 1.2 - I've heard that there issues with this release of Cassandra 1.2. Any ETA when it will be fixed?

            alex_accelerationdb Alex (Inactive) added a comment - Elena, I disabled SeLinux and ran into yet another problem: create table t1 ( rowkey varchar(36) primary key, data1 varchar(60), data2 bigint ) engine=cassandra thrift_host='localhost' keyspace='xxx' column_family='xxx'; When in fact I created column family xxx under xxx keyspace. Please note that I'm using cassandra 1.2 - I've heard that there issues with this release of Cassandra 1.2. Any ETA when it will be fixed?

            Hi Alex,

            What problem did you run into with the DDL above? I suppose you forgot to paste the error message.

            elenst Elena Stepanova added a comment - Hi Alex, What problem did you run into with the DDL above? I suppose you forgot to paste the error message.
            alex_accelerationdb Alex (Inactive) added a comment - - edited

            Here we go:

            MariaDB [xxx]> create table t1 ( rowkey varchar(36) primary key, data1 varchar(60), data2 bigint ) engine=cassandra thrift_host='localhost' keyspace='xxx' column_family='xxx';

            ERROR 1429 (HY000): Unable to connect to foreign data source: Column family xxx not found in keyspace xxx

            Also pls check http://www.slideshare.net/SergeyPetrunya/mysqlconf2013-mariadbcassandrainteroperability slide 11 out 34 there seems to be a know problem with Cassandra 1.2 integration

            alex_accelerationdb Alex (Inactive) added a comment - - edited Here we go: MariaDB [xxx] > create table t1 ( rowkey varchar(36) primary key, data1 varchar(60), data2 bigint ) engine=cassandra thrift_host='localhost' keyspace='xxx' column_family='xxx'; ERROR 1429 (HY000): Unable to connect to foreign data source: Column family xxx not found in keyspace xxx Also pls check http://www.slideshare.net/SergeyPetrunya/mysqlconf2013-mariadbcassandrainteroperability slide 11 out 34 there seems to be a know problem with Cassandra 1.2 integration

            Right. I'll reassign it to Sergei Petrunia so that you could get firsth-hand information regarding plans to fix it.

            elenst Elena Stepanova added a comment - Right. I'll reassign it to Sergei Petrunia so that you could get firsth-hand information regarding plans to fix it.
            elenst Elena Stepanova made changes -
            Affects Version/s 10.0.3 [ 12900 ]
            Affects Version/s 10.0.4 [ 13101 ]
            Assignee Elena Stepanova [ elenst ] Sergei Petrunia [ psergey ]
            Labels cassandra

            Thx a lot, please keep us posted, we have a meetup scheduled specifically to discuss and demo MariaDB and Cassandra integration http://www.meetup.com/mysql-silicon-valley/events/119357352/ fixing this issue will greatly help to promote MariaDB.

            Thx in advance

            Alex -

            alex_accelerationdb Alex (Inactive) added a comment - Thx a lot, please keep us posted, we have a meetup scheduled specifically to discuss and demo MariaDB and Cassandra integration http://www.meetup.com/mysql-silicon-valley/events/119357352/ fixing this issue will greatly help to promote MariaDB. Thx in advance Alex -

            Hello,

            This seems to be the problem with data model change in Cassandra 1.2.

            Cassandra 1.2 seems to have a split in the data model. One can have either:

            1. Old-style column family (that one creates with cassandra-cli
            or in CQL with "WITH COMPACT STORAGE" attribute)

            2. New-style column family (created with CREATE TABLE in CQL-3)

            Cassandra itself seems to be poor at interoperability: Thrift clients cannot
            access new-style column families. On the other hand, CQL-3 requires that all
            columns are pre-defined, which means you cannot use CQL-3 to read data that
            was inserted through Thrift.

            Cassandra SE uses Thrift and so is a victim of this mess.

            psergei Sergei Petrunia added a comment - Hello, This seems to be the problem with data model change in Cassandra 1.2. Cassandra 1.2 seems to have a split in the data model. One can have either: 1. Old-style column family (that one creates with cassandra-cli or in CQL with "WITH COMPACT STORAGE" attribute) 2. New-style column family (created with CREATE TABLE in CQL-3) Cassandra itself seems to be poor at interoperability: Thrift clients cannot access new-style column families. On the other hand, CQL-3 requires that all columns are pre-defined, which means you cannot use CQL-3 to read data that was inserted through Thrift. Cassandra SE uses Thrift and so is a victim of this mess.

            I have looked at what is required to update Cassandra SE. It seems that

            • We will still need to support Thrift (because some data can only be accessed through Thrift API)
            • We will need to use CQL to access new-style CQL column families.

            Thrift API has a execute_cql3() method, but the problem with it is that it is not possible to stream the resultset. The entire resultset will be materialized on a node in Cassandra cluster, then sent to MariaDB node, where thrift library will also materialize it before returning control to Cassandra SE. This means that attempt to run "SELECT * FROM cassandra_table" (without the implied "LIMIT 10K") will kill the node. (pure Thrift API supports streaming, current Cassandra SE will run this SELECT * query without consuming all of the memory).

            Cassandra 1.2 has a new network protocol for CQL. The protocol supports streaming. Datastax does not provide a C++ client library, but it seems there is a 3rd-party client library: https://github.com/mstump/libcql. I've just found it by googling so I don't have an idea whether this library is sufficient for Cassandra SE.

            psergei Sergei Petrunia added a comment - I have looked at what is required to update Cassandra SE. It seems that We will still need to support Thrift (because some data can only be accessed through Thrift API) We will need to use CQL to access new-style CQL column families. Thrift API has a execute_cql3() method, but the problem with it is that it is not possible to stream the resultset. The entire resultset will be materialized on a node in Cassandra cluster, then sent to MariaDB node, where thrift library will also materialize it before returning control to Cassandra SE. This means that attempt to run "SELECT * FROM cassandra_table" (without the implied "LIMIT 10K") will kill the node. (pure Thrift API supports streaming, current Cassandra SE will run this SELECT * query without consuming all of the memory). Cassandra 1.2 has a new network protocol for CQL. The protocol supports streaming. Datastax does not provide a C++ client library, but it seems there is a 3rd-party client library: https://github.com/mstump/libcql . I've just found it by googling so I don't have an idea whether this library is sufficient for Cassandra SE.

            Interesting read... It seems, DataStax intends to make a C++ client library: https://github.com/mstump/libcql/issues/16#issuecomment-19923916 ... and it is not clear how that will relate to libcql.

            psergei Sergei Petrunia added a comment - Interesting read... It seems, DataStax intends to make a C++ client library: https://github.com/mstump/libcql/issues/16#issuecomment-19923916 ... and it is not clear how that will relate to libcql.

            Sergei,

            Any updates on this bug - I have meetup coming up at Silicon Valley MySQL user group discussing this feature - MariaDB and Cassandra integration. Do we have an ETA on this by any chance?

            alex_accelerationdb Alex (Inactive) added a comment - Sergei, Any updates on this bug - I have meetup coming up at Silicon Valley MySQL user group discussing this feature - MariaDB and Cassandra integration. Do we have an ETA on this by any chance?

            Unfortunately, I cannot get any resources to continue to work on this. Changing the status to "Wont fix", because currently there are no plans for further development of Cassandra SE.

            psergei Sergei Petrunia added a comment - Unfortunately, I cannot get any resources to continue to work on this. Changing the status to "Wont fix", because currently there are no plans for further development of Cassandra SE.
            psergei Sergei Petrunia made changes -
            Resolution Won't Fix [ 2 ]
            Status Open [ 1 ] Closed [ 6 ]
            serg Sergei Golubchik made changes -
            Workflow defaullt [ 27735 ] MariaDB v2 [ 45035 ]
            ratzpo Rasmus Johansson (Inactive) made changes -
            Workflow MariaDB v2 [ 45035 ] MariaDB v3 [ 65575 ]
            greenman Ian Gilfillan made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 65575 ] MariaDB v4 [ 146800 ]

            People

              psergei Sergei Petrunia
              alex_accelerationdb Alex (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.