Teiid Code Analysis - Overview
Teiid is the codebase for teiid project, this article will guide you how to look over the complete Teiid code.
ThreadLocal
The following are ThreadLocal be used in teiid codebases:
- org.teiid.resource.spi.ConnectionContext
- org.teiid.net.socket.OioOjbectChannelFactory
- org.teiid.core.util.TimestampWithTimezone
- org.teiid.core.types.XMLType
- org.teiid.core.types.StandardXMLTranslator
- org.teiid.translator.jdbc.JDBCExecutionFactory
- org.teiid.dqp.internal.process.DQPWorkContext
- org.teiid.dqp.internal.process.RequestWorkItem
- org.teiid.query.optimizer.relational.RelationalPlanner
- org.teiid.query.util.CommandContext
- org.teiid.query.function.source.XMLSystemFunctions
- org.teiid.query.parser.QueryParser
- org.teiid.common.buffer.impl.BufferManagerImpl
- org.teiid.odata.ODataServletContainerDispatcher
Java concurrent
Teiid use quite a lot of java.util.concurrent
class for multiple threads, lock, etc. The following give the quick link for these codes:
Executor Service
- org.teiid.jdbc.ConnectionImpl
- org.teiid.jdbc.EnhancedTimer
- org.teiid.core.util.ExecutorUtils
- org.teiid.core.util.NamedThreadFactory
- org.teiid.dqp.internal.process.ThreadReuseExecutor
- org.teiid.dqp.internal.process.Request
- org.teiid.dqp.internal.process.TeiidExecutor
- org.teiid.dqp.internal.process.DQPCore
- org.teiid.query.util.CommandContext
- org.teiid.common.buffer.impl.BufferFrontedFileStoreCache
- org.teiid.deployers.VDBStatusChecker
- org.teiid.runtime.EmbeddedServer
- org.teiid.runtime.MaterializationManager
- org.teiid.runtime.EmbeddedConfiguration
- org.teiid.transport.SocketListener
- org.teiid.replication.jgroups.JGroupsObjectReplicator
Future and FutureTask
- org.teiid.jdbc.EnhancedTimer
- org.teiid.client.util.ResultsFuture
- org.teiid.client.lob.StreamingLobChunckProducer
- org.teiid.net.socket.SocketServerConnectionFactory
- org.teiid.net.socket.OioOjbectChannelFactory
- org.teiid.net.socket.ObjectChannel
- org.teiid.net.socket.SocketServerConnection
- org.teiid.resource.adapter.ws.WSConnectionImpl
- org.teiid.dqp.internal.process.DataTierTupleSource
- org.teiid.dqp.internal.process.FutureWork
- org.teiid.dqp.internal.process.DataTierManagerImpl
- org.teiid.dqp.internal.process.DQPWorkContext
- org.teiid.dqp.internal.process.RequestWorkItem
- org.teiid.dqp.internal.process.DQPCore
- org.teiid.query.tempdata.TempTableDataManager
- org.teiid.transport.SSLAwareChannelHandler
- org.teiid.transport.LocalServerConnection
ReentrantReadWriteLock, ReentrantLock and Condition
- org.teiid.jdbc.EnhancedTimer
- org.teiid.query.tempdata.TempTable
- org.teiid.common.buffer.impl.BufferFrontedFileStoreCache
- org.teiid.common.buffer.STree
- org.teiid.common.buffer.impl.BufferManagerImpl
- org.teiid.common.buffer.impl.BufferFrontedFileStoreCache
- java.org.teiid.deployers.VDBRepository
- org.teiid.common.buffer.impl.BufferManagerImpl
- org.teiid.common.buffer.impl.BufferFrontedFileStoreCache
- org.teiid.deployers.VDBRepository
- org.teiid.replication.jgroups.JGroupsInputStream
Semaphore
ConcurrentHashMap, ConcurrentSkipListMap, ConcurrentLinkedQueue, SynchronousQueue, CopyOnWriteArrayList, ConcurrentSkipListSet, LinkedBlockingQueue
- org.teiid.logging.JavaLogger
- org.teiid.jdbc.ConnectionImpl
- org.teiid.net.socket.SocketServerInstanceImpl
- org.teiid.net.socket.SocketServerConnection
- org.teiid.translator.mongodb.MongoDBSelectVisitor
- org.teiid.translator.coherence.util.ObjectSourceMethodManager
- org.teiid.dqp.internal.datamgr.TranslatorRepository
- org.teiid.dqp.internal.datamgr.ConnectorManager
- org.teiid.dqp.internal.datamgr.ConnectorManagerRepository
- org.teiid.dqp.internal.process.multisource.MultiSourceMetadataWrapper
- org.teiid.dqp.internal.process.DQPCore
- org.teiid.dqp.service.TransactionContext
- org.teiid.query.tempdata.GlobalTableStoreImpl
- org.teiid.query.tempdata.TempTableStore
- org.teiid.common.buffer.impl.MemoryStorageManager
- org.teiid.common.buffer.impl.BufferManagerImpl
- org.teiid.common.buffer.impl.SizeUtility
- org.teiid.common.buffer.impl.BufferFrontedFileStoreCache
- org.teiid.jboss.JBossLogger
- org.teiid.deployers.EventDistributorImpl
- org.teiid.deployers.VDBRepository
- org.teiid.services.SessionServiceImpl
- org.teiid.runtime.EmbeddedServer
- org.teiid.transport.SSLAwareChannelHandler
- org.teiid.metadata.AbstractMetadataRecord
- org.teiid.query.tempdata.TempTableStore
- org.teiid.common.buffer.impl.LrfuEvictionQueue
- org.teiid.deployers.VDBRepository
- org.teiid.common.queue.TestThreadReuseExecutor
- org.teiid.core.util.ExecutorUtils
- org.teiid.core.util.ExecutorUtils
Dynamic Proxy
Teiid use the Dynamic Proxy quite frequently, the following are quick links:
- org.teiid.logging.LogManager.LoggingProxy
- org.teiid.net.socket.SocketServerConnectionFactory.ShutdownHandler
- org.teiid.net.socket.SocketServerInstanceImpl.RemoteInvocationHandler
- org.teiid.jdbc.XAConnectionImpl.CloseInterceptor
- org.teiid.jdbc.DataTypeTransformer
- org.teiid.core.util.MixinProxy
- org.teiid.transport.LocalServerConnection.getService()
- org.teiid.transport.PgFrontendProtocol.PgFrontendProtocol()
- org.teiid.transport.ODBCClientInstance.processMessage()
- org.teiid.services.AbstractEventDistributorFactoryService.start()
- org.teiid.replication.jgroups.JGroupsObjectReplicator.ReplicatedInvocationHandler
- org.teiid.runtime.EmbeddedServer.start()
- org.teiid.dqp.internal.datamgr.ConnectorManager.ConnectorWork
- org.teiid.translator.jdbc.JDBCExecutionFactory.getDialect()
Externalizable, Serializable
The following class are implement Externalizable:
- org.teiid.net.socket.Message
- org.teiid.net.socket.Handshake
- org.teiid.net.socket.ServiceInvocationStruct
- org.teiid.client.ResultsMessage
- org.teiid.client.RequestMessage
- org.teiid.client.xa.XidImpl
- org.teiid.client.plan.Annotation
- org.teiid.client.plan.PlanNode
- org.teiid.client.metadata.MetadataResult
- org.teiid.client.metadata.ParameterInfo
- org.teiid.client.security.LogonResult
- org.teiid.client.security.SessionToken
- org.teiid.client.lob.LobChunk
- org.teiid.core.types.ArrayImpl
- org.teiid.core.types.Streamable
- org.teiid.core.types.BaseLob
- org.teiid.dqp.message.RequestID
- org.teiid.dqp.message.AtomicRequestID
- org.teiid.replication.jgroups.AddressWrapper