[
https://issues.apache.org/jira/browse/HDDS-1512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bharat Viswanadham updated HDDS-1512:
-------------------------------------
Issue Type: Sub-task (was: New Feature)
Parent: HDDS-505
> Implement DoubleBuffer in OzoneManager
> --------------------------------------
>
> Key: HDDS-1512
> URL: https://issues.apache.org/jira/browse/HDDS-1512
> Project: Hadoop Distributed Data Store
> Issue Type: Sub-task
> Reporter: Bharat Viswanadham
> Assignee: Bharat Viswanadham
> Priority: Major
>
> This Jira is created to implement DoubleBuffer in OzoneManager to flush
> transactions to OM DB.
>
> h2. Flushing Transactions to RocksDB:
> We propose using an implementation similar to the HDFS EditsDoubleBuffer. We
> shall flush RocksDB transactions in batches, instead of current way of using
> rocksdb.put() after every operation. At a given time only one batch will be
> outstanding for flush while newer transactions are accumulated in memory to
> be flushed later.
>
> In DoubleBuffer it will have 2 buffers one is currentBuffer, and the other is
> readyBuffer. We add entry to current buffer, and we check if another flush
> call is outstanding. If not, we flush to disk Otherwise we add entries to
> otherBuffer while sync is happening.
>
> In this if sync is happening, we shall add new requests to other buffer and
> when we can sync we use *RocksDB batch commit to sync to disk, instead of
> rocksdb put.*
>
> Note: If flush to disk is failed on any OM, we shall terminate the
> OzoneManager, so that OM DB’s will not diverge. Flush failure should be
> considered as catastrophic failure.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]