[
https://issues.apache.org/jira/browse/CASSANDRA-10358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sylvain Lebresne updated CASSANDRA-10358:
-----------------------------------------
Resolution: Not A Problem
Status: Resolved (was: Patch Available)
I have to apologize for letting this drop completely. Looking at this again, I
admit I'm not in love of the {{SSTableWriterCreationStrategy}} because it
somewhat exposes the {{SSTableWriter}} API which is fairly low-level and
internal, while {{CQLSSTableWriter}} is meant to be a high level user API. In
practice, the {{SSTableWriter}} class changes often enough that any code
relying on it is gonna be broken all the time.
Plus that feels overkill for the need expressed:
* controlling the name could likely be dealt with in a simpler way, or really
externally by some simple renaming.
* controlling the level actually doesn't feel like something that should be
dealt with at that {{CQLSSTableWriter}} level: it's a standalone tool but
proper leveling depends on a concrete set of sstables on a node, and messing
with the level is dangerous. If there is a real need here, it would make more
sense to me to provide a (hopefully safer) tool to change the level of a
sstable.
Now, it's been a year since the last comment so I'd assume you found another
way to deal with this, and no-one else really came up with a similar need. So
I'm going to close this largely for the lack of activity and because as said
above, I'm not sure this is the right approach and this can be largely
work-around externally. Feel free to re-open if you strongly disagree, or
someone else has additional motivation for this.
> Allow CQLSSTableWriter.Builder to use custom AbstractSSTableSimpleWriter
> -------------------------------------------------------------------------
>
> Key: CASSANDRA-10358
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10358
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Andre Turgeon
> Priority: Minor
> Attachments: SSTableWriterCreationStrategy.patch, patch.txt
>
>
> I've created a patch for your consideration.
> This change to CQLSSTableWriter allows for a custom
> AbstractSSTableSimpleWriter to be specified.
> I needed this for a bulkload process I wrote. I believe the change would be
> beneficial for other people as well.
> Below are the reasons I needed a custom implementation of
> AbstractSSTableSimpleWriter:
> 1) The available implementations of AbstractSSTableSimpleWriter do not
> provide a way to specify the filename (or rather revision) of the sstable. I
> needed to control the name because my bulkload process write sstables in
> parallel (on multiple machines) and I wish to avoid name collisions.
> 2) I discovered a problem with SSTableSimpleUnsortedWriter where it creates
> invalid level-compaction-style sstables; It allows a partition to span 2
> sstables which violates the "no overlap of token ranges" constraint of level
> compaction.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)