Klasse ArchiveTimeIndexImpl
- Alle implementierten Schnittstellen:
ArchiveTimeIndex,BaseIndex<IndexValues>,AutoCloseable
- Bekannte direkte Unterklassen:
DataIndexAndArchiveTimeIndex
Zudem muss in jedem Eintrag das Maximum Größer oder gleich dem Minimum sein.
Wenn die Zahl der Einträge die Pufferkapazität im Speicher übersteigt, werden die Einträge in die Indexdatei geschrieben. Je größer die Pufferkapazität im Speicher, umso schneller ist die Suche, weil keine Plattenzugriffe notwendig sind. Die Suche nach ContainerIDs ist als Binärsuche implementiert, die automatisch im Speicher und in der Datei sucht.
-
Verschachtelte Klassen - Übersicht
Verschachtelte Klassen -
Feldübersicht
FelderModifizierer und TypFeldBeschreibungstatic final StringDer Dateiname, unter dem alle Indices dieser Art gespeichert werden -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungArchiveTimeIndexImpl(int bufferSize, Path file) Erzeugt einen neuen monoton steigenden Index.ArchiveTimeIndexImpl(int bufferSize, Path file, IndexContentDescriptor<IndexValues> contentDescriptor) Erzeugt einen neuen monoton steigenden Index. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidadd(long dIMin, long dIMax, long aTMin, long aTMax, long dTMin, long dTMax, long cID) Fügt einen neuen Eintrag in den Buffer ein.protected voidcheckAdd(long dIMin, long dIMax, long aTMin, long aTMax, long dTMin, long dTMax, long cID) static intGibt die anzahl Bytes zurück, die ein Indexeintrag belegt.longLiefert den kleinsten Archivzeit-Minwert, der jemals in diesem Index gespeichert wird.Von Klasse geerbte Methoden de.bsvrz.ars.ars.persistence.index.backend.management.AbstractIndex
append, append, close, first, flush, getFile, getFirst, getLast, getStorage, insert, insert, insertOrReplace, insertOrReplace, numEntries, query, query, removeAll, setInsertValue, setInsertValue, toStringVon Klasse geerbte Methoden java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitVon Schnittstelle geerbte Methoden de.bsvrz.ars.ars.persistence.index.ArchiveTimeIndex
getContainerID, getContainerIDByArchiveTimeVon Schnittstelle geerbte Methoden de.bsvrz.ars.ars.persistence.index.backend.management.BaseIndex
append, append, close, first, flush, getFile, getFirst, getLast, insert, insert, insertOrReplace, insertOrReplace, numEntries, query, query, removeAll, setInsertValue, setInsertValue
-
Felddetails
-
IDX_FILENAME
Der Dateiname, unter dem alle Indices dieser Art gespeichert werden
-
-
Konstruktordetails
-
ArchiveTimeIndexImpl
Erzeugt einen neuen monoton steigenden Index.Bei startmode==APPEND_REUSE_LAST wird der Ringpuffer mit den aktuellsten Daten aus einer vorhandenen Indexdatei gefüllt. Zusätzlich wird der letzte Eintrag in der Indexdatei zum currentEntry. Damit kann ein Container fortgesetzt und der reaktivierte Eintrag weiter aktualisiert werden.
Bei startmode==CREATE_NEW wird ein leerer Index erzeugt und die bisherige Indexdatei (sofern vorhanden) geloescht.
- Parameter:
bufferSize- Anzahl der Einträge, die der die der Index im RAM halten sollfile- Datei- Löst aus:
CorruptIndexException- Lesefehler der Indexe (z. B. korrupt)
-
ArchiveTimeIndexImpl
public ArchiveTimeIndexImpl(int bufferSize, Path file, IndexContentDescriptor<IndexValues> contentDescriptor) throws CorruptIndexException Erzeugt einen neuen monoton steigenden Index.Bei startmode==APPEND_REUSE_LAST wird der Ringpuffer mit den aktuellsten Daten aus einer vorhandenen Indexdatei gefüllt. Zusätzlich wird der letzte Eintrag in der Indexdatei zum currentEntry. Damit kann ein Container fortgesetzt und der reaktivierte Eintrag weiter aktualisiert werden.
Bei startmode==CREATE_NEW wird ein leerer Index erzeugt und die bisherige Indexdatei (sofern vorhanden) geloescht.
- Parameter:
bufferSize- Anzahl der Einträge, die der die der Index im RAM halten sollfile- DateicontentDescriptor- Beschreibung der Spalten (wegen Subklasse)- Löst aus:
CorruptIndexException- Lesefehler der Indexe (z. B. korrupt)
-
-
Methodendetails
-
add
public void add(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.- Parameter:
dIMin- 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- Löst aus:
IndexException- Lesefehler der Indexe (z. B. korrupt)
-
checkAdd
protected void checkAdd(long dIMin, long dIMax, long aTMin, long aTMax, long dTMin, long dTMax, long cID) throws IndexException - Löst aus:
IndexException
-
getAbsoluteATMin
Liefert den kleinsten Archivzeit-Minwert, der jemals in diesem Index gespeichert wird.- Gibt zurück:
- Kleinster Archivzeitwert
- Löst aus:
IndexException- Bei Zugriffsproblemen mit der IndexDatei
-
entrySize
public static int entrySize()Gibt die anzahl Bytes zurück, die ein Indexeintrag belegt.- Gibt zurück:
- Anzahl bytes
-