• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

P_Cluster.h

Go to the documentation of this file.
00001 /** @file
00002 
00003   A brief file description
00004 
00005   @section license License
00006 
00007   Licensed to the Apache Software Foundation (ASF) under one
00008   or more contributor license agreements.  See the NOTICE file
00009   distributed with this work for additional information
00010   regarding copyright ownership.  The ASF licenses this file
00011   to you under the Apache License, Version 2.0 (the
00012   "License"); you may not use this file except in compliance
00013   with the License.  You may obtain a copy of the License at
00014 
00015       http://www.apache.org/licenses/LICENSE-2.0
00016 
00017   Unless required by applicable law or agreed to in writing, software
00018   distributed under the License is distributed on an "AS IS" BASIS,
00019   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00020   See the License for the specific language governing permissions and
00021   limitations under the License.
00022  */
00023 
00024 #ifndef _P_CLUSTER_H__
00025 #define _P_CLUSTER_H__
00026 
00027 #include "libts.h"
00028 #include "P_EventSystem.h"
00029 #include "I_RecProcess.h"
00030 #include "P_Net.h"
00031 #include "P_Cache.h"
00032 
00033 #ifdef HTTP_CACHE
00034 #include "MIME.h"
00035 #include "HTTP.h"
00036 // #include "HttpTransactCache.h"
00037 #endif
00038 
00039 #include "P_ClusterMachine.h"
00040 #include "P_ClusterCache.h"
00041 #include "P_ClusterCacheInternal.h"
00042 #include "P_ClusterInternal.h"
00043 #include "P_ClusterHandler.h"
00044 #include "P_ClusterInline.h"
00045 #include "P_ClusterLib.h"
00046 #include "P_ClusterLoadMonitor.h"
00047 #include "P_TimeTrace.h"
00048 
00049 
00050 #define ECLUSTER_NO_VC                    (CLUSTER_ERRNO+0)
00051 #define ECLUSTER_NO_MACHINE               (CLUSTER_ERRNO+1)
00052 #define ECLUSTER_OP_TIMEOUT               (CLUSTER_ERRNO+2)
00053 #define ECLUSTER_ORB_DATA_READ            (CLUSTER_ERRNO+3)
00054 #define ECLUSTER_ORB_EIO                  (CLUSTER_ERRNO+4)
00055 #define ECLUSTER_CHANNEL_INUSE            (CLUSTER_ERRNO+5)
00056 #define ECLUSTER_NOMORE_CHANNELS          (CLUSTER_ERRNO+6)
00057 
00058 int init_clusterprocessor(void);
00059 enum
00060 {
00061   CLUSTER_CONNECTIONS_OPEN_STAT,
00062   CLUSTER_CONNECTIONS_OPENNED_STAT,
00063   CLUSTER_CON_TOTAL_TIME_STAT,
00064   CLUSTER_CTRL_MSGS_SENT_STAT,
00065   CLUSTER_SLOW_CTRL_MSGS_SENT_STAT,
00066   CLUSTER_CTRL_MSGS_RECVD_STAT,
00067   CLUSTER_SLOW_CTRL_MSGS_RECVD_STAT,
00068   CLUSTER_CTRL_MSGS_SEND_TIME_STAT,
00069   CLUSTER_CTRL_MSGS_RECV_TIME_STAT,
00070   CLUSTER_READ_BYTES_STAT,
00071   CLUSTER_WRITE_BYTES_STAT,
00072   CLUSTER_OP_DELAYED_FOR_LOCK_STAT,
00073   CLUSTER_CONNECTIONS_READ_LOCKED_STAT,
00074   CLUSTER_CONNECTIONS_WRITE_LOCKED_STAT,
00075   CLUSTER_CONNECTIONS_BUMPED_STAT,
00076   CLUSTER_NODES_STAT,
00077   CLUSTER_NET_BACKUP_STAT,
00078   CLUSTER_MACHINES_ALLOCATED_STAT,
00079   CLUSTER_MACHINES_FREED_STAT,
00080   CLUSTER_CONFIGURATION_CHANGES_STAT,
00081   CLUSTER_DELAYED_READS_STAT,
00082   CLUSTER_BYTE_BANK_USED_STAT,
00083   CLUSTER_ALLOC_DATA_NEWS_STAT,
00084   CLUSTER_WRITE_BB_MALLOCS_STAT,
00085   CLUSTER_PARTIAL_READS_STAT,
00086   CLUSTER_PARTIAL_WRITES_STAT,
00087   CLUSTER_CACHE_OUTSTANDING_STAT,
00088   CLUSTER_REMOTE_OP_TIMEOUTS_STAT,
00089   CLUSTER_REMOTE_OP_REPLY_TIMEOUTS_STAT,
00090   CLUSTER_CHAN_INUSE_STAT,
00091   CLUSTER_OPEN_DELAYS_STAT,
00092   CLUSTER_OPEN_DELAY_TIME_STAT,
00093   CLUSTER_CACHE_CALLBACKS_STAT,
00094   CLUSTER_CACHE_CALLBACK_TIME_STAT,
00095   CLUSTER_THREAD_STEAL_EXPIRES_STAT,
00096   CLUSTER_RDMSG_ASSEMBLE_TIME_STAT,
00097   CLUSTER_PING_TIME_STAT,
00098   cluster_setdata_no_CLUSTERVC_STAT,
00099   CLUSTER_SETDATA_NO_TUNNEL_STAT,
00100   CLUSTER_SETDATA_NO_CACHEVC_STAT,
00101   cluster_setdata_no_CLUSTER_STAT,
00102   CLUSTER_VC_WRITE_STALL_STAT,
00103   CLUSTER_NO_REMOTE_SPACE_STAT,
00104   CLUSTER_LEVEL1_BANK_STAT,
00105   CLUSTER_MULTILEVEL_BANK_STAT,
00106   CLUSTER_VC_CACHE_INSERT_LOCK_MISSES_STAT,
00107   CLUSTER_VC_CACHE_INSERTS_STAT,
00108   CLUSTER_VC_CACHE_LOOKUP_LOCK_MISSES_STAT,
00109   CLUSTER_VC_CACHE_LOOKUP_HITS_STAT,
00110   CLUSTER_VC_CACHE_LOOKUP_MISSES_STAT,
00111   CLUSTER_VC_CACHE_SCANS_STAT,
00112   CLUSTER_VC_CACHE_SCAN_LOCK_MISSES_STAT,
00113   CLUSTER_VC_CACHE_PURGES_STAT,
00114   CLUSTER_WRITE_LOCK_MISSES_STAT,
00115   CLUSTER_CACHE_RMT_CALLBACK_TIME_STAT,
00116   CLUSTER_CACHE_LKRMT_CALLBACK_TIME_STAT,
00117   CLUSTER_LOCAL_CONNECTION_TIME_STAT,
00118   CLUSTER_REMOTE_CONNECTION_TIME_STAT,
00119   CLUSTER_SETDATA_NO_CLUSTERVC_STAT,
00120   CLUSTER_SETDATA_NO_CLUSTER_STAT,
00121   CLUSTER_VC_READ_LIST_LEN_STAT,
00122   CLUSTER_VC_WRITE_LIST_LEN_STAT,
00123   cluster_stat_count
00124 };
00125 
00126 extern RecRawStatBlock *cluster_rsb;
00127 #define CLUSTER_INCREMENT_DYN_STAT(x) \
00128         RecIncrRawStat(cluster_rsb, mutex->thread_holding, (int) x, 1);
00129 #define CLUSTER_DECREMENT_DYN_STAT(x) \
00130         RecIncrRawStat(cluster_rsb, mutex->thread_holding, (int) x, -1);
00131 #define CLUSTER_SUM_DYN_STAT(x, y) \
00132         RecIncrRawStat(cluster_rsb, mutex->thread_holding, (int) x, y);
00133 #define CLUSTER_SUM_GLOBAL_DYN_STAT(x, y) \
00134         RecIncrGlobalRawStatSum(cluster_rsb,x,y)
00135 #define CLUSTER_CLEAR_DYN_STAT(x) \
00136 do { \
00137         RecSetRawStatSum(cluster_rsb, x, 0); \
00138         RecSetRawStatCount(cluster_rsb, x, 0); \
00139 } while (0);
00140 
00141 
00142 #endif

Generated by  doxygen 1.7.1