Derek Collison
a75be04b0a
Various fixes for this PR.
...
- Fix for updating delivery subject and adjusting next delivery sequences.
- When acking explicitly but out of order, need to make sure we set floor correctly.
- Only update ack floors on an ack if the message is present.
- Fix for needAck for explicitAck out of order consumers detecting if message has been acked.
- Fix for race not locking stream when checking interest during stop.
- Fix for filestore determing if a message block still has a message. Added check to first sequence as well as cache.
- Some additions to the original test.
Signed-off-by: Derek Collison <derek@nats.io >
2020-10-01 21:24:40 -07:00
Derek Collison
3a61a0cef8
Fix for https://github.com/nats-io/jetstream/issues/297
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-08-17 10:35:07 -07:00
Derek Collison
a13402cd01
Run expiration only once at a time and double check cache, fixes #1482
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-06-18 12:14:25 -07:00
Derek Collison
dd61535e5a
Cluster names are now required.
...
Added cluster names as required for prep work for clustered JetStream. System can dynamically pick a cluster name and settle on one even in large clusters.
Signed-off-by: Derek Collison <derek@nats.io >
2020-06-12 15:48:38 -07:00
Derek Collison
8e9462dea4
Make arg order same for Snapshot
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-06-02 06:24:46 -07:00
Derek Collison
0d2ca9ba54
Fix race, can't clear direct memory since shared
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-06-02 06:19:04 -07:00
Derek Collison
e584d4efee
Merge pull request #1435 from nats-io/js-hdrs
...
First pass header support for JetStream
2020-05-31 06:01:01 -07:00
Derek Collison
eca04c6fce
First pass header support for JetStream
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-30 10:04:23 -07:00
Derek Collison
e12907ffa6
Allow snapshots to optionally check all message checksums
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-29 09:57:33 -07:00
Derek Collison
0a206b4c64
Snapshot performance tweaks
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-29 08:07:31 -07:00
Derek Collison
11ca6a0bfe
Add in snapshot modtime, use PAX format
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-28 10:02:33 -07:00
Derek Collison
4f0055a603
Fix for checksum hash race
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-27 20:15:25 -07:00
Derek Collison
fa59cff105
Add in snapshot and restore JSApi
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-27 20:01:30 -07:00
Derek Collison
8727315eb9
Updated snapshots, added restore, generic hashes
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-26 19:53:16 -07:00
Derek Collison
4c91b69c4f
Merge pull request #1413 from nats-io/fix_flappers
...
Fix flappers
2020-05-26 09:01:04 -07:00
Derek Collison
3caf6265d4
Properly recover ephemeral consumers after restart
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-25 11:06:55 -07:00
Derek Collison
2a829ec34d
Force fixed capacity to not allow append to underlying buffer
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-25 08:37:47 -07:00
Derek Collison
3e5d0c343d
Fix for test failure when racing against double deletes
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-20 15:23:39 -07:00
Derek Collison
7b6352c991
Add timestamps to stream state for first and last, addresses #1396
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:33:06 -07:00
Derek Collison
67e49148c5
Fix for race in selectMsgBlock
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:33:06 -07:00
Derek Collison
cadd39a01c
Major rewrite for NATS JetStream API
...
API made more consistent. Noun followed by verb.
Name arguments in request subejcts are always at the end now.
Remove enabled call, just use account info.
Getting a message directly from a stream is treated like an admin API and requires JSON request.
Deleting a message directly as well.
StreamList and ConsumerList now include details and support paging.
Streams and Consumers now contain a created field in their info.
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:27:45 -07:00
Derek Collison
7f41b5a6ae
Added support for DiscardPolicy on streams
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:26:46 -07:00
Derek Collison
016331c270
Fix race condition
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:24:31 -07:00
R.I.Pienaar
fb37c121d1
expose the arrival timestamp in the message metadata
...
Signed-off-by: R.I.Pienaar <rip@devco.net >
2020-05-19 14:21:27 -07:00
Derek Collison
faea8f930c
small fix for race
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:18:34 -07:00
Derek Collison
4774d41f9d
Fixes for filestore consistency on server restarts under heavy load with purge operations
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:18:34 -07:00
Derek Collison
323b3d0b11
Beginning basics for stream and consumer snapshotting
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:18:34 -07:00
Derek Collison
f2ece0515c
Increased purge performance for very large streams
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:18:34 -07:00
Derek Collison
3ab76a6dcd
Write performance tweaks
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
5e9f487b61
Fixes for test and locking, bumped version
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
4a46a92cea
Redesigned file storage engine.
...
The old engine was a simple design to get us started but had a single lock and held that lock around I/O.
This design allows message blocks to have the own RW locks and operate independently and to also not hold
locks while doing most I/O.
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
623fa5ccec
Impl for GetSeqFromTime for FileStore was missing
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
c9d3bdd5ab
Added Stream Update abilities for certain properties
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
d0652539f5
Fix for filestore age timer bug
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
47c28b2fb0
JetStream major refactor for name changes.
...
MsgSet -> Stream
Observable -> Consumer
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
2237915c97
Added in template support
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
f1a81454b5
Added in error for Delete and Stop for store
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
a7d7b6ff56
Fix for writing messages after restart and delivery count suppression on max
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
Derek Collison
e3be6f45c4
Add in delete for observables for filestore impl
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:16:03 -07:00
R.I.Pienaar
e2a1b18de6
report observable config and observables count on message sets
2020-05-19 14:15:11 -07:00
Derek Collison
e127039622
More API impls, tests for DeleteMsg
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:13:22 -07:00
Derek Collison
582282725d
bytes limit accounting
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:13:22 -07:00
Derek Collison
6b34d4e700
Remove deadlock, balance filestore perf
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:13:22 -07:00
Derek Collison
79b85ae385
Optimize for concurrent pub/sub
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:13:22 -07:00
Derek Collison
ec2161ad53
State recovery and server shutdown
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:12:28 -07:00
Derek Collison
68860b39c3
metadata and checksum storage
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:12:28 -07:00
Derek Collison
81704d285b
Plugin filestore to jetstream tests
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:12:28 -07:00
Derek Collison
c3a5df135f
Observable state storage
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:12:28 -07:00
Derek Collison
0e426df281
Sync timer and read ahead
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:12:28 -07:00
Derek Collison
fa99ffa176
Read cache expiration
...
Signed-off-by: Derek Collison <derek@nats.io >
2020-05-19 14:12:28 -07:00