Как читать записи из MapDB в пакетном режиме, а не читать все сразу?
У меня есть список, скажем, 1000 записей, которые я сохранил на диске через MapDB.
private fun storeRecordsInFile(records : List<Record>): String {
val fileName = "/some/location/temp_file.db"
val db = DBMaker.fileDB(fileName).fileMmapEnable().closeOnJvmShutdown().make()
val diskBasedRecordsList = db.indexTreeList("recordsList").create()
records.forEach { diskBasedRecordsList.add(it) }
db.commit()
db.close()
return fileName
}
Я могу прочитать все эти записи одновременно.
private fun readRecordsFromFile(fileName: String): List<Record> {
val db = DBMaker.fileDB(fileName).fileMmapEnable().make()
val diskBasedRecordsList = db.indexTreeList("recordsList").open()
//read from disk based list
val recordsList = mutableListOf<Record>()
val size = diskBasedRecordsList.size
for(i in 0 until size-1){
recordsList.add(diskBasedRecordsList[i] as Record)
}
db.close()
return recordsList
}
Тем не менее, я хотел бы прочитать их в виде фрагмента / пакета по 100 штук за раз в памяти (то есть без извлечения всех 1000 записей одновременно)?