/* * (non-Javadoc) * * @see com.hazelcast.core.MapStore#storeAll(java.util.Map) */ @Override public void storeAll(Map<String, String> pairs) { HTable table = null; try { List<Put> puts = new ArrayList<Put>(pairs.size()); for (Map.Entry<String, String> pair : pairs.entrySet()) { try { byte[] rowId = prefixDate ? IdUtil.bucketizeId(pair.getKey()) : Bytes.toBytes(pair.getKey()); Put p = new Put(rowId); if (outputFormatType == StoreFormatType.SMILE) { p.add(family, qualifier, jsonSmileConverter.convertToSmile(pair.getValue())); } else { p.add(family, qualifier, Bytes.toBytes(pair.getValue())); } puts.add(p); } catch (NumberFormatException nfe) { LOG.error("Encountered bad key: " + pair.getKey(), nfe); } } table = (HTable) pool.getTable(tableName); table.setAutoFlush(false); table.put(puts); table.flushCommits(); } catch (IOException e) { LOG.error("Error during puts", e); } finally { if (table != null) { pool.putTable(table); } } }
public void putBatch(Optional<List<Request>> putRequests, boolean optimize) { if (!valid) { Logger.error("CANNOT PUT! NO VALID CONNECTION"); return; } List<Put> puts = new ArrayList<>(); if (putRequests.isPresent() && !putRequests.get().isEmpty()) { String tableName = putRequests.get().get(0).table; putRequests .get() .forEach( pr -> pr.getPut() .ifPresent( p -> { if (optimize) { p.setDurability(Durability.SKIP_WAL); } puts.add(p); })); try { final Table table = connection.getTable(TableName.valueOf(tableName)); if (optimize && table instanceof HTable) { ((HTable) table).setAutoFlush(false, true); } table.put(puts); table.close(); } catch (IOException e) { e.printStackTrace(); } } }