-
Notifications
You must be signed in to change notification settings - Fork 21
New msgpack extensions, extended connection options, bug fixes #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Now supports 3 new msgpack extensions: UUID, Datetime, Decimal - Connection object accepts all options of net.createConnection() - Extended readme documentation
- Updated Readme docs - New nonWritableHostPolicy and related options, which improves a high availability capability without any 3rd parties - Ability to disable the offline queue - Now Unix-sockets can be passed as string in first argument of connection constructor and recognized correcty
Fixed 'nonWritableHostPolicy' option description.
Beautified options
Sorry, but |
Will inspect this. What is the reason to use the Denque? The whole functionality of this module could be implemented with a native Array's methods like push / pop / shift / splice, which are 2 times faster in my own benchmarks and available since node 0.10.0 version |
- Fixed compatability with old versions of Node.JS - Little fix of 'test' suite in order to pass it with new Unix socket support - selectCb() parameters now can accept spaceId and indexId as Strings, not only numbers
Renamed to 'msgpack-extensions' for clarity
Fixed it |
- Some performance improvements by caching internal values. - TLS (SSL) support. - New `pipeline()`+`exec()` methods kindly borrowed from the [ioredis](https://github.com/redis/ioredis?tab=readme-ov-file#pipelining), which lets you to queue some commands in memory and then send them simultaneously to the server in a single (or several, if request body is too big) network call(s). Thanks to the Tarantool, which [made this possible](https://www.tarantool.io/en/doc/latest/dev_guide/internals/iproto/format/#packet-structure). This way the performance is significantly improved by 500-1600% - you can check it by yourself running `npm run benchmark-read` or `npm run benchmark-write`. Note that this feature doesn't replaces the Transaction model, which has some level of isolation. - Changed `const` declaration to `var` in order to support old Node.JS versions.
@sergos @oleg-jukovec any news? |
Use `.findPipelineError(pipeline_answer)` to get the first error and `.findPipelineErrors()` to get an array of all occured errors.
As of today tests are passing, no more questions from me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Co-authored-by: Michael Filonenko <filonenko.mikhail@gmail.com>
net.createConnection()
, including Unix socket path.nonWritableHostPolicy
and related options, which improves a high availability capabilities without any 3rd parties.packInteger()
to solve this.selectCb()
now also acceptsspaceId
andindexId
as their String names, not only their IDs.pipeline()
+exec()
methods kindly borrowed from the ioredis, which lets you to queue some commands in memory and then send them simultaneously to the server in a single (or several, if request body is too big) network call(s). Thanks to the Tarantool, which made this possible.This way the performance is significantly improved by 500-1600% - you can check it yourself by running
npm run benchmark-read
ornpm run benchmark-write
.Note that this feature doesn't replaces the Transaction model, which has some level of isolation.
const
declaration tovar
in order to support old Node.JS versions.