private List<IVirtualBufferCache> initializeVirtualBufferCaches(IResourceMemoryManager memoryManager, int ioDeviceNum, int numPages) { List<IVirtualBufferCache> vbcs = new ArrayList<>(); for (int i = 0; i < storageProperties.getMemoryComponentsNum(); i++) { MultitenantVirtualBufferCache vbc = new MultitenantVirtualBufferCache( new VirtualBufferCache(new ResourceHeapBufferAllocator(memoryManager, Integer.toString(datasetID)), storageProperties.getMemoryComponentPageSize(), numPages / storageProperties.getMemoryComponentsNum() / numPartitions)); vbcs.add(vbc); } ioDeviceVirtualBufferCaches.put(ioDeviceNum, vbcs); return vbcs; } }
private void populateOpTrackerAndIdGenerator(DatasetResource dataset, int partition, String path) { final long lastValidId = getDatasetLastValidComponentId(path); ILSMComponentIdGenerator idGenerator = new LSMComponentIdGenerator(storageProperties.getMemoryComponentsNum(), lastValidId); PrimaryIndexOperationTracker opTracker = new PrimaryIndexOperationTracker(dataset.getDatasetID(), partition, logManager, dataset.getDatasetInfo(), idGenerator); dataset.setPrimaryIndexOperationTracker(partition, opTracker); dataset.setIdGenerator(partition, idGenerator); }