[
https://issues.apache.org/jira/browse/SOLR-15051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17253696#comment-17253696
]
David Smiley commented on SOLR-15051:
-------------------------------------
Thanks for the look [~krisden]!
bq. There will be a performance penalty here coming from remote storage.
For read performance, if cached locally (BlobDirectory does this), there isn't.
BlobDirectory simply delegates reads to {{MMapDirectory}}. I've seen
[~tpot]'s presentation showing that {{HdfsDirectory}} has a read-time
performance hit.
bq. The BlockCache is off heap typically with Java direct memory so shouldn't
require a large Java heap.
Oops; thanks for the correction!
RE storage APIs/abstractions: Are you claiming that the "Hadoop filesystem
interface" is an ideal choice for a BlobDirectory backing store abstraction?
BlobDirectory or whatever shared system needs to write to *something*, so I'm
sincere in asking for your opinion on what that something should be. I have
basically no HDFS experience so I was unaware of it's generic API. Even if
that interface is nice... I suspect BlobDirectory ought to have some simple
abstraction any way but I'm really not hung up on this choice. I'm leery of
adding heavy to too many dependencies.
> Shared storage -- BlobDirectory (de-duping)
> -------------------------------------------
>
> Key: SOLR-15051
> URL: https://issues.apache.org/jira/browse/SOLR-15051
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: David Smiley
> Assignee: David Smiley
> Priority: Major
>
> This proposal is a way to accomplish shared storage in SolrCloud with a few
> key characteristics: (A) using a Directory implementation, (B) delegates to a
> backing local file Directory as a kind of read/write cache (C) replicas have
> their own "space", (D) , de-duplication across replicas via reference
> counting, (E) uses ZK but separately from SolrCloud stuff.
> The Directory abstraction is a good one, and helps isolate shared storage
> from the rest of SolrCloud that doesn't care. Using a backing normal file
> Directory is faster for reads and is simpler than Solr's HDFSDirectory's
> BlockCache. Replicas having their own space solves the problem of multiple
> writers (e.g. of the same shard) trying to own and write to the same space,
> and it implies that any of Solr's replica types can be used along with what
> goes along with them like peer-to-peer replication (sometimes faster/cheaper
> than pulling from shared storage). A de-duplication feature solves needless
> duplication of files across replicas and from parent shards (i.e. from shard
> splitting). The de-duplication feature requires a place to cache directory
> listings so that they can be shared across replicas and atomically updated;
> this is handled via ZooKeeper. Finally, some sort of Solr daemon /
> auto-scaling code should be added to implement "autoAddReplicas", especially
> to provide for a scenario where the leader is gone and can't be replicated
> from directly but we can access shared storage.
> For more about shared storage concepts, consider looking at the description
> in SOLR-13101 and the linked Google Doc.
> *[PROPOSAL
> DOC|https://docs.google.com/document/d/1kjQPK80sLiZJyRjek_Edhokfc5q9S3ISvFRM2_YeL8M/edit?usp=sharing]*
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]