[JIRA] (HSEARCH-3636) Restore the ability to configure Lucene directories on a per-index or per-shard basis
by Yoann Rodière (JIRA)
Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *updated* an issue
Hibernate Search ( https://hibernate.atlassian.net/browse/HSEARCH?atlOrigin=eyJpIjoiYjZjYmQy... ) / Task ( https://hibernate.atlassian.net/browse/HSEARCH-3636?atlOrigin=eyJpIjoiYjZ... ) HSEARCH-3636 ( https://hibernate.atlassian.net/browse/HSEARCH-3636?atlOrigin=eyJpIjoiYjZ... ) Restore the ability to configure Lucene directories on a per-index or per-shard basis ( https://hibernate.atlassian.net/browse/HSEARCH-3636?atlOrigin=eyJpIjoiYjZ... )
Change By: Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... )
Currentyly, all directory-related options can be configured on a per-index basis, or even per-shard when sharding is enabled.
This is both complicated, and potentially limiting for us, since resources (thread pools, ...) could not easily be shared between multiple indexes.
In Search 6, we currently only allow one set of directory-related options at the backend level.
While this is simpler and could allow more optimization, it is also very restricting for users: they won't be able to, for example, store different indexes or different shards of the same index on different disks.
They could put each index in a different backend, but that would prevent multi-index searches (as it's not possible to search across multiple backends).
Maybe we should find some middle ground?
The current structure of configuration properties is fine, but we could introduce an alternative syntax when multiple storage configurations are needed.
For example:
{code}
# Define the default configuration as usual
# Maybe rename .directory to .store?
hibernate.search.backend.myBackend.store.type = local-filesystem
hibernate.search.backend.myBackend.store.root = /data/indexes/common
# Define a named store for write-intensive indexes (stored on a specific disk)
hibernate.search.backend.myBackend.stores.write-intensive.type = local-filesystem
hibernate.search.backend.myBackend.stores.write-intensive..root = /data/indexes/highthroughput
# Define a named store for in-memory indexes
hibernate.search.backend.myBackend.stores.in-memory.type = local-heap
# Assign stores to specific indexes; indexes that are not mentioned will use the default store
hibrenate.search.backend.indexes.com.mycompany.model.BusinessEvent.store = write-intensive
hibrenate.search.backend.indexes.com.mycompany.model.TechnicalEvent.store = in-memory
# Maybe even allow assigning a different store to each shard of a given index?
hibrenate.search.backend.indexes.com.mycompany.model.SomeShardedEntity.0.store = store0
hibrenate.search.backend.indexes.com.mycompany.model.SomeShardedEntity.1.store = store1
hibrenate.search.backend.indexes.com.mycompany.model.SomeShardedEntity.2.store = store2
{code}
"store" is just a first attempt at naming this concept, but we should look for a better term.
( https://hibernate.atlassian.net/browse/HSEARCH-3636#add-comment?atlOrigin... ) Add Comment ( https://hibernate.atlassian.net/browse/HSEARCH-3636#add-comment?atlOrigin... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100133- sha1:ead1094 )
4 years, 3 months
[JIRA] (HSEARCH-3636) Provide a (better) way to configure Lucene directories on a per-index or per-shard basis
by Yoann Rodière (JIRA)
Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *updated* an issue
Hibernate Search ( https://hibernate.atlassian.net/browse/HSEARCH?atlOrigin=eyJpIjoiMjM2YzZm... ) / Improvement ( https://hibernate.atlassian.net/browse/HSEARCH-3636?atlOrigin=eyJpIjoiMjM... ) HSEARCH-3636 ( https://hibernate.atlassian.net/browse/HSEARCH-3636?atlOrigin=eyJpIjoiMjM... ) Provide a (better) way to configure Lucene directories on a per-index or per-shard basis ( https://hibernate.atlassian.net/browse/HSEARCH-3636?atlOrigin=eyJpIjoiMjM... )
Change By: Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... )
In Search 5 Currentyly , all directory-related options could can be configured on a per-index basis, or even per-shard when sharding was is enabled.
This was is both complicated, and potentially limiting for us, since resources (thread pools, ...) could not easily be shared between multiple indexes.
In Search 6, we currently only allow one set of directory-related options at the backend level.
While this is simpler and could allow more optimization, it is also very restricting for users: they won't be able to, for example, store different indexes or different shards of the same index on different disks.
They could put each index in a different backend, but that would prevent multi-index searches (as it's not possible to search across multiple backends).
Maybe we should find some middle ground?
The current structure of configuration properties is fine, but we could introduce an alternative syntax when multiple storage configurations are needed.
For example:
{code}
# Define the default configuration as usual
# Maybe rename .directory to .store?
hibernate.search.backend.myBackend.store.type = local-filesystem
hibernate.search.backend.myBackend.store.root = /data/indexes/common
# Define a named store for write-intensive indexes (stored on a specific disk)
hibernate.search.backend.myBackend.stores.write-intensive.type = local-filesystem
hibernate.search.backend.myBackend.stores.write-intensive..root = /data/indexes/highthroughput
# Define a named store for in-memory indexes
hibernate.search.backend.myBackend.stores.in-memory.type = local-heap
# Assign stores to specific indexes; indexes that are not mentioned will use the default store
hibrenate.search.backend.indexes.com.mycompany.model.BusinessEvent.store = write-intensive
hibrenate.search.backend.indexes.com.mycompany.model.TechnicalEvent.store = in-memory
# Maybe even allow assigning a different store to each shard of a given index?
hibrenate.search.backend.indexes.com.mycompany.model.SomeShardedEntity.0.store = store0
hibrenate.search.backend.indexes.com.mycompany.model.SomeShardedEntity.1.store = store1
hibrenate.search.backend.indexes.com.mycompany.model.SomeShardedEntity.2.store = store2
{code}
"store" is just a first attempt at naming this concept, but we should look for a better term.
( https://hibernate.atlassian.net/browse/HSEARCH-3636#add-comment?atlOrigin... ) Add Comment ( https://hibernate.atlassian.net/browse/HSEARCH-3636#add-comment?atlOrigin... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100133- sha1:ead1094 )
4 years, 3 months