[
https://issues.apache.org/jira/browse/CASSANDRA-14118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16411976#comment-16411976
]
Aleksey Yeschenko commented on CASSANDRA-14118:
-----------------------------------------------
[~JoshuaMcKenzie] in his comment, and [~bdeggleston] before him, explicitly
mentioned that commit log and cache are specific implementation details of
Cassandra's storage engine. You don't 'abstract' them - you make them part of
the Cassandra {{WriteHandler}} implementation, in your terminology.
And you don't do that by writing code like this:
{code:java}
if (writeHandler.hasCommitLog() && writeCommitLog)
{
Tracing.trace("Appending to commitlog");
commitLogPosition = writeHandler.writeCommitLog(mutation);
}{code}
This is *not* how you 'abstract commit log'. External code shouldn't even know
about the commitlog in this scenario. Writing to the commitlog - including the
decision to do so - should be inside the default engine's default
implementation of {{apply()}}.
Same goes for caching. This is not abstracting things away. I don't know what
this is.
> Refactor write path
> -------------------
>
> Key: CASSANDRA-14118
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14118
> Project: Cassandra
> Issue Type: Sub-task
> Components: Core
> Reporter: Dikang Gu
> Assignee: Dikang Gu
> Priority: Major
>
> As part of the pluggable storage engine effort, we'd like to modularize the
> write path related code, make it to be independent from existing storage
> engine implementation details.
> For now, refer to
> https://docs.google.com/document/d/1suZlvhzgB6NIyBNpM9nxoHxz_Ri7qAm-UEO8v8AIFsc
> for high level designs.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]