mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-28 20:47:49 +01:00
Objects: remove lockmanager
This commit is contained in:
@@ -6,6 +6,7 @@ import com.usatiuk.objects.JObjectKey;
|
|||||||
import com.usatiuk.objects.snapshot.Snapshot;
|
import com.usatiuk.objects.snapshot.Snapshot;
|
||||||
import com.usatiuk.objects.stores.WritebackObjectPersistentStore;
|
import com.usatiuk.objects.stores.WritebackObjectPersistentStore;
|
||||||
import com.usatiuk.utils.AutoCloseableNoThrow;
|
import com.usatiuk.utils.AutoCloseableNoThrow;
|
||||||
|
import com.usatiuk.utils.DataLocker;
|
||||||
import io.quarkus.logging.Log;
|
import io.quarkus.logging.Log;
|
||||||
import io.quarkus.runtime.StartupEvent;
|
import io.quarkus.runtime.StartupEvent;
|
||||||
import jakarta.annotation.Priority;
|
import jakarta.annotation.Priority;
|
||||||
@@ -27,9 +28,9 @@ public class JObjectManager {
|
|||||||
WritebackObjectPersistentStore writebackObjectPersistentStore;
|
WritebackObjectPersistentStore writebackObjectPersistentStore;
|
||||||
@Inject
|
@Inject
|
||||||
TransactionFactory transactionFactory;
|
TransactionFactory transactionFactory;
|
||||||
@Inject
|
|
||||||
LockManager lockManager;
|
|
||||||
private boolean _ready = false;
|
private boolean _ready = false;
|
||||||
|
private final DataLocker _objLocker = new DataLocker();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
_preCommitTxHooks = List.copyOf(CDI.current().select(PreCommitTxHook.class).stream().sorted(Comparator.comparingInt(PreCommitTxHook::getPriority)).toList());
|
_preCommitTxHooks = List.copyOf(CDI.current().select(PreCommitTxHook.class).stream().sorted(Comparator.comparingInt(PreCommitTxHook::getPriority)).toList());
|
||||||
@@ -162,7 +163,7 @@ public class JObjectManager {
|
|||||||
for (var key : toLock) {
|
for (var key : toLock) {
|
||||||
if (tx.knownNew().contains(key))
|
if (tx.knownNew().contains(key))
|
||||||
continue;
|
continue;
|
||||||
var lock = lockManager.lockObject(key);
|
var lock = _objLocker.lock(key);
|
||||||
toUnlock.add(lock);
|
toUnlock.add(lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
package com.usatiuk.objects.transaction;
|
|
||||||
|
|
||||||
import com.usatiuk.objects.JObjectKey;
|
|
||||||
import com.usatiuk.utils.AutoCloseableNoThrow;
|
|
||||||
import com.usatiuk.utils.DataLocker;
|
|
||||||
import jakarta.annotation.Nonnull;
|
|
||||||
import jakarta.annotation.Nullable;
|
|
||||||
import jakarta.inject.Singleton;
|
|
||||||
|
|
||||||
@Singleton
|
|
||||||
public class LockManager {
|
|
||||||
private final DataLocker _objLocker = new DataLocker();
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public AutoCloseableNoThrow lockObject(JObjectKey key) {
|
|
||||||
return _objLocker.lock(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public AutoCloseableNoThrow tryLockObject(JObjectKey key) {
|
|
||||||
return _objLocker.tryLock(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -19,10 +19,6 @@ import java.util.*;
|
|||||||
public class TransactionFactoryImpl implements TransactionFactory {
|
public class TransactionFactoryImpl implements TransactionFactory {
|
||||||
@Inject
|
@Inject
|
||||||
WritebackObjectPersistentStore writebackObjectPersistentStore;
|
WritebackObjectPersistentStore writebackObjectPersistentStore;
|
||||||
@Inject
|
|
||||||
LockManager lockManager;
|
|
||||||
@ConfigProperty(name = "dhfs.objects.transaction.never-lock")
|
|
||||||
boolean neverLock;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TransactionPrivate createTransaction() {
|
public TransactionPrivate createTransaction() {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ dhfs.objects.lru.print-stats=false
|
|||||||
dhfs.objects.lock_timeout_secs=15
|
dhfs.objects.lock_timeout_secs=15
|
||||||
dhfs.objects.persistence.files.root=${HOME}/dhfs_default/data/objs
|
dhfs.objects.persistence.files.root=${HOME}/dhfs_default/data/objs
|
||||||
dhfs.objects.persistence.snapshot-extra-checks=false
|
dhfs.objects.persistence.snapshot-extra-checks=false
|
||||||
dhfs.objects.transaction.never-lock=true
|
|
||||||
dhfs.objects.last-seen.update=60
|
dhfs.objects.last-seen.update=60
|
||||||
dhfs.objects.last-seen.timeout=43200
|
dhfs.objects.last-seen.timeout=43200
|
||||||
quarkus.log.category."com.usatiuk.objects.iterators".level=INFO
|
quarkus.log.category."com.usatiuk.objects.iterators".level=INFO
|
||||||
|
|||||||
Reference in New Issue
Block a user