[
https://issues.apache.org/jira/browse/ZOOKEEPER-3586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17002351#comment-17002351
]
David Mollitor commented on ZOOKEEPER-3586:
-------------------------------------------
[~lvfangmin] Thank you for your interest.
I can't immediately pull up the exact resource, but in my reading, I came
across an article describing some tricks that Google uses. One of them was to
funnel application writes to two drives and wait for one of the responses to
come back before proceeding. This, in theory, protects the application from
having to wait on an overloaded or damaged drive.
> Write Log To Multiple Drives
> ----------------------------
>
> Key: ZOOKEEPER-3586
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3586
> Project: ZooKeeper
> Issue Type: Improvement
> Components: server
> Reporter: David Mollitor
> Priority: Major
>
> Allow ZooKeeper server to write the transaction log to multiple drives. I
> can imagine two different ways of doing this:
> # Allow special namespace ZNodes under the root node. Upon creation, the
> user can specify the location of the log file for all activity under this
> node.
> # Write each transaction out to more than one drive and return an ACK when
> any of the writes complete. Cancel any pending writes and delete the files
> that are furthest behind on merge.
> # Write each transaction out to more than one drive and obtain a lock on a
> target drive before each write. If the lock for the first drive is taken,
> attempt to get the lock on the second drive, and so on, ... combine logs on
> merge being mindful that one of the transactions may have failed and created
> a small hole in the middle of the log.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)