You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Sébastien Launay (JIRA)" <ji...@apache.org> on 2008/02/28 11:59:51 UTC

[jira] Created: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Choose the MySQL engine for database storage (default to MyISAM)
----------------------------------------------------------------

                 Key: JCR-1435
                 URL: https://issues.apache.org/jira/browse/JCR-1435
             Project: Jackrabbit
          Issue Type: Improvement
          Components: jackrabbit-core
    Affects Versions: core 1.4.1
         Environment: MySQL with NDB Cluster engine
            Reporter: Sébastien Launay


The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
So by default MyISAM is used and we cannot change this.

But, depending on the environment we may want to use an alternate engine like
InnoDB (for transaction support) or in my case NDB Cluster (for high availability).

We can still manually created the tables and then set the wanted engine, but it would
be better if there was a parameter for the engine for component in the repository.xml
for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Thomas Mueller (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12573270#action_12573270 ] 

Thomas Mueller commented on JCR-1435:
-------------------------------------

Hi,

I'm not sure if you are aware of this, but you can change the default engine in my.cnf:

default-table-type=NDBCLUSTER

Regards,
Thomas

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12740526#action_12740526 ] 

Stefan Guggisberg commented on JCR-1435:
----------------------------------------

i'd rather provide a custom ddl on the classpath and refer to it in the configuration,
e.g.

<param name="schema" value="mysql-custom" />

suggested on the user list:
http://www.mail-archive.com/users@jackrabbit.apache.org/msg12089.html

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch, jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine-2008-04-28.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Sébastien Launay (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12740528#action_12740528 ] 

Sébastien Launay commented on JCR-1435:
---------------------------------------

This will work but you need to duplicate the mysql.ddl and therefore maintain it on your own, even if there is a small chance it will change over time because it will imply a migration process.

Another thing is that the default table engine is often MyISAM and this engine is not supported in a cluster config.
Indeed, there will be no RDBMS locking involved when accessing the journal table and data integrity will not be enforced.

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch, jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine-2008-04-28.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Sébastien Launay (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12573280#action_12573280 ] 

Sébastien Launay commented on JCR-1435:
---------------------------------------

Sure, but this setting is global, so we can not have a database with default tables
to NDB and another with default to InnoDB.

Moreover it's interesting to not touch the RDBM and having the tables created
automatically in the wanted engine, especially for developers or for easier deployment.

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12740529#action_12740529 ] 

Stefan Guggisberg commented on JCR-1435:
----------------------------------------

> This will work but you need to duplicate the mysql.ddl and therefore maintain it on your own, even if there is a small chance it will change over time because it will imply a migration process.

OTOH, IIUC with the proposed patch it's not possible anymore to implicitly use the default engine, e.g. overriden in my.cnf.

> Another thing is that the default table engine is often MyISAM and this engine is not supported in a cluster config.
> Indeed, there will be no RDBMS locking involved when accessing the journal table and data integrity will not be enforced.

in which case you'd have to specify a different engine in my.cnf.

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch, jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine-2008-04-28.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Sébastien Launay (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12740541#action_12740541 ] 

Sébastien Launay commented on JCR-1435:
---------------------------------------

> OTOH, IIUC with the proposed patch it's not possible anymore to implicitly use the default engine, e.g. overriden in my.cnf.
That's right but the patch can be adapted to use the default engine and use "engine=${mysqlEngine}" only when engine property is set.

> in which case you'd have to specify a different engine in my.cnf.
This is a solution but i prefer to choose the engine when declaring the PersistenceManager (because i may want to use the different default engine everywhere else or i simply do not have the admin privilege to change this setting in my.cnf).

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch, jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine-2008-04-28.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Sébastien Launay (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sébastien Launay updated JCR-1435:
----------------------------------

    Attachment: jackrabbit-trunk-mysql-engine.patch
                jackrabbit-1.4.x-mysql-engine.patch

The patches for this issue in the 1.4 branch and the trunk:
- adding the mysqlEngine parameter for every MySQL aware database component
- rewriting all mysql.ddl with an extra engine=${mysqlEngine}
- add logging in debug level for seeing the SQL executed
- use MyISAM by default if the parameter is not set for backward compatibility

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jukka Zitting updated JCR-1435:
-------------------------------

    Status: Patch Available  (was: Open)

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch, jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine-2008-04-28.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (JCR-1435) Choose the MySQL engine for database storage (default to MyISAM)

Posted by "Sébastien Launay (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/JCR-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sébastien Launay updated JCR-1435:
----------------------------------

    Attachment: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch
                jackrabbit-trunk-mysql-engine-2008-04-28.patch

Update of patches with the following modification:
 * move mysqlEngine property from BundleFsPersistenceManager to MySqlPersistenceManager

> Choose the MySQL engine for database storage (default to MyISAM)
> ----------------------------------------------------------------
>
>                 Key: JCR-1435
>                 URL: https://issues.apache.org/jira/browse/JCR-1435
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.1
>         Environment: MySQL with NDB Cluster engine
>            Reporter: Sébastien Launay
>         Attachments: jackrabbit-1.4.x-mysql-engine-2008-04-28.patch, jackrabbit-1.4.x-mysql-engine.patch, jackrabbit-trunk-mysql-engine-2008-04-28.patch, jackrabbit-trunk-mysql-engine.patch
>
>
> The MySQL scripts embedded into Jackrabbit does not specify the engine to use.
> So by default MyISAM is used and we cannot change this.
> But, depending on the environment we may want to use an alternate engine like
> InnoDB (for transaction support) or in my case NDB Cluster (for high availability).
> We can still manually created the tables and then set the wanted engine, but it would
> be better if there was a parameter for the engine for component in the repository.xml
> for automatic table creation.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.