2014-04-17 2 views
0

java.Currently를 사용하여 데이터 저장소에서 100000 레코드를 대량으로 삭제하는 프로그램입니다.데이터 저장소에서 Java를 사용하여 100000 레코드를 삭제

public void deleteExistingResults() throws InterruptedException { 
     log.info("inside deleteExistingResults"); 
    ArrayList<Key> keys = new ArrayList<Key>(); 
    List<Entity> results = getResults(); 
    for (Entity entity : results) { 
     keys.add(entity.getKey()); 
     } 
    log.info("deleteExistingResults:outside loop"); 
    service.delete(keys); 
    } 

여기서 getResults는 데이터 저장소의 모든 키를 반환합니다.이 오류가 발생합니다. com.insightsapp.cron.controller.CronTask runTask : 예외가 발생하여 이러한 데이터 저장소 엔터티에 너무 많은 경합이 발생했습니다. 다시 시도하십시오.

답변

0

MapReduce library과 같은 것을 사용하거나 적어도 작업 대기열을 사용하여 수백 또는 수천 개의 배치를 삭제하는 것이 좋습니다.

관련 문제