@Override public String call(ODatabaseDocumentInternal database) { return database.getStorage().getType(); } });
@Override public String call(ODatabaseDocumentInternal database) { return database.getStorage().getType(); } });
private OFreezableStorageComponent getFreezableStorage() { OStorage s = getStorage(); if (s instanceof OFreezableStorageComponent) return (OFreezableStorageComponent) s; else { OLogManager.instance().error(this, "Storage of type " + s.getType() + " does not support freeze operation", null); return null; } }
@Override public OBaseIndexEngine createIndexEngine(final String algorithm, final String name, final Boolean durableInNonTxMode, final OStorage storage, final int version, int apiVersion, boolean multivalue, final Map<String, String> engineProperties) { final OIndexEngine indexEngine; final String storageType = storage.getType(); if (storageType.equals("memory") || storageType.equals("plocal")) indexEngine = new OAutoShardingIndexEngine(name, (OAbstractPaginatedStorage) storage, version); else if (storageType.equals("distributed")) // DISTRIBUTED CASE: HANDLE IT AS FOR LOCAL indexEngine = new OAutoShardingIndexEngine(name, (OAbstractPaginatedStorage) storage.getUnderlying(), version); else if (storageType.equals("remote")) // MANAGE REMOTE SHARDED INDEX TO CALL THE INTERESTED SERVER indexEngine = new ORemoteIndexEngine(name); else throw new OIndexException("Unsupported storage type: " + storageType); return indexEngine; } }
public Directory createDirectory(ODatabaseDocumentInternal database, String indexName, ODocument metadata) { String luceneType = metadata.containsField(DIRECTORY_TYPE) ? metadata.<String>field(DIRECTORY_TYPE) : DIRECTORY_MMAP; if (database.getStorage().getType().equals("memory") || DIRECTORY_RAM.equals(luceneType)) { return new RAMDirectory(); } return createDirectory(database, indexName, metadata, luceneType); }
@Override public OBaseIndexEngine createIndexEngine(final String algoritm, final String name, final Boolean durableInNonTxMode, final OStorage storage, final int version, int apiVersion, boolean multivalue, final Map<String, String> engineProperties) { OIndexEngine indexEngine; final String storageType = storage.getType(); if (storageType.equals("memory") || storageType.equals("plocal")) indexEngine = new OHashTableIndexEngine(name, (OAbstractPaginatedStorage) storage, version); else if (storageType.equals("distributed")) // DISTRIBUTED CASE: HANDLE IT AS FOR LOCAL indexEngine = new OHashTableIndexEngine(name, (OAbstractPaginatedStorage) storage.getUnderlying(), version); else if (storageType.equals("remote")) indexEngine = new ORemoteIndexEngine(name); else throw new OIndexException("Unsupported storage type: " + storageType); return indexEngine; } }
result.setProperty("name", storage.getName()); result.setProperty("size", storage.getSize()); result.setProperty("type", storage.getType()); result.setProperty("version", storage.getVersion()); result.setProperty("createdAtVersion", storage.getCreatedAtVersion());