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 String
Der 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 TypMethodeBeschreibungvoid
add
(long dIMin, long dIMax, long aTMin, long aTMax, long dTMin, long dTMax, long cID) Fügt einen neuen Eintrag in den Buffer ein.protected void
checkAdd
(long dIMin, long dIMax, long aTMin, long aTMax, long dTMin, long dTMax, long cID) static int
Gibt die anzahl Bytes zurück, die ein Indexeintrag belegt.long
Liefert 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, toString
Von Klasse geerbte Methoden java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Von Schnittstelle geerbte Methoden de.bsvrz.ars.ars.persistence.index.ArchiveTimeIndex
getContainerID, getContainerIDByArchiveTime
Von 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
-