public LumongoNode(MongoConfig mongoConfig, String localServer, int instance) throws Exception { log.info("Using mongo <" + mongoConfig.getServerAddresses() + ">"); MongoClient mongo = new MongoClient(mongoConfig.getServerAddresses()); ClusterHelper clusterHelper = new ClusterHelper(mongo, mongoConfig.getDatabaseName()); LocalNodeConfig localNodeConfig = clusterHelper.getNodeConfig(localServer, instance); ClusterConfig clusterConfig = clusterHelper.getClusterConfig(); log.info("Loaded cluster config: <" + clusterConfig + ">"); MongoDirectory.setMaxIndexBlocks(clusterConfig.getMaxIndexBlocks()); this.indexManager = new LumongoIndexManager(mongo, mongoConfig, clusterConfig); this.externalServiceServer = new ExternalServiceServer(localNodeConfig, indexManager); this.internalServiceServer = new InternalServiceServer(localNodeConfig, indexManager); if (localNodeConfig.hasRestPort()) { this.restServiceManager = new RestServiceManager(localNodeConfig, indexManager); } else { this.restServiceManager = null; } Nodes nodes = clusterHelper.getNodes(); this.hazelcastManager = HazelcastManager .createHazelcastManager(localNodeConfig, indexManager, nodes.getHazelcastNodes(), mongoConfig.getDatabaseName()); }
ClusterHelper clusterHelper = new ClusterHelper(mongoConfig); throw new IllegalArgumentException(AdminConstants.CLUSTER_CONFIG + " is required for " + command.toString()); clusterHelper.saveClusterConfig(clusterConfig); System.out.println("Created cluster"); throw new IllegalArgumentException(AdminConstants.CLUSTER_CONFIG + " is required for " + command.toString()); clusterHelper.saveClusterConfig(clusterConfig); clusterHelper.removeClusterConfig(); System.out.println(clusterHelper.getClusterConfig()); System.out.println("Registering node with server address <" + serverAddress + ">"); clusterHelper.registerNode(localNodeConfig, serverAddress); clusterHelper.removeNode(serverAddress, hazelcastPort); System.out.println(clusterHelper.getNodes());
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 LumongoIndexManager(MongoClient mongo, MongoConfig mongoConfig, ClusterConfig clusterConfig) throws UnknownHostException { this.globalLock = new ReentrantReadWriteLock(true); this.mongoConfig = mongoConfig; this.clusterConfig = clusterConfig; this.indexMap = new ConcurrentHashMap<>(); this.mongo = mongo; this.clusterHelper = new ClusterHelper(mongo, mongoConfig.getDatabaseName()); this.internalClient = new InternalClient(clusterHelper, clusterConfig); this.pool = Executors.newCachedThreadPool(new LumongoThreadFactory("manager")); queryNumber = new AtomicLong(); }
public LumongoNode createLuceneNode(ClusterHelper clusterHelper, MongoConfig mongoConfig, String localServer, int instance) throws Exception { LocalNodeConfig localNodeConfig = getTestLocalNodeConfig(instance); clusterHelper.registerNode(localNodeConfig, localServer); return new LumongoNode(mongoConfig, localServer, localNodeConfig.getHazelcastPort()); }
public void handleServerAdded(Set<Member> currentMembers, Member memberAdded, boolean master) throws Exception { globalLock.writeLock().lock(); try { if (master) { // make sure we can resolve it before transferring segments Nodes nodes = clusterHelper.getNodes(); @SuppressWarnings("unused") LocalNodeConfig localNodeConfig = nodes.find(memberAdded); handleServerAdded(currentMembers, memberAdded); } internalClient.addMember(memberAdded); } finally { globalLock.writeLock().unlock(); } }
public void addMember(Member m) throws Exception { ReadWriteLock lock = getLockForMember(m); lock.writeLock().lock(); try { if (!internalConnectionPoolMap.containsKey(m)) { Nodes nodes = clusterHelper.getNodes(); LocalNodeConfig localNodeConfig = nodes.find(m); int internalServicePort = localNodeConfig.getInternalServicePort(); log.info("Adding connection pool for member <" + m + "> using port <" + internalServicePort + ">"); int maxConnections = clusterConfig.getMaxInternalClientConnections(); internalConnectionPoolMap.put(m, new InternalRpcConnectionPool(m.getSocketAddress().getHostName(), internalServicePort, maxConnections)); } else { log.info("Already loaded connection for member <" + m + ">"); } } finally { lock.writeLock().unlock(); } }
GetMembersResponse.Builder responseBuilder = GetMembersResponse.newBuilder(); Nodes nodes = clusterHelper.getNodes();