org.apache.flume.channel.file
Class FileChannel

java.lang.Object
  extended by org.apache.flume.channel.AbstractChannel
      extended by org.apache.flume.channel.BasicChannelSemantics
          extended by org.apache.flume.channel.file.FileChannel
All Implemented Interfaces:
Channel, Configurable, LifecycleAware, NamedComponent

public class FileChannel
extends BasicChannelSemantics

A durable Channel implementation that uses the local file system for its storage.

FileChannel works by writing all transactions to a set of directories specified in the configuration. Additionally, when a commit occurs the transaction is synced to disk. Pointers to events put on the channel are stored in memory. As such, each event on the queue will require 8 bytes of DirectMemory (non-heap). However, the channel will only allow a configurable number messages into the channel. The appropriate amount of direct memory for said capacity, must be allocated to the JVM via the JVM property: -XX:MaxDirectMemorySize


Memory Consumption:

  1. 200GB of data in queue at 100 byte messages: 16GB
  2. 200GB of data in queue at 500 byte messages: 3.2GB
  3. 200GB of data in queue at 1000 byte messages: 1.6GB


Constructor Summary
FileChannel()
           
 
Method Summary
 void configure(Context context)
           Request the implementing class to (re)configure itself.
protected  BasicTransactionSemantics createTransaction()
           Called to create new Transaction objects, which must extend BasicTransactionSemantics.
 void setName(String name)
           
 void start()
           Starts a service or component.
 void stop()
           Stops a service or component.
 String toString()
           
 
Methods inherited from class org.apache.flume.channel.BasicChannelSemantics
getTransaction, initialize, put, take
 
Methods inherited from class org.apache.flume.channel.AbstractChannel
getLifecycleState, getName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FileChannel

public FileChannel()
Method Detail

setName

public void setName(String name)
Specified by:
setName in interface NamedComponent
Overrides:
setName in class AbstractChannel

configure

public void configure(Context context)
Description copied from interface: Configurable

Request the implementing class to (re)configure itself.

When configuration parameters are changed, they must be reflected by the component asap.

There are no thread safety guarrantees on when configure might be called.

Specified by:
configure in interface Configurable
Overrides:
configure in class AbstractChannel

start

public void start()
Description copied from interface: LifecycleAware

Starts a service or component.

Implementations should determine the result of any start logic and effect the return value of LifecycleAware.getLifecycleState() accordingly.

Specified by:
start in interface LifecycleAware
Overrides:
start in class AbstractChannel

stop

public void stop()
Description copied from interface: LifecycleAware

Stops a service or component.

Implementations should determine the result of any stop logic and effect the return value of LifecycleAware.getLifecycleState() accordingly.

Specified by:
stop in interface LifecycleAware
Overrides:
stop in class AbstractChannel

toString

public String toString()
Overrides:
toString in class Object

createTransaction

protected BasicTransactionSemantics createTransaction()
Description copied from class: BasicChannelSemantics

Called to create new Transaction objects, which must extend BasicTransactionSemantics. Each object is used for only one transaction, but is stored in a thread-local and retrieved by getTransaction for the duration of that transaction.

Specified by:
createTransaction in class BasicChannelSemantics


Copyright © 2009-2012 Apache Software Foundation. All Rights Reserved.