org.apache.flume.channel
Class PseudoTxnMemoryChannel

java.lang.Object
  extended by org.apache.flume.channel.PseudoTxnMemoryChannel
All Implemented Interfaces:
Channel, Configurable

public class PseudoTxnMemoryChannel
extends Object
implements Channel, Configurable

A capacity-capped Channel implementation that supports in-memory buffering and delivery of events.

This channel is appropriate for best effort delivery of events where high throughput is favored over data durability. To be clear, this channel offers absolutely no guarantee of event delivery in the face of (any) component failure.

TODO: Discuss guarantees, corner cases re: potential data loss (e.g. consumer begins a tx, takes events, and gets SIGKILL before rollback).

Configuration options

Parameter Description Unit / Type Default
capacity The in-memory capacity of this channel. Store up to capacity events before refusing new events. events / int 50
keep-alive The amount of time (seconds) to wait for an event before returning null on take(). seconds / int 3

Metrics

TODO


Nested Class Summary
static class PseudoTxnMemoryChannel.NoOpTransaction
           A no-op transaction implementation that does nothing at all.
 
Constructor Summary
PseudoTxnMemoryChannel()
           
 
Method Summary
 void configure(Context context)
           
 String getName()
           
 Transaction getTransaction()
           
 void put(Event event)
          Puts the given event in the channel.
 void shutdown()
          Instructs the channel to release any resources held in preparation of shutting down.
 Event take()
          Returns the next event from the channel if available.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PseudoTxnMemoryChannel

public PseudoTxnMemoryChannel()
Method Detail

configure

public void configure(Context context)
Specified by:
configure in interface Configurable

put

public void put(Event event)
Description copied from interface: Channel

Puts the given event in the channel.

Note: This method must be invoked within an active Transaction boundary. Failure to do so can lead to unpredictable results.

Specified by:
put in interface Channel
Parameters:
event - the event to transport.
See Also:
Transaction.begin()

take

public Event take()
Description copied from interface: Channel

Returns the next event from the channel if available. If the channel does not have any events available, this method would return null.

Note: This method must be invoked within an active Transaction boundary. Failure to do so can lead to unpredictable results.

Specified by:
take in interface Channel
Returns:
the next available event or null if no events are available.
See Also:
Transaction.begin()

getTransaction

public Transaction getTransaction()
Specified by:
getTransaction in interface Channel
Returns:
the transaction instance associated with this channel.

shutdown

public void shutdown()
Description copied from interface: Channel
Instructs the channel to release any resources held in preparation of shutting down.

Specified by:
shutdown in interface Channel

getName

public String getName()
Specified by:
getName in interface Channel
Returns:
the channel name.


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