Skip to content

Commit

Permalink
从Table和Index能找到后端StorageMap
Browse files Browse the repository at this point in the history
  • Loading branch information
codefollower committed Nov 1, 2015
1 parent 72f3b14 commit 30f075c
Show file tree
Hide file tree
Showing 11 changed files with 43 additions and 13 deletions.
Expand Up @@ -45,6 +45,6 @@ public StreamReader(FileMessageHeader header, StreamSession session, StorageMap<
}

public void read(ReadableByteChannel channel) throws IOException {
map.transferFrom(channel);
// map.transferFrom(channel);
}
}
Expand Up @@ -34,18 +34,16 @@ public class StreamReceiveTask extends StreamTask {
// true if task is done (either completed or aborted)
private boolean done = false;

public StreamReceiveTask(StreamSession session, String cfId, int totalFiles, long totalSize) {
super(session, cfId);
public StreamReceiveTask(StreamSession session, String mapName, int totalFiles, long totalSize) {
super(session, mapName);
this.totalFiles = totalFiles;
this.totalSize = totalSize;
}

/**
* Process received file.
*
* @param sstable SSTable file received.
// */
public synchronized void received(String cfId) {
*/
public synchronized void received(String mapName) {
if (done)
return;
}
Expand Down
Expand Up @@ -269,14 +269,15 @@ public void addTransferRanges(String dbName, Collection<Range<Token>> ranges, Co
}
}

@SuppressWarnings("unchecked")
private Collection<StorageMap<Object, Object>> getStorageMaps(String dbName, Collection<String> tableNames) {
Collection<StorageMap<Object, Object>> stores = new HashSet<>();
for (Database db : DatabaseEngine.getDatabases()) {
if (db.getName().equalsIgnoreCase(dbName)) {
for (Schema schema : db.getAllSchemas()) {
for (Table table : schema.getAllTablesAndViews()) {
if (tableNames.isEmpty() || tableNames.contains(table.getName()))
stores.addAll(table.getAllStorageMaps());
stores.addAll((Collection<? extends StorageMap<Object, Object>>) table.getAllStorageMaps());
}
}
}
Expand Down
Expand Up @@ -26,9 +26,9 @@ public abstract class StreamTask {

protected final String mapName;

protected StreamTask(StreamSession session, String cfId) {
protected StreamTask(StreamSession session, String mapName) {
this.session = session;
this.mapName = cfId;
this.mapName = mapName;
}

/**
Expand Down
Expand Up @@ -52,8 +52,8 @@ public class StreamTransferTask extends StreamTask {

private long totalSize;

public StreamTransferTask(StreamSession session, String cfId) {
super(session, cfId);
public StreamTransferTask(StreamSession session, String mapName) {
super(session, mapName);
}

public synchronized void addTransferFile(StorageMap<Object, Object> map, long estimatedKeys,
Expand Down
2 changes: 2 additions & 0 deletions lealone-db/src/main/java/org/lealone/db/index/Index.java
Expand Up @@ -15,6 +15,7 @@
import org.lealone.db.table.IndexColumn;
import org.lealone.db.table.Table;
import org.lealone.db.table.TableFilter;
import org.lealone.storage.StorageMap;

/**
* An index. Indexes are used to speed up searching data.
Expand Down Expand Up @@ -243,4 +244,5 @@ public interface Index extends SchemaObject {
*/
void setSortedInsertMode(boolean sortedInsertMode);

StorageMap<? extends Object, ? extends Object> getStorageMap();
}
5 changes: 5 additions & 0 deletions lealone-db/src/main/java/org/lealone/db/index/IndexBase.java
Expand Up @@ -26,6 +26,7 @@
import org.lealone.db.table.TableFilter;
import org.lealone.db.value.Value;
import org.lealone.db.value.ValueNull;
import org.lealone.storage.StorageMap;

/**
* Most index implementations extend the base index.
Expand Down Expand Up @@ -487,4 +488,8 @@ public boolean needRebuild() {
public long getDiskSpaceUsed() {
return 0;
}

public StorageMap<? extends Object, ? extends Object> getStorageMap() {
return null;
}
}
Expand Up @@ -28,6 +28,7 @@
import org.lealone.db.value.ValueLong;
import org.lealone.db.value.ValueNull;
import org.lealone.storage.Storage;
import org.lealone.storage.StorageMap;
import org.lealone.transaction.TransactionEngine;
import org.lealone.transaction.TransactionMap;

Expand Down Expand Up @@ -364,6 +365,11 @@ boolean isInMemory() {
return dataMap.isInMemory();
}

@Override
public StorageMap<? extends Object, ? extends Object> getStorageMap() {
return dataMap;
}

/**
* A cursor.
*/
Expand Down
Expand Up @@ -29,6 +29,7 @@
import org.lealone.db.value.ValueLong;
import org.lealone.db.value.ValueNull;
import org.lealone.storage.Storage;
import org.lealone.storage.StorageMap;
import org.lealone.transaction.TransactionEngine;
import org.lealone.transaction.TransactionMap;

Expand Down Expand Up @@ -415,6 +416,11 @@ public boolean isInMemory() {
return dataMap.isInMemory();
}

@Override
public StorageMap<? extends Object, ? extends Object> getStorageMap() {
return dataMap;
}

/**
* A cursor.
*/
Expand Down
12 changes: 12 additions & 0 deletions lealone-db/src/main/java/org/lealone/db/table/StandardTable.java
Expand Up @@ -9,6 +9,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
Expand Down Expand Up @@ -41,6 +42,7 @@
import org.lealone.db.value.DataType;
import org.lealone.db.value.Value;
import org.lealone.storage.StorageEngine;
import org.lealone.storage.StorageMap;
import org.lealone.transaction.Transaction;

public class StandardTable extends TableBase {
Expand Down Expand Up @@ -835,4 +837,14 @@ private static String getMapName(Object... args) {
}
return name.toString();
}

@Override
public List<StorageMap<? extends Object, ? extends Object>> getAllStorageMaps() {
List<StorageMap<? extends Object, ? extends Object>> maps = new ArrayList<>(indexes.size());
for (Index i : indexes) {
if (i.getStorageMap() != null)
maps.add(i.getStorageMap());
}
return maps;
}
}
2 changes: 1 addition & 1 deletion lealone-db/src/main/java/org/lealone/db/table/Table.java
Expand Up @@ -1201,7 +1201,7 @@ public TransactionMap<Long, Long> getRowVersionMap() {
return null;
}

public List<StorageMap<Object, Object>> getAllStorageMaps() {
public List<StorageMap<? extends Object, ? extends Object>> getAllStorageMaps() {
return new ArrayList<>(0);
}
}

0 comments on commit 30f075c

Please sign in to comment.