UNPKG

gridfs-locks

Version:

Distributed read/write locking based on MongoDB, designed to make GridFS safe for concurrent access

93 lines (53 loc) 3.19 kB
### 1.3.4 - Added Travis CI automated Testing - Updated npm dependencies - Fixed license ID in package file ### 1.3.3 - Fixed improper emitted errors in `lock.renewLock()` caused by race conditions with lock release / remove ### 1.3.2 - Fixed race issue when mutliple clients simultaneously create new LockCollections backed by the same mongodb server. ### 1.3.1 - Fixed failing unit test case - Updated mongodb driver version ### 1.3.0 - Added support for the new node.js 2.0.x native MongoDB driver - Write Locks now clear the `write_req` flag when released so that chained writes won't block all readers for long periods of time. - Updated unit test dependencies ### 1.2.4 - Updated version test to recognize mongodb 3.0 as supporting mongo 2.6 queries ### 1.2.3 - Fixed issue #3, failing unit tests under Mongodb 2.4.x, et al. ### 1.2.2 - Fixed issue #2, a bug that blocked all read locks when a program aborts with an outstanding write lock request, under MongoDB 2.6 only. Thanks to @cearl for reporting. ### 1.2.1 - Fixed errors stemming from improper checking of the mongo error code in an emitted error object. - Ensure that lockExpiration >= pollingInterval, or expirations may become instantaneous ### 1.2.0 - Introduced independant code paths depending on whether a lock collection is hosted on a MongoDB 2.4 or 2.6+ server. Use of one path or the other is transparent to the user. - The benefits for MongoDB 2.6 first introduced in v1.1.0 are now back. Support for Mongo 2.4 remains as it was prior to v1.1.0. Both server version use the same gridfs-locks API and have the same functionality, but the MongoDB 2.6 code is simpler and should be more performant, mostly through a reduction in the number of queries used, especially under heavy locking load. ### 1.1.2 - Revert completely to use of MongoDB 2.4.x only update modifiers to maintain compatibility with mongo 2.4.x - The more efficient MongoDB 2.6 version lives in the mongodb_2.6 branch for now until if can be cleanly included conditionally ### 1.1.1 - Revert from use of MongoDB 2.6 only $currentDate update modifier to maintain compatibility with mongo 2.4.x ### 1.1.0 - Refactoring of mongo queries to make many lock operations significantly faster - Fixed an issue when multiple read lock holders hold locks with different expiration time lengths, and a lock with a shorter expiration renews and overwrites the later expiring lock's expiration time in the DB. ### 1.0.3 - Fixed typos in README.md code snippets ### 1.0.2 - Updated README.md code blocks to correct formatting glitches on npmjs.org ### 1.0.1 - Fixed issue when multiple simultaneous readers with different lockExpiration values could cause a reader lock to expire prematurely ### 1.0.0 - gridfs-locks now exclusively uses an event-emitter interface. See Readme for more information. ### 0.0.6 - Documentation fixes - Removed console.log() ### 0.0.5 - Added 60 Unit Tests - Method Parameters are now extensively validated - Callback is now optional for Lock.releaseLock(); throws on error when no callback. - Testing hooks added to obtainWriteLock() ### 0.0.1 - 0.0.4 Initial revision and documentation fixes.