de.bsvrz.ars.ars.persistence.index
Class DIdxATimeMonotoneIndex
java.lang.Object
de.bsvrz.ars.ars.persistence.index.ATimeMonotoneIndex
de.bsvrz.ars.ars.persistence.index.DIdxATimeMonotoneIndex
public class DIdxATimeMonotoneIndex
- extends ATimeMonotoneIndex
In dieser Klasse ist zusaetzlich gefordert, dass die Folge der Datenindexe streng monoton ist.
- Author:
- beck et al. projects GmbH, Phil Schrettenbrunner, Alexander Schmidt
Method Summary |
void |
add(String basePath,
long dIMin,
long dIMax,
long aTMin,
long aTMax,
long dTMin,
long dTMax,
long cID)
Fügt einen neuen Eintrag in den Buffer ein. |
void |
checkForAdd(String basePath,
long dIMin,
long dIMax,
long aTMin,
long aTMax,
long dTMin,
long dTMax,
long cID)
Prüft, ob dem Index ein neuer Eintrag hinzugefügt werden könnte. |
long |
getAbsoluteDIdxMin(String basePath)
Liefert den kleinsten Datenindex-Minwert, der jemals in diesem Index gespeichert wurde. |
IndexResult |
getContainerIDByDIdx(String basePath,
byte[] temp,
long minKey,
long maxKey)
|
Methods inherited from class de.bsvrz.ars.ars.persistence.index.ATimeMonotoneIndex |
capacity, closeIndex, entries, getAbsoluteATMin, getContainerID, getContainerIDByATime, getCurrentATMax, getCurrentATMin, getCurrentCID, getCurrentDIMax, getCurrentDIMin, getCurrentDTMax, getCurrentDTMin, getMinEntry, resize, toString, updateMax |
DIdxATimeMonotoneIndex
public DIdxATimeMonotoneIndex(int size)
- Erzeugt einen neuen monoton steigenden Index. Neue Eintraege werden an eine bestehende Indexdatei angefuegt, wenn diese bereits existiert. Existiert keine
Indexdatei, wird eine erzeugt. Initial werden keine Daten eingelesen; es findet kein Plattenzugriff statt.
- Parameters:
size
- Größe des Buffers (Anzahl der Einträge). Wird mindestens auf 1 gesetzt.
DIdxATimeMonotoneIndex
public DIdxATimeMonotoneIndex(int size,
String basePath,
ATimeMonotoneIndex.IndexStartmode startmode)
throws IndexException
- Erzeugt einen neuen monoton steigenden Index.
Bei startmode==APPEND_REUSE_LAST wird der Ringpuffer mit den aktuellsten Daten aus einer vorhandenen Indexdate gefüllt. Zusätzlich wird der letzte Eintrag
in der Indexdatei zum currentEntry. Damit kann ein Container fortgesetzt und der Key2 weiter aktualisiert werden.
Bei startmode==CREATE_NEW wird ein leerer Index erzeugt und die bisherige Indexdatei (sofern vorhanden) geloescht.
- Parameters:
size
- Größe des Buffers (Anzahl der Einträge)basePath
- Verzeichnis der Indexdateistartmode
- IndexStartmode#ERASE_OLD
: alte Indexdatei loeschen, IndexStartmode#APPEND_REUSE_LAST
: anfuegen, letzten Eintrag
weiterverwenden
- Throws:
IndexException
add
public void add(String basePath,
long dIMin,
long dIMax,
long aTMin,
long aTMax,
long dTMin,
long dTMax,
long cID)
throws IndexException
- Fügt einen neuen Eintrag in den Buffer ein. Bei Bedarf wird der Puffer auf Platte geschrieben.
- Overrides:
add
in class ATimeMonotoneIndex
- Parameters:
basePath
- Verzeichnis der IndexdateidIMin
- Min-Wert des DatenindexdIMax
- Max-Wert des DatenindexaTMin
- Min-Wert der ArchivzeitaTMax
- Max-Wert der ArchivzeitdTMin
- Min-Wert der DatenzeitdTMax
- Max-Wert der DatenzeitcID
- Container-ID des Neueintrags
- Throws:
IndexException
- Falls die Konsistenzpruefung der Eintraege fehlschlaegt
checkForAdd
public void checkForAdd(String basePath,
long dIMin,
long dIMax,
long aTMin,
long aTMax,
long dTMin,
long dTMax,
long cID)
throws IndexException
- Prüft, ob dem Index ein neuer Eintrag hinzugefügt werden könnte.
- Overrides:
checkForAdd
in class ATimeMonotoneIndex
- Parameters:
basePath
- Verzeichnis der IndexdateidIMin
- Min-Wert des DatenindexdIMax
- Max-Wert des DatenindexaTMin
- Min-Wert der ArchivzeitaTMax
- Max-Wert der ArchivzeitdTMin
- Min-Wert der DatenzeitdTMax
- Max-Wert der DatenzeitcID
- Container-ID des Neueintrags
- Throws:
IndexException
- Falls die Konsistenzpruefung der Eintraege fehlschlaegt
getContainerIDByDIdx
public IndexResult getContainerIDByDIdx(String basePath,
byte[] temp,
long minKey,
long maxKey)
throws IndexException
- Throws:
IndexException
getAbsoluteDIdxMin
public long getAbsoluteDIdxMin(String basePath)
throws IndexException
- Liefert den kleinsten Datenindex-Minwert, der jemals in diesem Index gespeichert wurde.
- Parameters:
basePath
- Verzeichnis, in dem die Index-Datei liegt
- Returns:
- Kleinster Datenindex
- Throws:
IndexException
- Bei Zugriffsproblemen mit der IndexDatei