Mars Hall created PIO-96:
----------------------------

             Summary: 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 & 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.



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

Reply via email to