Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
Added new CfDef features into API including compression, compaction, etc.
  • Loading branch information
ghinkle committed Dec 22, 2011
1 parent 071717a commit 29a405c
Show file tree
Hide file tree
Showing 5 changed files with 223 additions and 3 deletions.
@@ -1,7 +1,9 @@
package me.prettyprint.cassandra.model;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import me.prettyprint.hector.api.ddl.ColumnDefinition;
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
Expand Down Expand Up @@ -38,6 +40,15 @@ public class BasicColumnFamilyDefinition implements ColumnFamilyDefinition {
private int memtableFlushAfterMins;
private boolean replicateOnWrite;

private String compactionStrategy;
private Map<String,String> compactionStrategyOptions;
private Map<String,String> compressionOptions;
private double mergeShardsChance;
private String rowCacheProvider;
private ByteBuffer keyAlias;
private int rowCacheKeysToSave;


private final List<ColumnDefinition> columnDefinitions;


Expand Down Expand Up @@ -75,6 +86,14 @@ public BasicColumnFamilyDefinition(ColumnFamilyDefinition columnFamilyDefinition
memtableThroughputInMb = columnFamilyDefinition.getMemtableThroughputInMb();
memtableFlushAfterMins = columnFamilyDefinition.getMemtableFlushAfterMins();
replicateOnWrite = columnFamilyDefinition.isReplicateOnWrite();
compactionStrategy = columnFamilyDefinition.getCompactionStrategy();
compactionStrategyOptions = columnFamilyDefinition.getCompactionStrategyOptions();
compressionOptions = columnFamilyDefinition.getCompressionOptions();
mergeShardsChance = columnFamilyDefinition.getMergeShardsChance();
rowCacheProvider = columnFamilyDefinition.getRowCacheProvider();
keyAlias = columnFamilyDefinition.getKeyAlias();
rowCacheKeysToSave = columnFamilyDefinition.getRowCacheKeysToSave();

}

public void setKeyspaceName(String keyspaceName) {
Expand Down Expand Up @@ -285,4 +304,65 @@ public String getKeyValidationClass() {
return keyValidationClass;
}

@Override
public String getCompactionStrategy() {
return compactionStrategy;
}

@Override
public void setCompactionStrategy(String compactionStrategy) {
this.compactionStrategy = compactionStrategy;
}

@Override
public Map<String, String> getCompactionStrategyOptions() {
return compactionStrategyOptions;
}

@Override
public void setCompactionStrategyOptions(Map<String, String> compactionStrategyOptions) {
this.compactionStrategyOptions = compactionStrategyOptions;
}

@Override
public Map<String, String> getCompressionOptions() {
return compressionOptions;
}

@Override
public void setCompressionOptions(Map<String, String> compressionOptions) {
this.compressionOptions = compressionOptions;
}

public double getMergeShardsChance() {
return mergeShardsChance;
}

public void setMergeShardsChance(double mergeShardsChance) {
this.mergeShardsChance = mergeShardsChance;
}

public String getRowCacheProvider() {
return rowCacheProvider;
}

public void setRowCacheProvider(String rowCacheProvider) {
this.rowCacheProvider = rowCacheProvider;
}

public ByteBuffer getKeyAlias() {
return keyAlias;
}

public void setKeyAlias(ByteBuffer keyAlias) {
this.keyAlias = keyAlias;
}

public int getRowCacheKeysToSave() {
return rowCacheKeysToSave;
}

public void setRowCacheKeysToSave(int rowCacheKeysToSave) {
this.rowCacheKeysToSave = rowCacheKeysToSave;
}
}
114 changes: 114 additions & 0 deletions core/src/main/java/me/prettyprint/cassandra/service/ThriftCfDef.java
@@ -1,8 +1,10 @@
package me.prettyprint.cassandra.service;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

import me.prettyprint.cassandra.utils.Assert;
import me.prettyprint.hector.api.ddl.ColumnDefinition;
Expand Down Expand Up @@ -42,6 +44,18 @@ public class ThriftCfDef implements ColumnFamilyDefinition {
private int keyCacheSavePeriodInSeconds;
private boolean replicateOnWrite;

private String compactionStrategy;
private Map<String,String> compactionStrategyOptions;
private Map<String,String> compressionOptions;
private double mergeShardsChance;
private String rowCacheProvider;
private ByteBuffer keyAlias;
private int rowCacheKeysToSave;





public ThriftCfDef(CfDef d) {
Assert.notNull(d, "CfDef is null");
keyspace = d.keyspace;
Expand All @@ -66,6 +80,16 @@ public ThriftCfDef(CfDef d) {
CFMetaDataDefaults.DEFAULT_MAX_COMPACTION_THRESHOLD : d.max_compaction_threshold;

replicateOnWrite = d.replicate_on_write;

compactionStrategy = d.compaction_strategy;
compactionStrategyOptions = d.compaction_strategy_options;
compressionOptions = d.compression_options;

mergeShardsChance = d.merge_shards_chance;
rowCacheProvider = d.row_cache_provider;
keyAlias = d.key_alias;
rowCacheKeysToSave = d.row_cache_keys_to_save;

}

public ThriftCfDef(ColumnFamilyDefinition columnFamilyDefinition) {
Expand Down Expand Up @@ -98,6 +122,16 @@ public ThriftCfDef(ColumnFamilyDefinition columnFamilyDefinition) {
memtableOperationsInMillions = columnFamilyDefinition.getMemtableOperationsInMillions() == 0 ?
CFMetaDataDefaults.DEFAULT_MEMTABLE_OPERATIONS_IN_MILLIONS : columnFamilyDefinition.getMemtableOperationsInMillions();
replicateOnWrite = columnFamilyDefinition.isReplicateOnWrite();

compactionStrategy = columnFamilyDefinition.getCompactionStrategy();
compactionStrategyOptions = columnFamilyDefinition.getCompactionStrategyOptions();
compressionOptions = columnFamilyDefinition.getCompressionOptions();

mergeShardsChance = columnFamilyDefinition.getMergeShardsChance();
rowCacheProvider = columnFamilyDefinition.getRowCacheProvider();
keyAlias = columnFamilyDefinition.getKeyAlias();
rowCacheKeysToSave = columnFamilyDefinition.getRowCacheKeysToSave();

}

public ThriftCfDef(String keyspace, String columnFamilyName) {
Expand Down Expand Up @@ -243,6 +277,15 @@ public CfDef toThrift() {
d.setSubcomparator_type(subComparatorType.getClassName() + subComparatorTypeAlias);
}

d.setCompaction_strategy(compactionStrategy);
d.setCompaction_strategy_options(compactionStrategyOptions);
d.setCompression_options(compressionOptions);

d.setMerge_shards_chance(mergeShardsChance);
d.setRow_cache_provider(rowCacheProvider);
d.setKey_alias(keyAlias);
d.setRow_cache_keys_to_save(rowCacheKeysToSave);

return d;
}

Expand Down Expand Up @@ -381,10 +424,12 @@ public void setKeyCacheSavePeriodInSeconds(int keyCacheSavePeriodInSeconds) {
this.keyCacheSavePeriodInSeconds = keyCacheSavePeriodInSeconds;
}

@Override
public boolean isReplicateOnWrite() {
return replicateOnWrite;
}

@Override
public void setReplicateOnWrite(boolean replicateOnWrite) {
this.replicateOnWrite = replicateOnWrite;
}
Expand All @@ -399,4 +444,73 @@ public void setName(String name) {
this.name = name;
}

@Override
public String getCompactionStrategy() {
return this.compactionStrategy;
}

@Override
public void setCompactionStrategy(String strategy) {
this.compactionStrategy = strategy;
}

@Override
public Map<String, String> getCompactionStrategyOptions() {
return compactionStrategyOptions;
}

@Override
public void setCompactionStrategyOptions(Map<String, String> compactionStrategyOptions) {
this.compactionStrategyOptions = compactionStrategyOptions;
}

@Override
public Map<String, String> getCompressionOptions() {
return this.compressionOptions;
}

@Override
public void setCompressionOptions(Map<String, String> compressionOptions) {
this.compressionOptions = compressionOptions;
}

@Override
public double getMergeShardsChance() {
return mergeShardsChance;
}

@Override
public void setMergeShardsChance(double mergeShardsChance) {
this.mergeShardsChance = mergeShardsChance;
}

@Override
public String getRowCacheProvider() {
return rowCacheProvider;
}

@Override
public void setRowCacheProvider(String rowCacheProvider) {
this.rowCacheProvider = rowCacheProvider;
}

@Override
public ByteBuffer getKeyAlias() {
return keyAlias;
}

@Override
public void setKeyAlias(ByteBuffer keyAlias) {
this.keyAlias = keyAlias;
}

@Override
public int getRowCacheKeysToSave() {
return rowCacheKeysToSave;
}

@Override
public void setRowCacheKeysToSave(int rowCacheKeysToSave) {
this.rowCacheKeysToSave = rowCacheKeysToSave;
}
}
@@ -1,6 +1,8 @@
package me.prettyprint.hector.api.ddl;

import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;

/**
* Hector's implementation independent CfDef version.
Expand Down Expand Up @@ -82,4 +84,28 @@ public interface ColumnFamilyDefinition {
boolean isReplicateOnWrite();
void setReplicateOnWrite(boolean replicateOnWrite);

String getCompactionStrategy();
void setCompactionStrategy(String strategy);

Map<String,String> getCompactionStrategyOptions();
void setCompactionStrategyOptions(Map<String,String> compactionStrategyOptions);

Map<String,String> getCompressionOptions();
void setCompressionOptions(Map<String,String> compressionOptions);

double getMergeShardsChance();

void setMergeShardsChance(double mergeShardsChance);

String getRowCacheProvider();

void setRowCacheProvider(String rowCacheProvider);

ByteBuffer getKeyAlias();

void setKeyAlias(ByteBuffer keyAlias);

int getRowCacheKeysToSave();

void setRowCacheKeysToSave(int rowCacheKeysToSave);
}
Expand Up @@ -56,7 +56,7 @@ public void testDescribeClusterName() throws Exception {
*/
@Test
public void testDescribeThriftVersion() throws Exception {
assertEquals("19.18.0",cassandraCluster.describeThriftVersion());
assertEquals("19.19.0",cassandraCluster.describeThriftVersion());
}

@Test
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Expand Up @@ -89,7 +89,7 @@
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.6</version>
<exclusions>
<exclusion>
<groupId>com.github.stephenc</groupId>
Expand All @@ -100,7 +100,7 @@
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-thrift</artifactId>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
Expand Down

0 comments on commit 29a405c

Please sign in to comment.