You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@predictionio.apache.org by "Mars Hall (JIRA)" <ji...@apache.org> on 2017/06/20 23:59:00 UTC

[jira] [Updated] (PIO-96) Storage corrupted by sharing databases between engines with different storage configs

     [ https://issues.apache.org/jira/browse/PIO-96?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mars Hall updated PIO-96:
-------------------------
    Description: 
When getting started with PredictionIO, it's no problem to spin up an engine and see it work. Problems emerge when a developer tries running multiple engines with different storage configs on the same underlying database, such as:

* a Classifier with *Postgres* meta, event, & model storage, and
* the Universal Recommender with *Elasticsearch* meta plus *Postgres* event & model storage.

The database will become corrupt because the meta tables are stored in different databases, but the dynamically created event & model tables may mistakenly share the same name, like {{pio_event_1}}.

We are directing folks to avoid this problem with the Heroku buildpack by [isolating each engine's database|https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md#provision-the-database] and [optionally running an eventserver per engine|https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md#user-content-eventserver]. It's still a problem with local development, though.

It would be great if PredictionIO's management of the database schema's would inherently avoid such conflicts, like by using random/UUIDs for dynamically created table names, so that they will never conflict.

  was:
When getting started with PredictionIO, it's no problem to spin up an engine and see it work. Problems emerge when a developer tries running multiple engines with different storage configs on the same underlying database, such as:

* a Classifier with *Postgres* meta, event, & model storage, and
* the Universal Recommender with *Elasticsearch* meta plus *Postgres* event & model storage.

The database will become corrupt because the meta tables are stored in different databases, but the dynamically created event & storage tables may mistakenly share the same name, like {{pio_event_1}}.

We are directing folks to avoid this problem with the Heroku buildpack by [isolating each engine's database|https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md#provision-the-database] and [optionally running an eventserver per engine|https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md#user-content-eventserver]. It's still a problem with local development, though.

It would be great if PredictionIO's management of the database schema's would inherently avoid such conflicts, like by using random/UUIDs for dynamically created table names, so that they will never conflict.


> Storage corrupted by sharing databases between engines with different storage configs
> -------------------------------------------------------------------------------------
>
>                 Key: PIO-96
>                 URL: https://issues.apache.org/jira/browse/PIO-96
>             Project: PredictionIO
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.11.0-incubating
>            Reporter: Mars Hall
>
> When getting started with PredictionIO, it's no problem to spin up an engine and see it work. Problems emerge when a developer tries running multiple engines with different storage configs on the same underlying database, such as:
> * a Classifier with *Postgres* meta, event, & model storage, and
> * the Universal Recommender with *Elasticsearch* meta plus *Postgres* event & model storage.
> The database will become corrupt because the meta tables are stored in different databases, but the dynamically created event & model tables may mistakenly share the same name, like {{pio_event_1}}.
> We are directing folks to avoid this problem with the Heroku buildpack by [isolating each engine's database|https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md#provision-the-database] and [optionally running an eventserver per engine|https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md#user-content-eventserver]. It's still a problem with local development, though.
> It would be great if PredictionIO's management of the database schema's would inherently avoid such conflicts, like by using random/UUIDs for dynamically created table names, so that they will never conflict.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)