Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
zk-ultralight
Advanced tools
An even simpler library for locking with ZooKeeper based on node-zookeeper-client
This locking library is based on the ZooKeeper lock recipe with one key difference: the lock nodes it creates are ephemeral.
The ZK lock recipe recommends negotiating for the lock under the requested lock node with child nodes like _locknode_/guid-lock-<sequence number>
. However, ephemeral nodes may not have children, and non-ephemeral state reduces zookeeper's partition resilience. The operators of applications with a large number of unique locks, especially a monotonically increasing number of locks (as when locking on a unique timestamp), will suffer zookeeper issues in production. zk-ultralight
is meant to provide locking with less production impact.
function somethingAsyncHappens(callback) {
var cxn = zkultra.getCxn(settings.ZOOKEEPER_URLS);
async.series([
cxn.lock.bind(cxn, '/some/lock/i/need', process.title +'-'+ process.pid),
someAsyncAction,
cxn.unlock.bind(cxn, '/some/lock/i/need')
], callback);
};
bin/non-ephemerals.js
prints a JSON array of the non-ephemeral nodes (which have a mtime
less than --since
milliseconds in the past) in your zookeeper cluster to stdout. You can run it in the vm after running the test suite to see the non-ephemerals left after the tests:
$ bin/non-ephemerals.js /
[
"/plum",
"/dog",
"/foo/bar",
"/plumber",
"/111",
"/apple",
"/cat"
]
Default for --since
is two weeks, so this example shows only znodes with mtime
s in the last two weeks.
bin/rm-znodes.js
accepts a JSON array of znodes on stdin and removes them from your zookeeper cluster. The usual usage will be bin/non-ephemerals.js / | bin/rm-znodes.js
to remove all not-recently-used non-ephemeral nodes without children. Sequential runs will eventually remove all znode subtrees which do not contain ephemeral nodes.
The Vagrantfile ships a vm with a running zookeeper instance, which is all you need to run tests.
npm test
Optionally, the zookeeper server and port can be given with:
ZK=$(docker-machine ip zk):2181 npm run test
npm run-script lint
npm run-script coverage
Library is distributed under the Apache license.
FAQs
An even simpler library for locking with ZooKeeper based on node-zookeeper-client
We found that zk-ultralight demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.