public int getIndex(int hash) { return ((rehash(hash) >>> segmentShift) & segmentMask); }
public LockHandler() { this.segmentIndexer = new LockIndexer(10); readWriteLock = new ReadWriteLock[segmentIndexer.getSegmentSize()]; for (int i = 0; i < segmentIndexer.getSegmentSize(); i++) { readWriteLock[i] = new ReentrantReadWriteLock(); } }
public ReadWriteLock getLock(long uniqueId) { int h = Long.hashCode(uniqueId); int index = segmentIndexer.getIndex(h); return readWriteLock[index]; }
public void startServer(int instanceCount) throws Exception { log.info("Starting server"); MongoConfig mongoConfig = getTestMongoConfig(); ClusterConfig clusterConfig = getTestClusterConfig(); ClusterHelper clusterHelper = new ClusterHelper(mongoConfig); clusterHelper.saveClusterConfig(clusterConfig); String localServer = ServerNameHelper.getLocalServer(); for (int i = 0; i < instanceCount; i++) { LumongoNode ln = createLuceneNode(clusterHelper, mongoConfig, localServer, i); ln.start(); luceneNodes.add(ln); } }
public static MongoClient getMongo() throws UnknownHostException, MongoException { return new MongoClient(getMongoServer()); } }
public void fetchAssociated(String uniqueId, String indexName, String fileName, OutputStream destination) throws IOException { InputStream source = null; HttpURLConnection conn = null; try { HashMap<String, Object> parameters = new HashMap<>(); parameters.put(LumongoConstants.ID, uniqueId); parameters.put(LumongoConstants.FILE_NAME, fileName); parameters.put(LumongoConstants.INDEX, indexName); String url = HttpHelper.createRequestUrl(server, restPort, LumongoConstants.ASSOCIATED_DOCUMENTS_URL, parameters); conn = createGetConnection(url); handlePossibleError(conn); source = conn.getInputStream(); StreamHelper.copyStream(source, destination); } finally { closeStreams(source, destination, conn); } }
public static void main(String[] args) throws Exception { LogUtil.loadLogConfig(); TwitterCrawler tm = new TwitterCrawler(); tm.start(); } }
public static Document getDocumentFromResultDocument(Lumongo.ResultDocumentOrBuilder rd) { if (rd.hasDocument()) { return LumongoUtil.byteArrayToMongoDocument(rd.getDocument().toByteArray()); } return null; }
public LMMember getMember(String indexName, String uniqueId) { Integer numberOfSegments = segmentCountMapping.get(indexName); if (numberOfSegments == null) { return null; } Map<Integer, LMMember> segmentMapping = indexMapping.get(indexName); int segmentNumber = SegmentUtil.findSegmentForUniqueId(uniqueId, numberOfSegments); return segmentMapping.get(segmentNumber); } }
public ResultDocBuilder setDocument(Document document) { resultDocumentBuilder.setDocument(ByteString.copyFrom(LumongoUtil.mongoDocumentToByteArray(document))); return this; }
public T fromScoredResult(Lumongo.ScoredResult scoredResult) throws Exception { return fromDocument(ResultHelper.getDocumentFromScoredResult(scoredResult)); }
public void index(Document document, String storedFieldName, Object storedValue, String indexedFieldName) throws Exception { LumongoUtil.handleLists(storedValue, obj -> { try { handleValue(document, storedFieldName, obj, indexedFieldName); } catch (Exception e) { throw new RuntimeException(e); } }); }
public static Document getDocumentFromScoredResult(Lumongo.ScoredResult scoredResult) { if (scoredResult.hasResultDocument()) { Lumongo.ResultDocument rd = scoredResult.getResultDocument(); return getDocumentFromResultDocument(rd); } return null; }
public static String createRequestUrl(String server, int restPort, String url, HashMap<String, Object> parameters) { String fullUrl = ("http://" + server + ":" + restPort + url); if (parameters == null || parameters.isEmpty()) { return fullUrl; } return (fullUrl + "?" + createQuery(parameters)); } }
public Lock getWriteLock(String uniqueId) { ReadWriteLock readWriteLock = lockHandler.getLock(uniqueId); return readWriteLock.writeLock(); }
public ServerDocumentCache(int maxSize, int concurrency) { lockHandler = new LockHandler(); resultDocumentCache = CacheBuilder.newBuilder().concurrencyLevel(concurrency).maximumSize(maxSize).build(); }
private int getSegmentNumberForUniqueId(String uniqueId) { int numSegments = indexConfig.getNumberOfSegments(); return SegmentUtil.findSegmentForUniqueId(uniqueId, numSegments); }
public AssociatedBuilder setDocument(Document document) { adBuilder.setDocument(ByteString.copyFrom(LumongoUtil.mongoDocumentToByteArray(document))); return this; }
public ReadWriteLock getLock(Long uniqueId) { int h = uniqueId.hashCode(); int index = segmentIndexer.getIndex(h); return readWriteLock[index]; } }
public ReadWriteLock getLock(String uniqueId) { int h = uniqueId.hashCode(); int index = segmentIndexer.getIndex(h); return readWriteLock[index]; }