Giter Site home page Giter Site logo

Comments (3)

madelson avatar madelson commented on July 18, 2024

HI @filoe, thanks for your interest in the library.

Is this suitable for distributed azure applications?

The SqlDistributedLock class and related SQL-based classes are designed for use in distributed applications. These classes leverage a central SQLServer's native sp_getapplock mechanism to coordinate locking between application threads and processes hosted on different servers.

While I haven't personally used the library on Azure, I know that at least one other has done so successfully (see this issue). One peculiarity of SqlAzure is it's aggressive timing out of idle connections. To better support this, version 1.3 of the library added a special connection management strategy for Azure to keep connection alive while the lock is held.

What's about the performance of this library? Let's say compared to azure storage leases.

In my experience the performance is quite good. The actions to acquire and release a lock require one SQL query each which is typically very fast (unless, of course, it needs to wait to acquire a lock that someone else is holding). The library offers async acquire functions so that threads are not blocked while waiting for a lock.

That said, I haven't worked with Azure leases so I can't offer a direct comparison. If performance is a concern, I would recommend testing each approach under realistic workloads and levels of concurrency to see which one makes sense for your use-case.

from distributedlock.

filoe avatar filoe commented on July 18, 2024

Thanks for fast and detailed answer.
I've got no experience in the field of large business applications.
Do you know whether it still works if I use georeplication on azure for the database?
Is it still guaranteed that all instances (accross the world - accessing different instances of the database) are synchronized by the locking?

from distributedlock.

madelson avatar madelson commented on July 18, 2024

@filoe I don't have experience with Azure so I definitely can't say for sure. However, I think it's unlikely that locks would replicate. The nature of locking means that there must be realtime coordination between all parties involved; this doesn't work in an "eventually consistent" system. You'll have to try it and see!

from distributedlock.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.