[ https://issues.apache.org/jira/browse/OAK-9004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17084593#comment-17084593 ]
Nitin Gupta commented on OAK-9004: ---------------------------------- trunk : [https://svn.apache.org/viewvc?view=revision&revision=1876584] > Multitenant index name strategy with reindex support > ---------------------------------------------------- > > Key: OAK-9004 > URL: https://issues.apache.org/jira/browse/OAK-9004 > Project: Jackrabbit Oak > Issue Type: Task > Components: indexing > Reporter: Amrit Verma > Priority: Major > Attachments: OAK-9004.patch > > > Index names in elastic follow the pattern *<name>-<reindex-count>* > This has to be changed in order to support multi-tenancy. > We need to pass a parameter with the customer ID so we can create indexes > like *<customer>.<name>-<reindex-count>*. ES indexes cannot be longer than > 255 bytes and must comply with the following criteria > [https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-path-params] > > We need also to decide what to do on re-index. The simpler strategy would be > to: > * create the new index > * move writes and reads to the new index > * delete old index > A more sophisticated strategy could: > * create the new index > * move writes to the new index > * reads will continue to use the old index until the new one catches up > * when the new one is in sync, move reads to the new index & delete the old > one > Both strategies can be implemented using Aliases in Elasticsearch to avoid > race conditions. To implement the second solution we need something that > tells us when the new index has caught up with the initial load. -- This message was sent by Atlassian Jira (v8.3.4#803005)