Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 17 for NewNSLock (0.53 sec)

  1. cmd/erasure-server-pool.go

    		break
    	}
    
    	return z, nil
    }
    
    func (z *erasureServerPools) NewNSLock(bucket string, objects ...string) RWLocker {
    	poolID := hashKey(z.distributionAlgo, "", len(z.serverPools), z.deploymentID)
    	if len(objects) >= 1 {
    		poolID = hashKey(z.distributionAlgo, objects[0], len(z.serverPools), z.deploymentID)
    	}
    	return z.serverPools[poolID].NewNSLock(bucket, objects...)
    }
    
    // GetDisksID will return disks by their ID.
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri May 03 20:08:20 GMT 2024
    - 80.5K bytes
    - Viewed (0)
  2. cmd/erasure-object.go

    	}
    
    	// This call shouldn't be used for anything other than metadata updates or adding self referential versions.
    	if !srcInfo.metadataOnly {
    		return oi, NotImplemented{}
    	}
    
    	if !dstOpts.NoLock {
    		lk := er.NewNSLock(dstBucket, dstObject)
    		lkctx, err := lk.GetLock(ctx, globalOperationTimeout)
    		if err != nil {
    			return oi, err
    		}
    		ctx = lkctx.Context()
    		defer lk.Unlock(lkctx)
    	}
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Sun May 05 16:56:21 GMT 2024
    - 77.2K bytes
    - Viewed (2)
  3. cmd/namespace-lock.go

    	return l.ctx
    }
    
    // Cancel function calls cancel() function
    func (l LockContext) Cancel() {
    	if l.cancel != nil {
    		l.cancel()
    	}
    }
    
    // newNSLock - return a new name space lock map.
    func newNSLock(isDistErasure bool) *nsLockMap {
    	nsMutex := nsLockMap{
    		isDistErasure: isDistErasure,
    	}
    	if isDistErasure {
    		return &nsMutex
    	}
    	nsMutex.lockMap = make(map[string]*nsLock)
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Mon Jun 05 23:56:35 GMT 2023
    - 9.2K bytes
    - Viewed (0)
  4. cmd/erasure-server-pool-rebalance.go

    			// its a new pool that can receive rebalanced data.
    			z.rebalMeta.PoolStats = append(z.rebalMeta.PoolStats, &rebalanceStats{})
    			ok = true
    		}
    	}
    	if ok {
    		lock := z.serverPools[0].NewNSLock(minioMetaBucket, rebalMetaName)
    		lkCtx, err := lock.GetLock(ctx, globalOperationTimeout)
    		if err != nil {
    			rebalanceLogIf(ctx, fmt.Errorf("failed to acquire write lock on %s/%s: %w", minioMetaBucket, rebalMetaName, err))
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 26 19:29:28 GMT 2024
    - 27.2K bytes
    - Viewed (0)
  5. cmd/namespace-lock_test.go

    	}
    }
    
    // Test lock race
    func TestNSLockRace(t *testing.T) {
    	t.Skip("long test skip it")
    
    	ctx := context.Background()
    
    	for i := 0; i < 10000; i++ {
    		nsLk := newNSLock(false)
    
    		// lk1; ref=1
    		if !nsLk.lock(ctx, "volume", "path", "source", "opsID", false, time.Second) {
    			t.Fatal("failed to acquire lock")
    		}
    
    		// lk2
    		lk2ch := make(chan struct{})
    		go func() {
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 23 18:58:53 GMT 2021
    - 3.1K bytes
    - Viewed (0)
  6. cmd/batch-rotate.go

    		return errInvalidEncryptionParameters
    	}
    	versioned := globalBucketVersioningSys.PrefixEnabled(srcBucket, srcObject)
    	versionSuspended := globalBucketVersioningSys.PrefixSuspended(srcBucket, srcObject)
    
    	lock := api.NewNSLock(r.Bucket, objInfo.Name)
    	lkctx, err := lock.GetLock(ctx, globalOperationTimeout)
    	if err != nil {
    		return err
    	}
    	ctx = lkctx.Context()
    	defer lock.Unlock(lkctx)
    
    	opts := ObjectOptions{
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Thu Apr 04 12:04:40 GMT 2024
    - 14.2K bytes
    - Viewed (0)
  7. cmd/object-handlers.go

    		writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrEmptyRequestBody), r.URL)
    		return
    	}
    
    	// Take read lock on object, here so subsequent lower-level
    	// calls do not need to.
    	lock := objectAPI.NewNSLock(bucket, object)
    	lkctx, err := lock.GetRLock(ctx, globalOperationTimeout)
    	if err != nil {
    		writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
    		return
    	}
    	ctx = lkctx.Context()
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Thu May 02 20:15:54 GMT 2024
    - 125.2K bytes
    - Viewed (0)
  8. cmd/erasure-multipart.go

    func (er erasureObjects) newMultipartUpload(ctx context.Context, bucket string, object string, opts ObjectOptions) (*NewMultipartUploadResult, error) {
    	if opts.CheckPrecondFn != nil {
    		// Lock the object before reading.
    		lk := er.NewNSLock(bucket, object)
    		lkctx, err := lk.GetRLock(ctx, globalOperationTimeout)
    		if err != nil {
    			return nil, err
    		}
    		rctx := lkctx.Context()
    		obj, err := er.getObjectInfo(rctx, bucket, object, opts)
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Sun Apr 28 17:53:50 GMT 2024
    - 43K bytes
    - Viewed (0)
  9. cmd/shared-lock.go

    })
    
    type sharedLock struct {
    	lockContext chan LockContext
    }
    
    func (ld sharedLock) backgroundRoutine(ctx context.Context, objAPI ObjectLayer, lockName string) {
    	for {
    		locker := objAPI.NewNSLock(minioMetaBucket, lockName)
    		lkctx, err := locker.GetLock(ctx, sharedLockTimeout)
    		if err != nil {
    			continue
    		}
    
    	keepLock:
    		for {
    			select {
    			case <-ctx.Done():
    				return
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Mon Feb 13 09:26:38 GMT 2023
    - 2.3K bytes
    - Viewed (0)
  10. cmd/erasure.go

    	// some may be local and some remote.
    	getEndpointStrings func() []string
    
    	// Locker mutex map.
    	nsMutex *nsLockMap
    }
    
    // NewNSLock - initialize a new namespace RWLocker instance.
    func (er erasureObjects) NewNSLock(bucket string, objects ...string) RWLocker {
    	return er.nsMutex.NewNSLock(er.getLockers, bucket, objects...)
    }
    
    // Shutdown function for object storage interface.
    Go
    - Registered: Sun May 05 19:28:20 GMT 2024
    - Last Modified: Fri Apr 26 06:32:14 GMT 2024
    - 16K bytes
    - Viewed (1)
Back to top