• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java JMXEnabledThreadPoolExecutor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor的典型用法代码示例。如果您正苦于以下问题:Java JMXEnabledThreadPoolExecutor类的具体用法?Java JMXEnabledThreadPoolExecutor怎么用?Java JMXEnabledThreadPoolExecutor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



JMXEnabledThreadPoolExecutor类属于org.apache.cassandra.concurrent包,在下文中一共展示了JMXEnabledThreadPoolExecutor类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: buildTServer

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
public TServer buildTServer(Args args)
{
    if (DatabaseDescriptor.getClientEncryptionOptions().enabled)
        throw new RuntimeException("Client SSL is not supported for non-blocking sockets (hsha). Please remove client ssl from the configuration.");

    final InetSocketAddress addr = args.addr;
    TNonblockingServerTransport serverTransport;
    try
    {
        serverTransport = new TCustomNonblockingServerSocket(addr, args.keepAlive, args.sendBufferSize, args.recvBufferSize);
    }
    catch (TTransportException e)
    {
        throw new RuntimeException(String.format("Unable to create thrift socket to %s:%s", addr.getAddress(), addr.getPort()), e);
    }

    ThreadPoolExecutor invoker = new JMXEnabledThreadPoolExecutor(DatabaseDescriptor.getRpcMinThreads(),
                                                                  DatabaseDescriptor.getRpcMaxThreads(),
                                                                  60L,
                                                                  TimeUnit.SECONDS,
                                                                  new SynchronousQueue<Runnable>(),
                                                                  new NamedThreadFactory("RPC-Thread"), "RPC-THREAD-POOL");

    com.thinkaurelius.thrift.util.TBinaryProtocol.Factory protocolFactory = new com.thinkaurelius.thrift.util.TBinaryProtocol.Factory(true, true);

    TDisruptorServer.Args serverArgs = new TDisruptorServer.Args(serverTransport).useHeapBasedAllocation(true)
                                                                                 .inputTransportFactory(args.inTransportFactory)
                                                                                 .outputTransportFactory(args.outTransportFactory)
                                                                                 .inputProtocolFactory(protocolFactory)
                                                                                 .outputProtocolFactory(protocolFactory)
                                                                                 .processor(args.processor)
                                                                                 .maxFrameSizeInBytes(DatabaseDescriptor.getThriftFramedTransportSize())
                                                                                 .invocationExecutor(invoker)
                                                                                 .alwaysReallocateBuffers(true);

    return new THsHaDisruptorServer(serverArgs);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:38,代码来源:THsHaDisruptorServer.java


示例2: main

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
    int NUM_THREADS = Runtime.getRuntime().availableProcessors();
    if (args.length >= 1) {
        NUM_THREADS = Integer.parseInt(args[0]);
        System.out.println("Setting num threads to: " + NUM_THREADS);
    }
    ExecutorService executor = new JMXEnabledThreadPoolExecutor(NUM_THREADS, NUM_THREADS, 60,
            TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10 * NUM_THREADS), new NamedThreadFactory(""), "");
    ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1);

    org.apache.cassandra.SchemaLoader.loadSchema();
    final AtomicLong count = new AtomicLong();
    final long start = System.currentTimeMillis();
    System.out.println(String.format(format, "seconds", "max_mb", "allocated_mb", "free_mb", "diffrence", "count"));
    scheduled.scheduleAtFixedRate(new Runnable() {
        long lastUpdate = 0;

        public void run() {
            Runtime runtime = Runtime.getRuntime();
            long maxMemory = mb(runtime.maxMemory());
            long allocatedMemory = mb(runtime.totalMemory());
            long freeMemory = mb(runtime.freeMemory());
            long temp = count.get();
            System.out.println(String.format(format, ((System.currentTimeMillis() - start) / 1000),
                    maxMemory, allocatedMemory, freeMemory, (temp - lastUpdate), lastUpdate));
            lastUpdate = temp;
        }
    }, 1, 1, TimeUnit.SECONDS);

    while (true) {
        executor.execute(new CommitlogExecutor());
        count.incrementAndGet();
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:35,代码来源:ComitLogStress.java


示例3: HintsDispatchExecutor

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
HintsDispatchExecutor(File hintsDirectory, int maxThreads, AtomicBoolean isPaused)
{
    this.hintsDirectory = hintsDirectory;
    this.isPaused = isPaused;

    scheduledDispatches = new ConcurrentHashMap<>();
    executor = new JMXEnabledThreadPoolExecutor(1,
                                                maxThreads,
                                                1,
                                                TimeUnit.MINUTES,
                                                new LinkedBlockingQueue<>(),
                                                new NamedThreadFactory("HintsDispatcher", Thread.MIN_PRIORITY),
                                                "internal");
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:15,代码来源:HintsDispatchExecutor.java


示例4: CommitLogArchiver

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
public CommitLogArchiver(String archiveCommand, String restoreCommand, String restoreDirectories,
        long restorePointInTime, TimeUnit precision)
{
    this.archiveCommand = archiveCommand;
    this.restoreCommand = restoreCommand;
    this.restoreDirectories = restoreDirectories;
    this.restorePointInTime = restorePointInTime;
    this.precision = precision;
    executor = !Strings.isNullOrEmpty(archiveCommand) ? new JMXEnabledThreadPoolExecutor("CommitLogArchiver") : null;
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:11,代码来源:CommitLogArchiver.java


示例5: buildTServer

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
@SuppressWarnings("resource")
public TServer buildTServer(Args args)
{
    if (DatabaseDescriptor.getClientEncryptionOptions().enabled)
        throw new RuntimeException("Client SSL is not supported for non-blocking sockets (hsha). Please remove client ssl from the configuration.");

    final InetSocketAddress addr = args.addr;
    TNonblockingServerTransport serverTransport;
    try
    {
        serverTransport = new TCustomNonblockingServerSocket(addr, args.keepAlive, args.sendBufferSize, args.recvBufferSize);
    }
    catch (TTransportException e)
    {
        throw new RuntimeException(String.format("Unable to create thrift socket to %s:%s", addr.getAddress(), addr.getPort()), e);
    }

    ThreadPoolExecutor invoker = new JMXEnabledThreadPoolExecutor(DatabaseDescriptor.getRpcMinThreads(),
                                                                  DatabaseDescriptor.getRpcMaxThreads(),
                                                                  60L,
                                                                  TimeUnit.SECONDS,
                                                                  new SynchronousQueue<Runnable>(),
                                                                  new NamedThreadFactory("RPC-Thread"), "RPC-THREAD-POOL");

    com.thinkaurelius.thrift.util.TBinaryProtocol.Factory protocolFactory = new com.thinkaurelius.thrift.util.TBinaryProtocol.Factory(true, true);

    TDisruptorServer.Args serverArgs = new TDisruptorServer.Args(serverTransport).useHeapBasedAllocation(true)
                                                                                 .inputTransportFactory(args.inTransportFactory)
                                                                                 .outputTransportFactory(args.outTransportFactory)
                                                                                 .inputProtocolFactory(protocolFactory)
                                                                                 .outputProtocolFactory(protocolFactory)
                                                                                 .processor(args.processor)
                                                                                 .maxFrameSizeInBytes(DatabaseDescriptor.getThriftFramedTransportSize())
                                                                                 .invocationExecutor(invoker)
                                                                                 .alwaysReallocateBuffers(true);

    return new THsHaDisruptorServer(serverArgs);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:39,代码来源:THsHaDisruptorServer.java


示例6: main

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
    int NUM_THREADS = Runtime.getRuntime().availableProcessors();
    if (args.length >= 1) {
        NUM_THREADS = Integer.parseInt(args[0]);
        System.out.println("Setting num threads to: " + NUM_THREADS);
    }
    ExecutorService executor = new JMXEnabledThreadPoolExecutor(NUM_THREADS, NUM_THREADS, 60,
            TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10 * NUM_THREADS), new NamedThreadFactory(""), "");
    ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1);

    org.apache.cassandra.SchemaLoader.loadSchema();
    org.apache.cassandra.SchemaLoader.schemaDefinition(""); // leave def. blank to maintain old behaviour
    final AtomicLong count = new AtomicLong();
    final long start = System.currentTimeMillis();
    System.out.println(String.format(format, "seconds", "max_mb", "allocated_mb", "free_mb", "diffrence", "count"));
    scheduled.scheduleAtFixedRate(new Runnable() {
        long lastUpdate = 0;

        public void run() {
            Runtime runtime = Runtime.getRuntime();
            long maxMemory = mb(runtime.maxMemory());
            long allocatedMemory = mb(runtime.totalMemory());
            long freeMemory = mb(runtime.freeMemory());
            long temp = count.get();
            System.out.println(String.format(format, ((System.currentTimeMillis() - start) / 1000),
                    maxMemory, allocatedMemory, freeMemory, (temp - lastUpdate), lastUpdate));
            lastUpdate = temp;
        }
    }, 1, 1, TimeUnit.SECONDS);

    while (true) {
        executor.execute(new CommitlogExecutor());
        count.incrementAndGet();
    }
}
 
开发者ID:daidong,项目名称:GraphTrek,代码行数:36,代码来源:ComitLogStress.java


示例7: buildTServer

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
public TServer buildTServer(Args args)
{
    if (DatabaseDescriptor.getClientEncryptionOptions().enabled)
        throw new RuntimeException("Client SSL is not supported for non-blocking sockets (hsha). Please remove client ssl from the configuration.");

    final InetSocketAddress addr = args.addr;
    TNonblockingServerTransport serverTransport;
    try
    {
        serverTransport = new TCustomNonblockingServerSocket(addr, args.keepAlive, args.sendBufferSize, args.recvBufferSize);
    }
    catch (TTransportException e)
    {
        throw new RuntimeException(String.format("Unable to create thrift socket to %s:%s", addr.getAddress(), addr.getPort()), e);
    }

    // This is NIO selector service but the invocation will be Multi-Threaded with the Executor service.
    ExecutorService executorService = new JMXEnabledThreadPoolExecutor(DatabaseDescriptor.getRpcMinThreads(),
                                                                       DatabaseDescriptor.getRpcMaxThreads(),
                                                                       60L,
                                                                       TimeUnit.SECONDS,
                                                                       new SynchronousQueue<Runnable>(),
                                                                       new NamedThreadFactory("RPC-Thread"), "RPC-THREAD-POOL");
    TNonblockingServer.Args serverArgs = new TNonblockingServer.Args(serverTransport).inputTransportFactory(args.inTransportFactory)
                                                                       .outputTransportFactory(args.outTransportFactory)
                                                                       .inputProtocolFactory(args.tProtocolFactory)
                                                                       .outputProtocolFactory(args.tProtocolFactory)
                                                                       .processor(args.processor);
    // Check for available processors in the system which will be equal to the IO Threads.
    return new CustomTHsHaServer(serverArgs, executorService, FBUtilities.getAvailableProcessors());
}
 
开发者ID:dprguiuc,项目名称:Cassandra-Wasef,代码行数:32,代码来源:CustomTHsHaServer.java


示例8: waitForGossipToSettle

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
private void waitForGossipToSettle()
{
    int forceAfter = Integer.getInteger("cassandra.skip_wait_for_gossip_to_settle", -1);
    if (forceAfter == 0)
    {
        return;
    }
    final int GOSSIP_SETTLE_MIN_WAIT_MS = 5000;
    final int GOSSIP_SETTLE_POLL_INTERVAL_MS = 1000;
    final int GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED = 3;

    logger.info("Waiting for gossip to settle before accepting client requests...");
    Uninterruptibles.sleepUninterruptibly(GOSSIP_SETTLE_MIN_WAIT_MS, TimeUnit.MILLISECONDS);
    int totalPolls = 0;
    int numOkay = 0;
    JMXEnabledThreadPoolExecutor gossipStage = (JMXEnabledThreadPoolExecutor)StageManager.getStage(Stage.GOSSIP);
    while (numOkay < GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED)
    {
        Uninterruptibles.sleepUninterruptibly(GOSSIP_SETTLE_POLL_INTERVAL_MS, TimeUnit.MILLISECONDS);
        long completed = gossipStage.getCompletedTasks();
        long active = gossipStage.getActiveCount();
        long pending = gossipStage.getPendingTasks();
        totalPolls++;
        if (active == 0 && pending == 0)
        {
            logger.debug("Gossip looks settled. CompletedTasks: {}", completed);
            numOkay++;
        }
        else
        {
            logger.info("Gossip not settled after {} polls. Gossip Stage active/pending/completed: {}/{}/{}", totalPolls, active, pending, completed);
            numOkay = 0;
        }
        if (forceAfter > 0 && totalPolls > forceAfter)
        {
            logger.warn("Gossip not settled but startup forced by cassandra.skip_wait_for_gossip_to_settle. Gossip Stage total/active/pending/completed: {}/{}/{}/{}",
                        totalPolls, active, pending, completed);
            break;
        }
    }
    if (totalPolls > GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED)
        logger.info("Gossip settled after {} extra polls; proceeding", totalPolls - GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED);
    else
        logger.info("No gossip backlog; proceeding");
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:46,代码来源:CassandraDaemon.java


示例9: doStatusCheck

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
private void doStatusCheck()
{
    if (logger.isTraceEnabled())
        logger.trace("Performing status check ...");

    long now = System.currentTimeMillis();
    long nowNano = System.nanoTime();

    long pending = ((JMXEnabledThreadPoolExecutor) StageManager.getStage(Stage.GOSSIP)).getPendingTasks();
    if (pending > 0 && lastProcessedMessageAt < now - 1000)
    {
        // if some new messages just arrived, give the executor some time to work on them
        Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);

        // still behind?  something's broke
        if (lastProcessedMessageAt < now - 1000)
        {
            logger.warn("Gossip stage has {} pending tasks; skipping status check (no nodes will be marked down)", pending);
            return;
        }
    }

    Set<InetAddress> eps = endpointStateMap.keySet();
    for (InetAddress endpoint : eps)
    {
        if (endpoint.equals(FBUtilities.getBroadcastAddress()))
            continue;

        FailureDetector.instance.interpret(endpoint);
        EndpointState epState = endpointStateMap.get(endpoint);
        if (epState != null)
        {
            // check if this is a fat client. fat clients are removed automatically from
            // gossip after FatClientTimeout.  Do not remove dead states here.
            if (isFatClient(endpoint)
                && !justRemovedEndpoints.containsKey(endpoint)
                && TimeUnit.NANOSECONDS.toMillis(nowNano - epState.getUpdateTimestamp()) > FatClientTimeout)
            {
                logger.info("FatClient {} has been silent for {}ms, removing from gossip", endpoint, FatClientTimeout);
                removeEndpoint(endpoint); // will put it in justRemovedEndpoints to respect quarantine delay
                evictFromMembership(endpoint); // can get rid of the state immediately
            }

            // check for dead state removal
            long expireTime = getExpireTimeForEndpoint(endpoint);
            if (!epState.isAlive() && (now > expireTime)
                && (!StorageService.instance.getTokenMetadata().isMember(endpoint)))
            {
                if (logger.isDebugEnabled())
                {
                    logger.debug("time is expiring for endpoint : {} ({})", endpoint, expireTime);
                }
                evictFromMembership(endpoint);
            }
        }
    }

    if (!justRemovedEndpoints.isEmpty())
    {
        for (Entry<InetAddress, Long> entry : justRemovedEndpoints.entrySet())
        {
            if ((now - entry.getValue()) > QUARANTINE_DELAY)
            {
                if (logger.isDebugEnabled())
                    logger.debug("{} elapsed, {} gossip quarantine over", QUARANTINE_DELAY, entry.getKey());
                justRemovedEndpoints.remove(entry.getKey());
            }
        }
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:71,代码来源:Gossiper.java


示例10: doStatusCheck

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
private void doStatusCheck()
{
    if (logger.isTraceEnabled())
        logger.trace("Performing status check ...");

    long now = System.currentTimeMillis();
    long nowNano = System.nanoTime();

    long pending = ((JMXEnabledThreadPoolExecutor) StageManager.getStage(Stage.GOSSIP)).metrics.pendingTasks.getValue();
    if (pending > 0 && lastProcessedMessageAt < now - 1000)
    {
        // if some new messages just arrived, give the executor some time to work on them
        Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);

        // still behind?  something's broke
        if (lastProcessedMessageAt < now - 1000)
        {
            logger.warn("Gossip stage has {} pending tasks; skipping status check (no nodes will be marked down)", pending);
            return;
        }
    }

    Set<InetAddress> eps = endpointStateMap.keySet();
    for (InetAddress endpoint : eps)
    {
        if (endpoint.equals(FBUtilities.getBroadcastAddress()))
            continue;

        FailureDetector.instance.interpret(endpoint);
        EndpointState epState = endpointStateMap.get(endpoint);
        if (epState != null)
        {
            // check if this is a fat client. fat clients are removed automatically from
            // gossip after FatClientTimeout.  Do not remove dead states here.
            if (isGossipOnlyMember(endpoint)
                && !justRemovedEndpoints.containsKey(endpoint)
                && TimeUnit.NANOSECONDS.toMillis(nowNano - epState.getUpdateTimestamp()) > fatClientTimeout)
            {
                logger.info("FatClient {} has been silent for {}ms, removing from gossip", endpoint, fatClientTimeout);
                removeEndpoint(endpoint); // will put it in justRemovedEndpoints to respect quarantine delay
                evictFromMembership(endpoint); // can get rid of the state immediately
            }

            // check for dead state removal
            long expireTime = getExpireTimeForEndpoint(endpoint);
            if (!epState.isAlive() && (now > expireTime)
                && (!StorageService.instance.getTokenMetadata().isMember(endpoint)))
            {
                if (logger.isDebugEnabled())
                {
                    logger.debug("time is expiring for endpoint : {} ({})", endpoint, expireTime);
                }
                evictFromMembership(endpoint);
            }
        }
    }

    if (!justRemovedEndpoints.isEmpty())
    {
        for (Entry<InetAddress, Long> entry : justRemovedEndpoints.entrySet())
        {
            if ((now - entry.getValue()) > QUARANTINE_DELAY)
            {
                if (logger.isDebugEnabled())
                    logger.debug("{} elapsed, {} gossip quarantine over", QUARANTINE_DELAY, entry.getKey());
                justRemovedEndpoints.remove(entry.getKey());
            }
        }
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:71,代码来源:Gossiper.java


示例11: waitForGossipToSettle

import org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor; //导入依赖的package包/类
private void waitForGossipToSettle()
{
    int forceAfter = Integer.getInteger("cassandra.skip_wait_for_gossip_to_settle", -1);
    if (forceAfter == 0)
    {
        return;
    }
    final int GOSSIP_SETTLE_MIN_WAIT_MS = 5000;
    final int GOSSIP_SETTLE_POLL_INTERVAL_MS = 1000;
    final int GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED = 3;

    logger.info("waiting for gossip to settle before accepting client requests...");
    Uninterruptibles.sleepUninterruptibly(GOSSIP_SETTLE_MIN_WAIT_MS, TimeUnit.MILLISECONDS);
    int totalPolls = 0;
    int numOkay = 0;
    JMXEnabledThreadPoolExecutor gossipStage = (JMXEnabledThreadPoolExecutor)StageManager.getStage(Stage.GOSSIP);
    while (numOkay < GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED)
    {
        Uninterruptibles.sleepUninterruptibly(GOSSIP_SETTLE_POLL_INTERVAL_MS, TimeUnit.MILLISECONDS);
        long completed = gossipStage.getCompletedTasks();
        long active = gossipStage.getActiveCount();
        long pending = gossipStage.getPendingTasks();
        totalPolls++;
        if (active == 0 && pending == 0)
        {
            logger.debug("gossip looks settled. CompletedTasks: {}", completed);
            numOkay++;
        }
        else
        {
            logger.info("gossip not settled after {} polls. Gossip Stage active/pending/completed: {}/{}/{}", totalPolls, active, pending, completed);
            numOkay = 0;
        }
        if (forceAfter > 0 && totalPolls > forceAfter)
        {
            logger.warn("Gossip not settled but startup forced by cassandra.skip_wait_for_gossip_to_settle. Gossip Stage total/active/pending/completed: {}/{}/{}/{}",
                        totalPolls, active, pending, completed);
            break;
        }
    }
    logger.info("gossip settled after {} extra polls; proceeding", totalPolls - GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED);
}
 
开发者ID:mafernandez-stratio,项目名称:cassandra-cqlMod,代码行数:43,代码来源:CassandraDaemon.java



注:本文中的org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java AnalysisProvider类代码示例发布时间:2022-05-22
下一篇:
Java HttpResponses类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap