Commit Graph

44 Commits

Author SHA1 Message Date
Alex Roitman b55300b729 Lua scripting feature. (#224)
* Start on lua scripting

* Implement evalsha, script load, script exists, and script flush

* Type conversions from lua to resp/json.
Refactor to make luastate and luascripts persistent in the controller.

* Change controller.command and all underlying commands to return resp.Value.
Serialize only during the ouput.

* First stab at tile38 call from lua

* Change tile38 into tile38.call in Lua

* Property return errors from scripts

* Minor refactoring.  No locking on script run

* Cleanup/refactoring

* Create a pool of 5 lua states, allow for more as needed. Refactor.

* Use safe map for scripts.  Add a limit for max number of lua states.  Refactor.

* Refactor

* Refactor script commands into atomic, read-only, and non-atomic classes.
Proper locking for all three classes.
Add tests for scripts

* More tests for scripts

* Properly escape newlines in lua-produced errors

* Better test for readonly failure

* Correctly convert ok/err messages between lua and resp.
Add pcall, sha1hex, error_reply, status_reply functions to tile38 namespace in lua.

* Add pcall test. Change writeErr to work with string argument

* Make sure eval/evalsha never attempt to write AOF

* Add eval-set and eval-get to benchmarks

* Fix eval benchmark tests, add more

* Improve benchmarks

* Optimizations and refactoring.

* Add lua memtest

* Typo

* Add dependency

* golint fixes

* gofmt fixes

* Add scripting commands to the core/commands.json

* Use ARGV for args inside lua
2017-10-05 08:20:40 -07:00
Josh Baker 26d0083faf Update vendoring to use golang/dep
commit a1a37d335a8e89ac89d85c00c8585d3fc02e064a
Author: Josh Baker <joshbaker77@gmail.com>
Date:   Thu Oct 5 07:36:54 2017 -0700

    use symlink instead of copy

commit 96399c2c92620f633611c778e5473200bfd48d41
Author: Josh Baker <joshbaker77@gmail.com>
Date:   Thu Oct 5 07:19:26 2017 -0700

    use dep for vendoring
2017-10-05 07:40:19 -07:00
Josh Baker 9cdbea19c1 1.9.1 2017-08-16 10:02:56 -07:00
Josh Baker 14cc6cedf7 require Go 1.7 2017-07-24 11:20:10 -07:00
Josh Baker 3b6eaa3770 1.9.0 2017-04-13 07:01:14 -07:00
Josh Baker 13235093c5 New tile38-benchmark tool
The tile38-benchmark tool is a new addition to the Tile38 suite alongside
tile38-server and tile38-cli. It's modeled after redis-benchmark with
matching input flags and output formatting.

It tests the common commands PING, GET, SET, and NEARBY. More commands
may be added later.

(mention #54)
2017-03-30 14:14:44 -07:00
Josh Baker 0e692a8196 1.8.0 2017-02-21 11:04:33 -07:00
Josh Baker af0104da0c 1.7.5 2017-01-13 10:25:41 -07:00
Josh Baker 34ae007700 1.7.0 2016-12-29 11:54:35 -07:00
Josh Baker 78a959ce96 1.6.0 2016-12-11 16:27:33 -07:00
Josh Baker a664bade48 added black-box testing 2016-12-02 09:14:34 -07:00
Josh Baker 7590498c4f 1.5.4 2016-11-17 09:22:17 -07:00
Josh Baker 3b209723ef 1.5.3 2016-11-16 12:31:42 -07:00
Josh Baker a38228cba0 fix #70, 1.5.2 2016-10-20 17:47:15 -07:00
Josh Baker b71cd3ef49 1.5.1 2016-10-19 14:06:55 -07:00
Josh Baker c425d76374 Z optimized, fixed #61 2016-10-03 13:03:20 -07:00
Josh Baker 3b99a6276e grpc support 2016-09-11 21:25:09 -07:00
Josh Baker b8487948fa 1.4.2 2016-09-09 06:15:29 -07:00
Josh Baker 53e3326d75 fixed window build error. bump 1.4.1 2016-08-26 14:18:35 -07:00
Josh Baker 541f824066 1.3.0 2016-07-22 11:26:08 -07:00
Josh Baker 0d0ebf8c7f added .exe to windows binaries 2016-07-22 11:22:55 -07:00
olevole a29454fbbf Add FreeBSD packaging. Tested on FreeBSD 10,11 x86_64 2016-06-08 21:58:10 +03:00
Josh Baker b5cf967fba 1.2.0 2016-05-24 16:03:54 -07:00
Josh Baker cd217f05d2 fixes #13, invalid object keyword, panic on missing key 2016-04-19 05:38:02 -07:00
Josh Baker 11c5cd39db bump version 2016-04-18 13:28:53 -07:00
Josh Baker 08e1d39818 bump version 2016-04-12 18:34:37 -07:00
Josh Baker 3f2f23dd4f removed v from package name 2016-04-03 08:43:31 -07:00
Josh Baker 9060ed68d6 package builder 2016-04-03 08:35:15 -07:00
Josh Baker c0836dd1ac added coverage 2016-04-03 07:59:23 -07:00
Josh Baker 479f17fc8e 1.1.0 2016-04-02 15:32:13 -07:00
Josh Baker 572d0776bb bump version 2016-03-24 12:35:02 -07:00
Josh Baker 865bbf7d19 allow for testing go:tip 2016-03-17 12:15:35 -07:00
Josh Baker d178133383 go devel support 2016-03-17 12:02:10 -07:00
Josh Baker 3cd36dfaa2 verify go installation. fixes #6 2016-03-17 11:55:50 -07:00
Josh Baker 3ed011f319 Tile38 1.0.4. 2016-03-13 16:39:31 -07:00
Josh Baker 7ab4051af3 allow non-git make 2016-03-13 16:39:04 -07:00
Josh Baker 875ba17cee Tile38 1.0.3. 2016-03-13 04:29:29 -07:00
Josh Baker 4ef89db63b do not gen commands 2016-03-08 06:21:12 -07:00
Josh Baker 162528bdeb fixed ldflags 2016-03-08 06:12:39 -07:00
Josh Baker 95125e0a04 allow optional protected-mode 2016-03-08 06:11:03 -07:00
Josh Baker 4f0d65f184 core/gen 2016-03-07 17:37:16 -07:00
Josh Baker f97dc30c65 fix #6 test build error 2016-03-07 06:44:38 -07:00
Josh Baker 9be0218980 support go 1.5 2016-03-04 16:28:32 -07:00
Josh Baker 4fc58f7f5c first commit 2016-03-04 16:08:16 -07:00