public static void doIndexInsert(Set<Key> keys, Index index) throws JasDBStorageException { LOG.trace("Inserting {} keys into index: {}", keys.size(), index.getKeyInfo().getKeyName()); StatRecord indexInsert = StatisticsMonitor.createRecord("bag:indexInsert"); for(Key key : keys) { index.insertIntoIndex(key); } indexInsert.stop(); }
public static void bulkInsertIndex(Index index, KeyInfo keyInfo, Iterator<IndexableItem> indexableItems) throws JasDBStorageException { KeyFactory keyFactory = keyInfo.getKeyFactory(); long counter = 0; int interval = 0; long start = System.currentTimeMillis(); while(indexableItems.hasNext()) { IndexableItem indexableItem = indexableItems.next(); if(keyFactory.isMultiValueKey(indexableItem)) { Set<Key> keys = keyFactory.createMultivalueKeys(indexableItem); for(Key key : keys) { index.insertIntoIndex(key); } } else { if(KeyUtil.isAnyDataPresent(indexableItem, index)) { Key key = keyFactory.createKey(indexableItem); index.insertIntoIndex(key); } } interval++; counter++; if(interval >= REPORT_INTERVAL) { LOG.info("Index: {} rebuild at: {} items", index, counter); interval = 0; } } long end = System.currentTimeMillis(); LOG.info("Finished rebuild for: {} items in: {}", counter, (end - start)); } }
} else { index.insertIntoIndex(key);
@Override public void writeRecord(UUIDKey documentId, ClonableDataStream dataStream) throws JasDBStorageException { Key documentKey = documentId.cloneKey(); documentKey.addKey(keyInfo.getKeyNameMapper(), "data", new DataKey(dataStream)); StatRecord insertDataRecordIndex = StatisticsMonitor.createRecord("insert:data:record"); index.insertIntoIndex(documentKey); insertDataRecordIndex.stop(); }
@Override public void writeRecord(UUIDKey documentId, ClonableDataStream dataStream) throws JasDBStorageException { String recordContents = RecordStreamUtil.toString(dataStream); writer.writeRecord(recordContents, p -> { try { index.insertIntoIndex(documentId.cloneKey(false).addKey(keyInfo.getKeyNameMapper(), "RECORD_POINTER", new LongKey(p))); } catch(JasDBStorageException e) { try { removeRecord(documentId); } catch (JasDBStorageException e1) { LOG.error("", e); } throw new RuntimeJasDBException("Unable to write record already exists", e); } }); }
index.insertIntoIndex(insertKey); } catch(JasDBStorageException e) { index.updateKey(key, insertKey);