public interface IBigArray extends Closeable
| Modifier and Type | Field and Description |
|---|---|
static long |
NOT_FOUND |
| Modifier and Type | Method and Description |
|---|---|
long |
append(byte[] data)
Append the data into the head of the array
|
long |
findClosestIndex(long timestamp)
Find an index closest to the specific timestamp when the corresponding item was appended
|
void |
flush()
Force to persist newly appended data,
normally, you don't need to flush explicitly since:
1.) BigArray will automatically flush a cached page when it is replaced out,
2.) BigArray uses memory mapped file technology internally, and the OS will flush the changes even your process crashes,
call this periodically only if you need transactional reliability and you are aware of the cost to performance.
|
byte[] |
get(long index)
Get the data at specific index
|
long |
getBackFileSize()
Get total size of back files(index and data files) of the big array
|
int |
getDataPageSize()
Get the back data file size per page.
|
long |
getHeadIndex()
The head of the array.
|
int |
getItemLength(long index)
Get the data item length at specific index
|
long |
getTailIndex()
The tail of the array.
|
long |
getTimestamp(long index)
Get the timestamp of data at specific index,
this is the timestamp when the data was appended.
|
boolean |
isEmpty()
Check if the array is empty or not
|
boolean |
isFull()
Check if the ring space of java long type has all been used up.
|
void |
limitBackFileSize(long sizeLimit)
limit the back file size, truncate back file and advance array tail index accordingly,
Note, this is a best effort call, exact size limit can't be guaranteed
|
void |
removeAll()
Remove all data in this array, this will empty the array and delete all back page files.
|
void |
removeBefore(long timestamp)
Remove all data before specific timestamp, this will advance the array tail and delete back page files
accordingly.
|
void |
removeBeforeIndex(long index)
Remove all data before specific index, this will advance the array tail to index and
delete back page files before index.
|
long |
size()
The total number of items has been appended into the array
|
static final long NOT_FOUND
long append(byte[] data)
throws IOException
data - binary data to appendIOException - if there is any IO errorbyte[] get(long index)
throws IOException
index - valid data indexIOException - if there is any IO errorlong getTimestamp(long index)
throws IOException
index - valid data indexIOException - if there is any IO errorlong size()
int getDataPageSize()
long getHeadIndex()
long getTailIndex()
boolean isEmpty()
boolean isFull()
void removeAll()
throws IOException
IOException - exception thrown if IO error occurs durring remove allvoid removeBeforeIndex(long index)
throws IOException
index - an indexIOException - exception thrown if there was any IO error during the removal operationvoid removeBefore(long timestamp)
throws IOException
timestamp - a timestampIOException - exception thrown if there was any IO error during the removal operationvoid flush()
long findClosestIndex(long timestamp)
throws IOException
timestamp - when the corresponding item was appendedIOException - exception thrown if there was any IO error during the getClosestIndex operationlong getBackFileSize()
throws IOException
IOException - exception thrown if there was any IO error during the getBackFileSize operationvoid limitBackFileSize(long sizeLimit)
throws IOException
sizeLimit - the size to limitIOException - exception thrown if there was any IO error during the limitBackFileSize operationint getItemLength(long index)
throws IOException
index - valid data indexIOException - if there is any IO errorCopyright © 2020. All rights reserved.