69 Commits

Author SHA1 Message Date
Benjamin Ramser
1f7777a4ad fix: start screen 2021-12-28 11:15:53 +01:00
Benjamin Ramser
407fd4c71c refactor: set log encoding early 2021-12-27 12:20:14 +01:00
Benjamin Ramser
20cc624918 feat: add option to cmd, add default config
feat: add zap logger

test: add additional

refactor: dont export logger, use set/get/build

fix: getter and benchmark

feat: extend server config with log configuration

fix: log config write

fix: log
2021-12-26 16:06:34 +01:00
tidwall
a2b874ab9d Add unix socket flag to usage 2021-09-07 05:53:01 -07:00
tidwall
a737a78d6f Add unix socket support 2021-09-07 05:51:15 -07:00
tidwall
fc4a627aa6 Use struct for server options 2021-09-06 08:55:13 -07:00
tidwall
991963268a Fix last merge 2021-07-10 19:32:21 -07:00
Oliver
30f7226705 add prometheus metrics endpoint 2021-05-13 21:14:04 -04:00
Sepehr Rafiee
72a9db084f add deprecation warning for depricated threads flag 2021-05-10 22:17:56 +04:30
tidwall
84a5120bc3 Fix tile38-cli output showing protocol size when piping
fixes #603
2021-03-30 08:59:25 -07:00
tidwall
6092f734e3 Better handle connection errors in tile38-cli
This commit fixes an issue with the tile38-cli where it will
continually print "Could not connect to Tile38..." when it was
unable to connect to the tile38-server.

It now cleanly prints the message only once.
2020-11-24 10:27:07 -07:00
Nikola Kovacs
8b271d1e0b
Fix typo in usage 2020-08-17 10:18:17 +02:00
tidwall
d819db5f8b Added MONITOR command
closes #571
2020-08-12 12:38:52 -07:00
tidwall
66af8ab094 Fix tile38-cli from freezing with non-quoted geojson
This commit addresses an issue that began on 1.19 where the
deprecated tile38 native line protocol was removed in favor of
the more robust resp protocol. In turn the tile38 cli required
that all args are quoteless or quote escaped.

The commit ensures that the server returns the correct error
message and also loosens the strictness of the need for quoted
arguments in the tile38-cli.

fixes #513
2019-12-11 11:08:33 -07:00
tidwall
9d2753378e Fix infinite loop on connection failure 2019-11-03 13:29:33 -07:00
tidwall
f9ea3f1e13 Fixed tile38-cli not propertly handling quotes
closes #500
2019-10-28 13:25:08 -07:00
tidwall
3ae59274e3 Removed evio option 2019-04-26 11:50:49 -07:00
tidwall
e1a71453c7 Do not ignore SIGHUP
Use the `--nohup` flag or `nohup` command.
2019-03-19 13:49:35 -07:00
tidwall
e47540ba09 Added auth flag 2019-03-14 12:05:51 -07:00
tidwall
87f57b0cd9 Added pprof flags 2019-03-14 09:24:18 -07:00
tidwall
01112c9a4f Ignore SIGHUP signals 2019-03-12 08:40:27 -07:00
tidwall
06b0d8e09e Allow for formatted json 2018-11-26 16:42:35 -07:00
tidwall
737561fa8b Fix version not being set at build, close #386 2018-11-15 13:45:55 -07:00
tidwall
7721fb8b8e Added substract flag to benchmarks 2018-11-11 09:05:26 -07:00
tidwall
090a05735f Added az benchmark test 2018-11-11 09:05:26 -07:00
tidwall
545e9316b0 Fix lua scripts 2018-11-11 09:05:26 -07:00
tidwall
44edf52f97 Updated benchmark tool 2018-11-11 09:05:11 -07:00
tidwall
372744b192 More hacking vendored circle.go 2018-11-11 09:04:00 -07:00
tidwall
161c6faff9 Added evio flag 2018-11-11 09:03:47 -07:00
tidwall
933f243c6c Code cleanup 2018-11-11 09:03:47 -07:00
tidwall
555e47036c Replaced net package with evio
- Added threads startup flag
- Replaced net package with evio
- Refactored controller into server
2018-10-28 15:51:47 -07:00
tidwall
6257ddba78 Faster point in polygon / GeoJSON updates
The big change is that the GeoJSON package has been completely
rewritten to fix a few of geometry calculation bugs, increase
performance, and to better follow the GeoJSON spec RFC 7946.

GeoJSON updates

- A LineString now requires at least two points.
- All json members, even foreign, now persist with the object.
- The bbox member persists too but is no longer used for geometry
  calculations. This is change in behavior. Previously Tile38 would
  treat the bbox as the object's physical rectangle.
- Corrections to geometry intersects and within calculations.

Faster spatial queries

- The performance of Point-in-polygon and object intersect operations
  are greatly improved for complex polygons and line strings. It went
  from O(n) to roughly O(log n).
- The same for all collection types with many children, including
  FeatureCollection, GeometryCollection, MultiPoint, MultiLineString,
  and MultiPolygon.

Codebase changes

- The pkg directory has been renamed to internal
- The GeoJSON internal package has been moved to a seperate repo at
  https://github.com/tidwall/geojson. It's now vendored.

Please look out for higher memory usage for datasets using complex
shapes. A complex shape is one that has 64 or more points. For these
shapes it's expected that there will be increase of least 54 bytes per
point.
2018-10-13 04:30:48 -07:00
tidwall
5ad27e7b5e Removed KML Support 2018-10-13 03:29:44 -07:00
tidwall
7e16ac536b Added flag for specifying event queue path
Use the `--queuefilename path` command flag

For full in-memory queue use `--queuefilename :memory:`
2018-09-04 12:26:10 -07:00
tidwall
fb5c5fb244 1.13.0 2018-08-29 14:20:07 -06:00
Josh Baker
e00cf4e187 Removed link 2018-06-16 11:40:22 -07:00
Leihb
33b354d83d handle Ctrl-D 2018-06-01 19:06:59 +08:00
Josh Baker
7e9871bb69 Refactor project layout
Move internal and support packages to pkg directory
2018-04-19 08:43:32 -07:00
Josh Baker
8f3ddd9e75 Add padding to menu 2018-04-12 17:18:59 -07:00
Josh Baker
e45530c3b2 Add patreon link 2018-04-12 17:03:44 -07:00
Josh Baker
11b42c020b Add flags to disable AOF or to use a custom path
New server flags:
  --appendonly     yes/no
  --appendfilename path

Please note that leaders that have disabled AOF cannot be followed.
2018-04-11 10:53:36 -07:00
Alex Roitman
bfa4bbe237 Lua (#225)
* Add periodic pruning of the lua state pool
2017-10-05 14:13:02 -07:00
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
d3329f07aa discard quiet logs 2017-10-03 08:53:09 -07:00
Josh Baker
8d5f447e3e updated logger 2017-10-03 08:49:33 -07:00
Josh Baker
d0f4f2ef73 added geoadd test for compare 2017-08-09 15:25:40 -07:00
Josh Baker
91c44a5eef distinct benchmark types
the -t flag now supports set-point, set-rect, and set-string
2017-08-06 17:39:35 -07:00
Josh Baker
6008a78281 vendored redbench 2017-03-31 08:31:33 -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
b1c76d7d22 cli auto reconnect 2017-03-30 03:41:52 -07:00