Commit Graph

175 Commits

Author SHA1 Message Date
Josh Baker d817814200 Optimized pipelining
Performance gains for pipelining commands over the network.
Using tile38-benchmark and the -P flag it's possible to see 2x-10x boost
in requests per second.
2017-09-30 19:34:25 -07:00
Josh Baker 1780badf1b isolated expires list mutex 2017-09-30 11:06:10 -07:00
Josh Baker a99613fe23 removed locks from memory bg operations 2017-09-30 08:16:34 -07:00
Josh Baker 4a3800596e added dev sleep command 2017-09-30 08:11:10 -07:00
Josh Baker 770c6ad322 atomic clients 2017-09-30 08:00:29 -07:00
Josh Baker 0db57db1f1 moved follow counter to atomic 2017-09-30 07:34:08 -07:00
Josh Baker 920dc3adb6 atomic ints/bools 2017-09-30 07:29:03 -07:00
Josh Baker 99307da6ea isolated config locks 2017-09-30 06:56:52 -07:00
Josh Baker d8f11354df wip config 2017-09-29 18:11:05 -07:00
Josh Baker b1da3a1ea5 Merge branch 'mqtt-endpoint' of https://github.com/m1ome/tile38 into m1ome-mqtt-endpoint 2017-09-04 07:22:25 -07:00
Josh Baker ff4db894a2 scan count with wherein, fixes #217 2017-09-04 07:20:03 -07:00
Josh Baker cf33e0f2af omit defaults on rewrite 2017-08-24 14:24:11 -07:00
Josh Baker 730502d99d keepalive default of 300 seconds 2017-08-24 14:15:07 -07:00
Alex Roitman c8ed7caa2e Add wherein command 2017-08-23 13:13:12 -07:00
Josh Baker bb7b6411b8 Close file aof before renaming for windows
Windows does not allow for renaming files that are use.

fixes #211

thanks @icewukong
2017-08-10 18:34:22 -07:00
Josh Baker cd057088d9 index optimizations 2017-08-10 17:32:40 -07:00
Josh Baker 81ef8218fb lifted limit cap 2017-08-10 13:31:36 -07:00
Josh Baker cb062bded4 allow reads on disconnected followers (#121) 2017-08-04 05:28:35 -07:00
Josh Baker e2357eac3e empty results when key not found, #207 2017-08-03 04:01:07 -07:00
Josh Baker aafae38412 endpoint send trace for #208 2017-08-03 03:05:24 -07:00
Josh Baker 1ccaf71375 add echo command (#201) 2017-07-27 09:10:33 -07:00
Josh Baker 90f87bc3fb knn overscan ordering (#195) 2017-07-25 20:23:21 -07:00
Josh Baker 3fae3f70eb allow KNN cursors 2017-07-24 08:42:12 -07:00
Josh Baker 300635727a apply LIMIT after WHERE clause, fix #199 2017-07-24 08:26:48 -07:00
Josh Baker 29634f86ba Omit fields for Resp when NOFIELDS is used. (#198)
fixes #198
2017-07-21 15:56:29 -07:00
Josh Baker f9fa48db21 use redis-style expires
Updated the Tile38 expires to match the Redis implmentation at
https://redis.io/commands/expire#how-redis-expires-keys.

It now supports passive and active expires with sub-millisecond
accuracy.

This addresses issue #156
2017-03-29 12:50:04 -07:00
Pavel Makarenko ce8da8e74b Merged AMQP endpoint 2017-03-23 10:27:23 +03:00
Pavel Makarenko 710ed96850 AMQP webhook support (#159) 2017-03-15 10:45:35 -07:00
Pavel Makarenko cf8afa3617 Added QoS and retained flags 2017-03-08 00:39:49 +03:00
Pavel Makarenko 9e0c8fc28e Added MQTT endpoint 2017-03-08 00:15:18 +03:00
Pavel Makarenko 790c660455 Kafka - Support in webhooks. (#152)
* Added sarama in vendor dependency

* Fixed Sarama deps

* Added Kafka endpoint support
2017-03-06 13:18:58 -07:00
Josh Baker d88f4594ac distances on geofence, fixes #141 2017-02-24 06:25:50 -07:00
Josh Baker 374d199d07 detect inside on enter, fixes #150 2017-02-24 06:03:11 -07:00
Josh Baker a5b8621557 Merge branch 'master' of https://github.com/tidwall/tile38 2017-02-12 07:09:46 -07:00
Josh Baker 033d0d333e redundant condition 2017-02-12 07:06:56 -07:00
Mike Kabischev a4705cee23 remove mutex from HTTP endpoint (#148)
* fix leaking http connections

* remove unused fields

* remove mutex from HTTPEndpointConn
2017-02-10 12:09:07 -07:00
Mike Kabischev 06175932d2 Fix leaking http connections (#147)
* fix leaking http connections

* remove unused fields
2017-02-10 06:55:01 -07:00
Mike Kabischev ed300d7032 remove unused fields 2017-02-10 16:32:46 +03:00
mike kabischev 009c52d365 Merge remote-tracking branch 'upstream/master' 2017-02-10 16:20:12 +03:00
mike kabischev 2ddb9375f6 fix leaking http connections 2017-02-10 16:17:57 +03:00
Josh Baker 22f1b1bd81 resend on expired endpoint 2017-02-10 05:27:02 -07:00
Josh Baker 56e0bac24c TCP Keepalives
Enabled TCP keepalive packets to determine if the connection is still
valid, and terminate if needed. It also helps with maintaining idle
connections.

Default to 300 seconds and can be changed by:

    CONFIG SET keepalive 300

addresses #145: clients not being cleaned up properly
2017-02-09 10:01:59 -07:00
mike kabischev 237d4b2284 fix #143 broken hook data 2017-02-08 14:16:54 +03:00
Josh Baker 04290ec535 KNN results for NEARBY command
This commit includes the ability to search for k nearest neighbors using
a NEARBY command. When the LIMIT keyword is included and the 'meters'
param is excluded, the knn algorithm will be used instead of the
standard overlap+haversine algorithm.

   NEARBY fleet LIMIT 10 POINT 33.5 -115.8

This will find the 10 closest points to 33.5,-115.8.

closes #136, #130, and #138.
ping @tomquas, @joernroeder, and @m1ome
2017-01-30 16:41:12 -07:00
Josh Baker 49e1fcce7a Added CLIENT command
CLIENT LIST
CLIENT SETNAME name
CLIENT GETNAME
CLIENT KILL [ip:port] [ID client-id] [ADDR ip:port]

The CLIENT LIST command returns

  One client connection per line (separated by LF)
  Each line is composed of a succession of property=value
  fields separated by a space character.

  id: an unique 64-bit client ID
  addr: address/port of the clien
  age: total duration of the connection in seconds
  idle: idle time of the connection in seconds
  name: the name of the client

Suggested by @UriHendler, closes #139
2017-01-30 11:35:42 -07:00
Josh Baker 6b92d923d8 added debug log 2017-01-21 17:10:43 -07:00
w1n2k 69b62e97e3 Lock refactoring 2017-01-20 12:09:39 +03:00
w1n2k f0fb28c68d Implemented hot swap of autogc 2017-01-19 19:00:14 +03:00
w1n2k e65e5842f4 Implementing autogc configuration support 2017-01-19 11:23:42 +03:00
Josh Baker 627555cdc8 Merge branch 'memoptz' 2017-01-13 10:03:02 -07:00