cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-10358) Allow CQLSSTableWriter.Builder to use custom AbstractSSTableSimpleWriter
Date Mon, 21 Nov 2016 14:20:59 GMT


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:
>             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
> 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

View raw message