[ 
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: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to