Skip to content

Commit ee4fa2c

Browse files
committed
1 parent a235a2b commit ee4fa2c

File tree

8 files changed

+113
-40
lines changed

8 files changed

+113
-40
lines changed

client/src/main/java/com/orientechnologies/orient/client/remote/OStorageRemote.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1458,6 +1458,11 @@ public void updateClusterConfiguration(final byte[] obj) {
14581458
}
14591459
}
14601460

1461+
@Override
1462+
public OCluster getClusterByName(final String iClusterName) {
1463+
throw new UnsupportedOperationException("getClusterByName()");
1464+
}
1465+
14611466
@Override
14621467
public String getURL() {
14631468
return OEngineRemote.NAME + ":" + url;

client/src/main/java/com/orientechnologies/orient/client/remote/OStorageRemoteThread.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,11 @@ public OStorageOperationResult<Boolean> hideRecord(ORecordId recordId, int mode,
281281
}
282282
}
283283

284+
@Override
285+
public OCluster getClusterByName(String clusterName) {
286+
return delegate.getClusterByName(clusterName);
287+
}
288+
284289
@Override
285290
public boolean updateReplica(int dataSegmentId, ORecordId rid, byte[] content, ORecordVersion recordVersion, byte recordType)
286291
throws IOException {

core/src/main/java/com/orientechnologies/orient/core/sql/OCommandExecutorSQLTruncateCluster.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,15 @@
1515
*/
1616
package com.orientechnologies.orient.core.sql;
1717

18-
import java.io.IOException;
19-
import java.util.Map;
20-
2118
import com.orientechnologies.orient.core.command.OCommandDistributedReplicateRequest;
2219
import com.orientechnologies.orient.core.command.OCommandRequest;
2320
import com.orientechnologies.orient.core.command.OCommandRequestText;
2421
import com.orientechnologies.orient.core.db.record.ODatabaseRecord;
2522
import com.orientechnologies.orient.core.exception.OCommandExecutionException;
2623
import com.orientechnologies.orient.core.storage.OCluster;
27-
import com.orientechnologies.orient.core.storage.OStorageEmbedded;
24+
25+
import java.io.IOException;
26+
import java.util.Map;
2827

2928
/**
3029
* SQL TRUNCATE CLUSTER command: Truncates an entire record cluster.
@@ -73,7 +72,7 @@ public Object execute(final Map<Object, Object> iArgs) {
7372
if (clusterName == null)
7473
throw new OCommandExecutionException("Cannot execute the command because it has not been parsed yet");
7574

76-
final OCluster cluster = ((OStorageEmbedded) getDatabase().getStorage()).getClusterByName(clusterName);
75+
final OCluster cluster = getDatabase().getStorage().getClusterByName(clusterName);
7776

7877
final long recs = cluster.getEntries();
7978

core/src/main/java/com/orientechnologies/orient/core/storage/OStorage.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,4 +284,6 @@ public int addCluster(String iClusterType, String iClusterName, int iRequestedId
284284
public long getLastOperationId();
285285

286286
public OStorageOperationResult<Boolean> hideRecord(ORecordId recordId, int mode, ORecordCallback<Boolean> callback);
287+
288+
public OCluster getClusterByName(String clusterName);
287289
}

core/src/main/java/com/orientechnologies/orient/core/storage/OStorageAbstract.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,13 @@
4040
public abstract class OStorageAbstract extends OSharedContainerImpl implements OStorage {
4141
protected final String url;
4242
protected final String mode;
43+
protected final OSharedResourceAdaptiveExternal lock;
4344
protected volatile OStorageConfiguration configuration;
4445
protected volatile OCurrentStorageComponentsFactory componentsFactory;
45-
4646
protected String name;
4747
protected AtomicLong version = new AtomicLong();
4848
protected OLevel2RecordCache level2Cache;
49-
5049
protected volatile STATUS status = STATUS.CLOSED;
51-
protected final OSharedResourceAdaptiveExternal lock;
5250

5351
public OStorageAbstract(final String name, final String iURL, final String mode, final int timeout,
5452
final OCacheLevelTwoLocator cacheLocator) {
@@ -69,6 +67,8 @@ public OStorageAbstract(final String name, final String iURL, final String mode,
6967
lock = new OSharedResourceAdaptiveExternal(OGlobalConfiguration.ENVIRONMENT_CONCURRENT.getValueAsBoolean(), timeout, true);
7068
}
7169

70+
public abstract OCluster getClusterByName(final String iClusterName);
71+
7272
public OStorage getUnderlying() {
7373
return this;
7474
}
@@ -91,7 +91,7 @@ public String getName() {
9191

9292
/**
9393
* Returns the configured local Level-2 cache component. Cache component is always created even if not used.
94-
*
94+
*
9595
* @return
9696
*/
9797
public OLevel2RecordCache getLevel2Cache() {
@@ -139,21 +139,6 @@ public boolean dropCluster(final String iClusterName, final boolean iTruncate) {
139139
return dropCluster(getClusterIdByName(iClusterName), iTruncate);
140140
}
141141

142-
protected boolean checkForClose(final boolean force) {
143-
lock.acquireSharedLock();
144-
try {
145-
if (status == STATUS.CLOSED)
146-
return false;
147-
148-
final int remainingUsers = getUsers() > 0 ? removeUser() : 0;
149-
150-
return force
151-
|| (!(OGlobalConfiguration.STORAGE_KEEP_OPEN.getValueAsBoolean() && this instanceof OStorageEmbedded) && remainingUsers == 0);
152-
} finally {
153-
lock.releaseSharedLock();
154-
}
155-
}
156-
157142
public int getUsers() {
158143
return lock.getUsers();
159144
}
@@ -236,4 +221,19 @@ public OCurrentStorageComponentsFactory getComponentsFactory() {
236221
public long getLastOperationId() {
237222
return 0;
238223
}
224+
225+
protected boolean checkForClose(final boolean force) {
226+
lock.acquireSharedLock();
227+
try {
228+
if (status == STATUS.CLOSED)
229+
return false;
230+
231+
final int remainingUsers = getUsers() > 0 ? removeUser() : 0;
232+
233+
return force
234+
|| (!(OGlobalConfiguration.STORAGE_KEEP_OPEN.getValueAsBoolean() && this instanceof OStorageEmbedded) && remainingUsers == 0);
235+
} finally {
236+
lock.releaseSharedLock();
237+
}
238+
}
239239
}

core/src/main/java/com/orientechnologies/orient/core/storage/OStorageEmbedded.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ public OStorageEmbedded(final String iName, final String iFilePath, final String
5555
PROFILER_DELETE_RECORD = "db." + name + ".deleteRecord";
5656
}
5757

58-
public abstract OCluster getClusterByName(final String iClusterName);
59-
6058
protected abstract ORawBuffer readRecord(final OCluster iClusterSegment, final ORecordId iRid, boolean iAtomicLock,
6159
boolean loadTombstones, LOCKING_STRATEGY iLockingStrategy);
6260

core/src/main/java/com/orientechnologies/orient/core/storage/impl/memory/OStorageMemory.java

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,6 @@
1515
*/
1616
package com.orientechnologies.orient.core.storage.impl.memory;
1717

18-
import java.io.IOException;
19-
import java.io.InputStream;
20-
import java.io.OutputStream;
21-
import java.util.ArrayList;
22-
import java.util.Collection;
23-
import java.util.Collections;
24-
import java.util.HashMap;
25-
import java.util.HashSet;
26-
import java.util.List;
27-
import java.util.Map;
28-
import java.util.Set;
29-
import java.util.concurrent.Callable;
30-
3118
import com.orientechnologies.common.concur.lock.OLockManager.LOCK;
3219
import com.orientechnologies.common.exception.OException;
3320
import com.orientechnologies.common.log.OLogManager;
@@ -55,13 +42,25 @@
5542
import com.orientechnologies.orient.core.storage.OStorage;
5643
import com.orientechnologies.orient.core.storage.OStorageEmbedded;
5744
import com.orientechnologies.orient.core.storage.OStorageOperationResult;
58-
import com.orientechnologies.orient.core.storage.impl.local.OStorageConfigurationSegment;
5945
import com.orientechnologies.orient.core.tx.OTransaction;
6046
import com.orientechnologies.orient.core.tx.OTransactionAbstract;
6147
import com.orientechnologies.orient.core.tx.OTxListener;
6248
import com.orientechnologies.orient.core.version.ORecordVersion;
6349
import com.orientechnologies.orient.core.version.OVersionFactory;
6450

51+
import java.io.IOException;
52+
import java.io.InputStream;
53+
import java.io.OutputStream;
54+
import java.util.ArrayList;
55+
import java.util.Collection;
56+
import java.util.Collections;
57+
import java.util.HashMap;
58+
import java.util.HashSet;
59+
import java.util.List;
60+
import java.util.Map;
61+
import java.util.Set;
62+
import java.util.concurrent.Callable;
63+
6564
/**
6665
* Memory implementation of storage. This storage works only in memory and has the following features:
6766
* <ul>
@@ -84,6 +83,7 @@ public OStorageMemory(final String iURL) {
8483
configuration = new OStorageConfiguration(this);
8584
}
8685

86+
@Override
8787
public void create(final Map<String, Object> iOptions) {
8888
addUser();
8989

@@ -124,6 +124,7 @@ public void create(final Map<String, Object> iOptions) {
124124
}
125125
}
126126

127+
@Override
127128
public void open(final String iUserName, final String iUserPassword, final Map<String, Object> iOptions) {
128129
addUser();
129130

@@ -145,6 +146,7 @@ public void open(final String iUserName, final String iUserPassword, final Map<S
145146
}
146147
}
147148

149+
@Override
148150
public void close(final boolean iForce, boolean onDelete) {
149151
if (!checkForClose(iForce))
150152
return;
@@ -182,6 +184,7 @@ public void close(final boolean iForce, boolean onDelete) {
182184
}
183185
}
184186

187+
@Override
185188
public void delete() {
186189
close(true, false);
187190
}
@@ -198,9 +201,11 @@ public void restore(InputStream in, Map<String, Object> options, Callable<Object
198201
throw new UnsupportedOperationException("restore");
199202
}
200203

204+
@Override
201205
public void reload() {
202206
}
203207

208+
@Override
204209
public int addCluster(final String iClusterType, String iClusterName, final String iLocation, final String iDataSegmentName,
205210
boolean forceListBased, final Object... iParameters) {
206211
iClusterName = iClusterName.toLowerCase();
@@ -288,6 +293,7 @@ public boolean dropDataSegment(final String iName) {
288293
return false;
289294
}
290295

296+
@Override
291297
public int addDataSegment(final String iDataSegmentName) {
292298
lock.acquireExclusiveLock();
293299
try {
@@ -316,10 +322,12 @@ public int addDataSegment(final String iDataSegmentName) {
316322
}
317323
}
318324

325+
@Override
319326
public int addDataSegment(final String iSegmentName, final String iLocation) {
320327
return addDataSegment(iSegmentName);
321328
}
322329

330+
@Override
323331
public OStorageOperationResult<OPhysicalPosition> createRecord(final int iDataSegmentId, final ORecordId iRid,
324332
final byte[] iContent, ORecordVersion iRecordVersion, final byte iRecordType, final int iMode,
325333
ORecordCallback<OClusterPosition> iCallback) {
@@ -608,6 +616,7 @@ public long count(int[] iClusterIds, boolean countTombstones) {
608616
}
609617
}
610618

619+
@Override
611620
public OCluster getClusterByName(final String iClusterName) {
612621
lock.acquireSharedLock();
613622
try {
@@ -619,6 +628,7 @@ public OCluster getClusterByName(final String iClusterName) {
619628
}
620629
}
621630

631+
@Override
622632
public int getClusterIdByName(String iClusterName) {
623633
iClusterName = iClusterName.toLowerCase();
624634

@@ -635,10 +645,12 @@ public int getClusterIdByName(String iClusterName) {
635645
}
636646
}
637647

648+
@Override
638649
public String getClusterTypeByName(final String iClusterName) {
639650
return OClusterMemory.TYPE;
640651
}
641652

653+
@Override
642654
public String getPhysicalClusterNameById(final int iClusterId) {
643655
lock.acquireSharedLock();
644656
try {
@@ -654,6 +666,7 @@ public String getPhysicalClusterNameById(final int iClusterId) {
654666
}
655667
}
656668

669+
@Override
657670
public Set<String> getClusterNames() {
658671
lock.acquireSharedLock();
659672
try {
@@ -665,6 +678,7 @@ public Set<String> getClusterNames() {
665678
}
666679
}
667680

681+
@Override
668682
public void commit(final OTransaction iTx, Runnable callback) {
669683
lock.acquireExclusiveLock();
670684
try {
@@ -694,9 +708,11 @@ public void commit(final OTransaction iTx, Runnable callback) {
694708
}
695709
}
696710

711+
@Override
697712
public void rollback(final OTransaction iTx) {
698713
}
699714

715+
@Override
700716
public void synch() {
701717
}
702718

0 commit comments

Comments
 (0)