You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by Dmitro Lisnichenko <dl...@hortonworks.com> on 2015/10/20 16:01:55 UTC

Review Request 39478: MySQL Ambari Repository gives Key Too Long error messages for hostcomponentdesiredstate table.

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

Review request for Ambari, Myroslav Papirkovskyy and Vitalyi Brodetskyi.


Bugs: AMBARI-13489
    https://issues.apache.org/jira/browse/AMBARI-13489


Repository: ambari


Description
-------

Problem:

MySQL Ambari Repository gives Key Too Long error messages for hostcomponentdesiredstate table.

Steps To Reproduce:

The comment in the Ambari-DDL-MySQL-CREATE.sql file indicates that the script was generated on a MySQL DB with UTF8 as the character set.

The default collation name for the DB is utf8_general_ci

I suspect that this is preventing me from creating the Ambari database schema and giving the message that the maximum key size is 1000 bytes.

If the VARCHAR fields use more than one byte per character then two VARCHAR(255) fields in the key is going to exceed 1000 bytes.

CREATE TABLE hostcomponentdesiredstate (
cluster_id BIGINT NOT NULL,
component_name VARCHAR(255) NOT NULL,
desired_stack_id BIGINT NOT NULL,
desired_state VARCHAR(255) NOT NULL,
host_id BIGINT NOT NULL,
service_name VARCHAR(255) NOT NULL,
admin_state VARCHAR(32),
maintenance_state VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
restart_required TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (cluster_id, component_name, host_id, service_name)
);


Their is a work around of using MySQL 5.6 which is not the default for Cent OS 6.  You also need to make a manual configuration change of innodb_large_prefix property.  This is very ugly for installation process.


Diffs
-----

  ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql c82a584 

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


Testing
-------

mvn clean test


Thanks,

Dmitro Lisnichenko


Re: Review Request 39478: MySQL Ambari Repository gives Key Too Long error messages for hostcomponentdesiredstate table.

Posted by Vitalyi Brodetskyi <vb...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/39478/#review103253
-----------------------------------------------------------

Ship it!


Ship It!

- Vitalyi Brodetskyi


On Жов. 20, 2015, 2:01 після полудня, Dmitro Lisnichenko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/39478/
> -----------------------------------------------------------
> 
> (Updated Жов. 20, 2015, 2:01 після полудня)
> 
> 
> Review request for Ambari, Myroslav Papirkovskyy and Vitalyi Brodetskyi.
> 
> 
> Bugs: AMBARI-13489
>     https://issues.apache.org/jira/browse/AMBARI-13489
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Problem:
> 
> MySQL Ambari Repository gives Key Too Long error messages for hostcomponentdesiredstate table.
> 
> Steps To Reproduce:
> 
> The comment in the Ambari-DDL-MySQL-CREATE.sql file indicates that the script was generated on a MySQL DB with UTF8 as the character set.
> 
> The default collation name for the DB is utf8_general_ci
> 
> I suspect that this is preventing me from creating the Ambari database schema and giving the message that the maximum key size is 1000 bytes.
> 
> If the VARCHAR fields use more than one byte per character then two VARCHAR(255) fields in the key is going to exceed 1000 bytes.
> 
> CREATE TABLE hostcomponentdesiredstate (
> cluster_id BIGINT NOT NULL,
> component_name VARCHAR(255) NOT NULL,
> desired_stack_id BIGINT NOT NULL,
> desired_state VARCHAR(255) NOT NULL,
> host_id BIGINT NOT NULL,
> service_name VARCHAR(255) NOT NULL,
> admin_state VARCHAR(32),
> maintenance_state VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
> security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
> restart_required TINYINT(1) NOT NULL DEFAULT 0,
> PRIMARY KEY (cluster_id, component_name, host_id, service_name)
> );
> 
> 
> Their is a work around of using MySQL 5.6 which is not the default for Cent OS 6.  You also need to make a manual configuration change of innodb_large_prefix property.  This is very ugly for installation process.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql c82a584 
> 
> Diff: https://reviews.apache.org/r/39478/diff/
> 
> 
> Testing
> -------
> 
> mvn clean test
> 
> 
> Thanks,
> 
> Dmitro Lisnichenko
> 
>


Re: Review Request 39478: MySQL Ambari Repository gives Key Too Long error messages for hostcomponentdesiredstate table.

Posted by Myroslav Papirkovskyy <mp...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/39478/#review103252
-----------------------------------------------------------

Ship it!


Ship It!

- Myroslav Papirkovskyy


On Жов. 20, 2015, 5:01 після полудня, Dmitro Lisnichenko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/39478/
> -----------------------------------------------------------
> 
> (Updated Жов. 20, 2015, 5:01 після полудня)
> 
> 
> Review request for Ambari, Myroslav Papirkovskyy and Vitalyi Brodetskyi.
> 
> 
> Bugs: AMBARI-13489
>     https://issues.apache.org/jira/browse/AMBARI-13489
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Problem:
> 
> MySQL Ambari Repository gives Key Too Long error messages for hostcomponentdesiredstate table.
> 
> Steps To Reproduce:
> 
> The comment in the Ambari-DDL-MySQL-CREATE.sql file indicates that the script was generated on a MySQL DB with UTF8 as the character set.
> 
> The default collation name for the DB is utf8_general_ci
> 
> I suspect that this is preventing me from creating the Ambari database schema and giving the message that the maximum key size is 1000 bytes.
> 
> If the VARCHAR fields use more than one byte per character then two VARCHAR(255) fields in the key is going to exceed 1000 bytes.
> 
> CREATE TABLE hostcomponentdesiredstate (
> cluster_id BIGINT NOT NULL,
> component_name VARCHAR(255) NOT NULL,
> desired_stack_id BIGINT NOT NULL,
> desired_state VARCHAR(255) NOT NULL,
> host_id BIGINT NOT NULL,
> service_name VARCHAR(255) NOT NULL,
> admin_state VARCHAR(32),
> maintenance_state VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
> security_state VARCHAR(32) NOT NULL DEFAULT 'UNSECURED',
> restart_required TINYINT(1) NOT NULL DEFAULT 0,
> PRIMARY KEY (cluster_id, component_name, host_id, service_name)
> );
> 
> 
> Their is a work around of using MySQL 5.6 which is not the default for Cent OS 6.  You also need to make a manual configuration change of innodb_large_prefix property.  This is very ugly for installation process.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql c82a584 
> 
> Diff: https://reviews.apache.org/r/39478/diff/
> 
> 
> Testing
> -------
> 
> mvn clean test
> 
> 
> Thanks,
> 
> Dmitro Lisnichenko
> 
>