org.apache.flume.serialization
Class DurablePositionTracker
java.lang.Object
org.apache.flume.serialization.DurablePositionTracker
- All Implemented Interfaces:
- Closeable, PositionTracker
@InterfaceAudience.Private
@InterfaceStability.Evolving
public class DurablePositionTracker
- extends Object
- implements PositionTracker
Class that stores object state in an avro container file.
The file is only ever appended to.
At construction time, the object reads data from the end of the file and
caches that data for use by a client application. After construction, reads
never go to disk.
Writes always flush to disk.
Note: This class is not thread-safe.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
getInstance
public static DurablePositionTracker getInstance(File trackerFile,
String target)
throws IOException
- If the file exists at startup, then read it, roll it, and open a new one.
We go through this to avoid issues with partial reads at the end of the
file from a previous crash. If we append to a bad record,
our writes may never be visible.
- Parameters:
trackerFile
- target
-
- Returns:
-
- Throws:
IOException
storePosition
public void storePosition(long position)
throws IOException
- Specified by:
storePosition
in interface PositionTracker
- Throws:
IOException
getPosition
public long getPosition()
- Specified by:
getPosition
in interface PositionTracker
getTarget
public String getTarget()
- Specified by:
getTarget
in interface PositionTracker
close
public void close()
throws IOException
- Specified by:
close
in interface Closeable
- Specified by:
close
in interface PositionTracker
- Throws:
IOException
Copyright © 2009-2013 Apache Software Foundation. All Rights Reserved.