[ https://issues.apache.org/jira/browse/PIO-96?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16079424#comment-16079424 ]
Kenneth Chan commented on PIO-96: --------------------------------- ok. i see. as of now, the restriction is that - user can choose to use different storage technology to run PIO and it will be used across all engines. - Different engines can share same event server and event storage (e.g. I can send events and then use UR recommender, and then I can also create another classification engine which train on same set of events) (one PIO instance + multiple engines) - some engine template may have strict storage technology requirement. and if the user needs to use this engine, user needs to be careful about the PIO storage config. I think the case you mentioned is that if user brings up two instances of PIO services on same machine ? ( for some reasons) > 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)