Inserção lenta e desempenho saveall no repositório cassandra de dados da primavera
Estou tentando inserir 1500 registros usando a mola no cassandra. Tenho uma lista de POJOs que mantêm esses 1500 registros e, quando chamo saveAll ou insiro esses dados, leva 30 segundos para concluir esta operação. Alguém pode sugerir uma maneira de fazer isso mais rápido? Atualmente, estou executando o Cassandra 3.11.2 como um cluster de teste de nó únic
Entity POJO:
package com.samplepoc.pojo;
import static org.springframework.data.cassandra.core.cql.PrimaryKeyType.PARTITIONED;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.springframework.data.cassandra.core.mapping.Column;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.core.mapping.Table;
@Table("health")
public class POJOHealth
{
@PrimaryKeyColumn(type=PARTITIONED)
UUID primkey;
@Column
String col1;
@Column
String col2;
@Column
String col3;
@Column
String col4;
@Column
String col5;
@Column
Date ts;
@Column
boolean stale;
@Column
String col6;
@Column
String col7;
@Column
String col8;
@Column
String col9;
@Column
Map<String,String> data_map = new HashMap<String,String>();
public POJOHealth(
String col1,
String col2,
String col3,
String col4,
String col5,
String col6,
String col7,
String col8,
String col9,
boolean stale,
Date ts,
Map<String,String> data_map
)
{
this.primkey = UUID.randomUUID();
this.col1=col1;
this.col2=col2;
this.col3=col3;
this.col4=col4;
this.col5=col5;
this.col6=col6;
this.col7=col7;
this.col8=col8;
this.col9=col9;
this.ts=ts;
this.data_map = data_map;
this.stale=stale;
}
//getters & setter ommitted
}
nippet do Serviço Persistente:
public void persist(List<POJO> l_POJO)
{
System.out.println("Enter Persist: "+new java.util.Date());
List<l_POJO> l_POJO_stale = repository_name.findBycol1AndStale("sample",false);
System.out.println("Retrieve Old: "+new java.util.Date());
l_POJO_stale.forEach(s -> s.setStale(true));
System.out.println("Set Stale: "+new java.util.Date());
repository_name.saveAll(l_POJO_stale);
System.out.println("Save stale: "+new java.util.Date());
try
{
repository_name.insert(l_POJO);
}
catch (Exception e)
{
System.out.println("Error in persisting new data");
}
System.out.println("Insert complete: "+new java.util.Date());
}