Commit Graph

175 Commits

Author SHA1 Message Date
Steven Allen 4e84ab6c81 gx publish 0.9.12 2018-04-16 14:13:49 +09:00
vyzo 7f3ecddf94
Merge pull request #72 from libp2p/fix/issue-69
Don't block the event loop because of slow subscriptions
2018-03-07 08:06:55 +02:00
vyzo 1538e0d417 downgrade dropped message logging to Infof 2018-03-07 07:57:42 +02:00
vyzo d5d886d853 Don't block the event loop if the subscriber is too slow
Closes #69
2018-03-07 07:57:42 +02:00
Steven Allen e48c6f5d4a
Merge pull request #71 from libp2p/gx/publish
gx publish 0.9.11
2018-03-01 21:14:33 +00:00
vyzo cbeeb4e194 gx publish 0.9.11 2018-03-01 23:05:43 +02:00
vyzo ceff712aba
Merge pull request #70 from libp2p/feat/remove-validator
UnregisterTopicValidator for removing topic validators
2018-02-28 22:35:58 +02:00
vyzo ed1dd154b6 add test for UnregisterTopicValidator 2018-02-28 22:26:42 +02:00
vyzo 399bcb25a6 UnregisterTopicValidator for removing topic validators 2018-02-28 22:14:54 +02:00
Steven Allen 89c19c0b98 gx publish 0.9.10 2018-01-31 18:54:35 -08:00
vyzo d553fb800c
Merge pull request #60 from libp2p/feat/modularization
Modularized PubSub Routing
2018-01-30 20:59:47 +02:00
Steven Allen b595000d49 gx publish 0.9.9 2018-01-27 17:47:38 -08:00
vyzo 327e72d4fd demote erros per #62 2018-01-27 09:54:57 +02:00
vyzo e7b1fe6e75 modularized pubsub; Flooding is just a routing method. 2018-01-27 09:54:57 +02:00
vyzo c036ca0c01
Merge pull request #62 from libp2p/feat/demote-errors
demote errors/warnings to info
2018-01-27 09:47:23 +02:00
Steven Allen 098f1d5819 demote errors/warnings to info
* dropped/killed connections are not errors.
* handleIncomingRPC/publishMessage do not return errors.
2018-01-26 15:00:47 -08:00
Steven Allen c82e67dcd3
Merge pull request #55 from libp2p/feat/validators
Message Validators
2018-01-24 06:03:20 +00:00
Steven Allen 217e5307cb gx publish 0.9.8 2018-01-19 20:52:58 -08:00
vyzo 3f4fc21228 fix comment, subscriptions don't have validators any more. 2018-01-18 20:09:09 +02:00
vyzo bbdec3fda2 implement per topic validators 2018-01-18 19:12:36 +02:00
Raghav Gulati 99a4f9e5ed Increase timeout in TestSubscribeMultipleTimes
Increase delay to 10ms; makes go test -race happy.
2018-01-16 11:46:33 +02:00
vyzo fceb00d234 improved comment about global validation throttle 2018-01-14 02:24:13 +02:00
vyzo cb365a5fee remove faulty tests 2018-01-14 02:01:42 +02:00
vyzo f1be0f1296 don't spawn an extra goroutine for the validator context 2018-01-13 22:14:01 +02:00
vyzo 145a84a33b use a single channel for all validation results 2018-01-13 22:02:28 +02:00
vyzo f6081fb061 pushMsg should just call maybePublishMessage when it doesn't need validation 2018-01-13 21:56:57 +02:00
vyzo 473a5d2873 sendMsg should have a buffer 2018-01-13 21:39:35 +02:00
vyzo edcb251ad1 install global validation throttle, use reasonable defaults. 2018-01-13 21:15:40 +02:00
vyzo 856a25c8eb WithMaxConcurrency is WithValidatorConcurrency
and defaultMaxConcurrency is defaultValidateConcurrency.
2018-01-13 20:56:03 +02:00
vyzo bf2151ba5f the sendMsg channel should yield pointers for consistency 2018-01-13 20:47:28 +02:00
vyzo 5ef13c764e don't always spawn a goroutine for sending a new message 2018-01-13 20:11:32 +02:00
vyzo c95ed28496 add validation context for cancelation on aborts 2018-01-13 18:34:00 +02:00
vyzo fba445bc6d code cosmetics
reword pushMsg for less indentation nesting.
2018-01-13 14:44:33 +02:00
vyzo 982c4de960 per subscription validation throttle and more efficient dispatch logic 2018-01-13 14:31:34 +02:00
vyzo d2f6a0050f WithValidator and WithValidatorTimeout are subscription options 2018-01-13 12:33:03 +02:00
vyzo 4241241031 fix dangling maxConcurrency reference 2018-01-13 12:24:31 +02:00
keks 88274db0bb make maximum concurrency configurable, split loop 2018-01-13 12:15:27 +02:00
keks fe09d1eea3 make validator timeout configurable 2018-01-13 12:13:54 +02:00
keks 6e8b9f2d5c fix timeout 2018-01-13 12:13:54 +02:00
keks 02877cda71 complete validator functions
- make validators time out after 100ms
  - add context param to validator functions
  - add type Validator func(context.Context, *Message) bool
- drop message if more than 10 messages are already being validated
2018-01-13 12:13:54 +02:00
keks 89e6a06f3c better tests for validation 2018-01-13 12:12:21 +02:00
keks 197a5982a4 ungxify 2018-01-13 12:12:21 +02:00
keks 7dd4e0bfeb vet
used for range variable inside goroutine, now passed as argument
2018-01-13 12:12:21 +02:00
keks 1945f895a2 log when validator discards message 2018-01-13 12:12:21 +02:00
keks 930f264a27 typedef subscription options and fix typo 2018-01-13 12:12:21 +02:00
keks 647bb98655 optionally allow caller to validate messages 2018-01-13 12:12:21 +02:00
vyzo 0ec8f2fa08
Merge pull request #54 from libp2p/feat/better-atomic-counter
Narrow the message seqno to 64bit
2018-01-03 22:43:49 +02:00
vyzo 95dce910ba narrow the message seqno to 64bit again
Uses the atomic counter initialized at instantiation time, which saves
a few bytes and a syscall per message.
2018-01-03 20:30:28 +02:00
vyzo 979ae33fc7
Merge pull request #53 from libp2p/fix/atomic-counter
Use atomic counter for message seqnos
2018-01-03 19:53:33 +02:00
vyzo 8a31b41b4c use atomic counter for message seqnos; timestamp is insufficient 2018-01-03 11:25:20 +02:00