Paulo Jorge Reis
2c3f0aa6b4
Merge pull request #34 from sharelatex/pr-bulk-actions
...
Add methods to bulk accept changes.
2017-05-15 15:14:33 +01:00
Paulo Reis
ef7fa59257
Update ranges tracker.
2017-05-15 11:11:14 +01:00
Paulo Reis
05d7d1b8c6
Merge branch 'master' into pr-bulk-actions
2017-05-15 10:35:16 +01:00
Paulo Reis
36d16a76e0
Unit test accept changes in the ranges manager.
2017-05-12 14:42:40 +01:00
Brian Gough
2ee40d0748
ensure document is in redis before consuming ops
2017-05-12 14:22:18 +01:00
Brian Gough
be96548199
log number of updates for future debugging
2017-05-12 14:07:59 +01:00
Brian Gough
d4a8d88750
put a limit on the number of ops per iteration
2017-05-12 13:15:59 +01:00
Paulo Reis
d53266ea2d
Update web API stub.
2017-05-11 12:00:34 +01:00
Paulo Reis
5677c7ad9a
Update range tracker.
2017-05-11 11:31:19 +01:00
Paulo Reis
f690ef078a
Update tests; add new ones for multiple changes.
2017-05-09 16:16:25 +01:00
Brian Gough
36407ac726
rename HistoryManager pushUncompressedHistoryOps
2017-05-09 12:02:27 +01:00
Brian Gough
7ce6285e3d
increase flush threshold to 100 ops
2017-05-09 10:44:26 +01:00
Brian Gough
fdf5e8e0b8
get history ops length directly from redis update
2017-05-09 10:34:31 +01:00
Brian Gough
2d158b03d7
rename pushUncompressedHistoryOps
2017-05-09 09:32:56 +01:00
Paulo Reis
144804e516
Update tests with new methods.
2017-05-08 16:34:17 +01:00
Paulo Reis
d7ac57d054
Use new bulk method.
2017-05-08 16:08:42 +01:00
Paulo Reis
70341e4e80
Add bulk method from range tracker.
2017-05-08 16:08:34 +01:00
Brian Gough
e2f70aca1a
fix tests for redis cluster
2017-05-08 16:02:49 +01:00
Brian Gough
79d8fced49
make history update more atomic
2017-05-08 15:58:29 +01:00
Paulo Reis
e96e6d6a29
Remove unused method.
2017-05-05 15:17:19 +01:00
Paulo Reis
9b8a2c3030
Consolidate methods to accept changes.
2017-05-05 15:12:06 +01:00
James Allen
87a5e30a0b
Bump redis-sharelatex version
2017-05-05 13:37:58 +01:00
James Allen
7456238a71
Bump redis-sharelatex version
2017-05-04 15:42:10 +01:00
Paulo Reis
d530ee9501
Add methods to bulk accept changes.
2017-05-04 15:32:54 +01:00
James Allen
5f93640077
Add scripts for testing cluster failover scenarios
2017-05-04 11:14:17 +01:00
James Allen
4104ca4889
Add in separate redis config for the lock and fix a few web -> realtime
2017-05-03 16:27:32 +01:00
James Allen
5c3661d6d9
Merge remote-tracking branch 'origin/bg-redis-cluster-refactor' into ja-redis-cluster-refactor
2017-05-02 15:39:54 +01:00
James Allen
ed493d8ad3
Rename web -> realtime for consistency with realtime
2017-05-02 15:38:33 +01:00
Brian Gough
64aef0b55a
fix acceptance test to work with redis cluster too
2017-04-27 10:42:43 +01:00
Brian Gough
dc77bc207d
change acceptance test to use redis history client
2017-04-24 16:31:23 +01:00
James Allen
c5449ae282
Split out redis config for real-time and track-changes into separate cluster-compatible configs
2017-04-13 17:00:42 +01:00
James Allen
f21208e841
Use new redis-sharelatex instead of RedisBackend for cluster abstraction
2017-04-12 14:53:03 +01:00
Brian Gough
5583764d05
fix callback prototype in getLock
2017-03-30 15:31:47 +01:00
Brian Gough
c11618b475
improve unlock error handling
2017-03-30 15:31:34 +01:00
Brian Gough
b2b4bc44df
upgrade logger-sharelatex to v1.5.6
2017-03-30 14:16:35 +01:00
Brian Gough
527c02a00b
log op versions pushed to track changes
2017-03-30 11:20:50 +01:00
Shane Kilkelly
64658d0034
Add a .nvmrc file
2017-03-27 14:50:09 +01:00
James Allen
0245bfd031
Support an incoming undo flag for history restores
2017-03-21 11:20:38 +00:00
James Allen
a3a5524778
Fix broken unit test from merge
2017-03-20 10:37:02 +00:00
James Allen
199079a5b7
Merge branch 'master' into ja-cut-and-paste-comments
2017-03-20 10:29:01 +00:00
James Allen
9c5299ec7c
Update RangeTracker to support upserting and moving comments for cut and paste
2017-03-16 15:49:41 +00:00
James Allen
5499a67d78
Add in a consistency check after applying updates that ranges still match
2017-03-15 14:12:06 +00:00
James Allen
b9e4492001
Wrap RangeTracker in try catch
2017-03-06 19:05:11 +00:00
James Allen
a3a9a726d8
Update unit tests
2017-03-06 12:01:18 +00:00
James Allen
d8135749d2
Merge branch 'master' into ja-increase-limits-on-changes
...
Conflicts:
app/coffee/RedisManager.coffee
2017-03-06 11:57:40 +00:00
James Allen
30294dafb1
Merge pull request #23 from sharelatex/bg-upgrade-raven-logging
...
upgrade to logger-sharelatex 1.5.3
2017-03-06 11:53:47 +00:00
James Allen
269433f250
Merge pull request #25 from sharelatex/bg-log-doclines-on-hash-mismatch
...
log doclines on hash mismatch
2017-03-06 11:53:24 +00:00
Brian Gough
501d907299
upgrade to logger-sharelatex 1.5.4
2017-03-03 16:08:14 +00:00
Brian Gough
d086e0b61b
log doclines on hash mismatch
2017-03-03 15:57:44 +00:00
Brian Gough
3f13263ecf
upgrade to logger-sharelatex 1.5.3
2017-03-03 15:32:11 +00:00
Brian Gough
b186a01c04
don't log errors from redis backend
...
this also picks up errors from RedisManager like "doc ops range is not
loaded in redis"
2017-03-03 15:27:42 +00:00
James Allen
d56bb55953
Revert PR #19
2017-03-01 16:49:46 +00:00
James Allen
9cfe651930
Merge pull request #19 from sharelatex/ja-track-changes
...
Don't consume partial parts of delete when inserting a change
2017-03-01 10:20:06 +01:00
James Allen
f544814dda
Add in an absolute size limit on the ranges JSON object
2017-02-27 14:34:20 +01:00
James Allen
f211c282b2
Merge branch 'master' into ja-increase-limits-on-changes
2017-02-27 13:50:42 +01:00
James Allen
dd45a8dd7d
Improve logging around hashes and null byte errors
2017-02-27 10:06:24 +01:00
James Allen
60f3393c44
Do a naive check for null bytes after JSON.stringify on doc lines
2017-02-27 09:55:04 +01:00
James Allen
fd3dee0af5
Increase changes count limit to 2000
2017-02-24 14:58:47 +01:00
James Allen
80284e1b01
Only cancel deletes with inserts on undo and reject
2017-02-24 14:21:06 +01:00
James Allen
0420929e2a
Reduce the data logged when updating ranges
2017-02-23 13:57:47 +01:00
James Allen
e1481df76a
Don't consume partial parts of delete when inserting a change
2017-02-23 11:39:19 +01:00
Brian Gough
49271d4ee4
update logger to 1.5.2 - rate limiting on sentry
2017-02-23 10:15:56 +00:00
James Allen
5ab903169a
evert "update logger to 1.5.2 - rate limiting on sentry"
...
This reverts commit ba1c4a84959cd2eb33d7d624239d3e621ebae1fd.
2017-02-22 18:26:42 +01:00
James Allen
d6b5cc6389
Increase changes limit to 1200
2017-02-22 18:11:55 +01:00
Brian Gough
ed59ca32fd
update logger to 1.5.2 - rate limiting on sentry
2017-02-22 15:58:40 +00:00
Brian Gough
168bab6960
make hash error logging fine grained
2017-02-22 14:32:51 +00:00
Brian Gough
19e7522d3f
make logging of hash errors optional
2017-02-22 13:46:34 +00:00
Brian Gough
8d1b11f37a
Merge branch 'bg-verify-writes-II'
2017-02-21 16:03:48 +00:00
Brian Gough
5eb339e525
fix utf8 encoding in sha1 hash
2017-02-21 16:03:06 +00:00
Brian Gough
6b808522dc
Merge pull request #18 from sharelatex/bg-verify-writes
...
merge redis hash check
2017-02-20 15:55:19 +00:00
Brian Gough
590f8e7ced
Merge pull request #15 from sharelatex/bg-verify-writes
...
store sha1 hash of docLines in redis
2017-02-20 15:53:56 +00:00
Brian Gough
62165ddeab
add unit tests
2017-02-20 15:33:19 +00:00
Brian Gough
c57d3ce31c
compute hash on write in redis server
2017-02-20 14:09:09 +00:00
Brian Gough
a3c127e469
added unit tests
2017-02-20 13:53:25 +00:00
Shane Kilkelly
37172a2115
Debug Acceptance Tests: Try without npm rebuild
2017-02-20 09:22:54 +00:00
Shane Kilkelly
28536bfe73
try running mochatest directly without compiling
2017-02-17 16:14:13 +00:00
James Allen
660752dfa6
Increase change limit to 1000
2017-02-17 15:32:44 +01:00
James Allen
89537927b5
Update Ranges Tracker
2017-02-17 09:24:19 +01:00
James Allen
de7f760ea4
Update Ranges Tracker
2017-02-16 17:09:08 +01:00
Brian Gough
b5a4458b68
check sha1 hash value only if present
2017-02-15 14:12:36 +00:00
Brian Gough
bd70aaa76c
add sha1 hash support on writes
2017-02-14 16:11:43 +00:00
Brian Gough
a33d4f505b
log request object on error
2017-02-14 15:20:05 +00:00
Brian Gough
8d1aa56689
enable sentry for docupdater
2017-02-14 14:34:28 +00:00
James Allen
8725aeab03
Allow deleting of comment ranges
2017-01-24 15:57:11 +01:00
James Allen
dc976fd9e9
Use thread id for comment id
2017-01-23 09:45:46 +01:00
James Allen
0705242a55
Increase max op age to 80
2017-01-17 11:45:10 +01:00
James Allen
5fed2424d0
Remove unused redis package reference
2017-01-16 13:05:05 +01:00
James Allen
0706feb26b
Add max limit on number of comments and changes per doc
2017-01-10 16:58:11 +01:00
James Allen
a3d5971d54
Update RangesTRacker
2017-01-10 11:59:09 +01:00
James Allen
540d0f7ec7
Make sure comment ids are unique
2017-01-10 11:55:38 +01:00
James Allen
be19532a1d
Add HTTP end point for accepting changes
2017-01-09 14:41:18 +01:00
James Allen
65f4360738
Consolidate HttpController tests into one file
2017-01-09 14:34:10 +01:00
James Allen
593e7260d4
Update RangesTracker
2017-01-09 10:52:06 +01:00
James Allen
7cac2f7d76
Generate deterministic range ids based on seed
2017-01-09 10:46:58 +01:00
James Allen
2c7029cc50
Revert "Support a {dr:...} op for deleting ranges"
...
This reverts commit 24c58e5ad430e0240533cc1e5c21122859fe8dc9.
2017-01-09 09:24:19 +01:00
James Allen
0f13cb3aa7
Support a {dr:...} op for deleting ranges
2017-01-06 16:58:51 +01:00
James Allen
59a06cd798
Accept comments with thread id as an op type
2016-12-13 15:51:47 +00:00
James Allen
47b19818ff
Add in new comment op type
2016-12-12 17:53:43 +00:00
James Allen
e3fee1a1d1
Rename 'track changes entries' -> 'ranges'
2016-12-08 12:31:43 +00:00
James Allen
3ea2e07993
Add tests for fetching and flushing track changes entries to persistence layer
2016-12-02 12:01:23 +00:00
James Allen
418405e8b9
Return track changes entries in HTTP request
2016-12-02 11:37:27 +00:00
James Allen
4fadd75ef3
Track changes based on flag on op, not global setting
2016-12-02 11:04:21 +00:00
James Allen
f43355b74d
Fix UpdateManager tests
2016-12-01 18:19:47 +00:00
James Allen
ce93a76e7f
Fix ShareJsUpdateManager tests
2016-12-01 18:11:03 +00:00
James Allen
e7ff05e792
Fix UpdateManager tests
2016-12-01 18:06:33 +00:00
James Allen
889f5fdf9f
Fix ShareJsDB tests
2016-12-01 17:14:40 +00:00
James Allen
b6c93c718d
Update TrackChangesManagerTests -> HistoryManagerTests
2016-12-01 16:50:55 +00:00
James Allen
d878dd5758
Fix RedisManagerTests
2016-12-01 16:49:53 +00:00
James Allen
9ee913be39
Update PersistenceManagerTests
2016-12-01 16:40:15 +00:00
James Allen
fb39e37fe0
Update DocumentManager tests
2016-12-01 16:27:40 +00:00
James Allen
d36f1a86f1
Merge branch 'master' into ja-track-changes
...
Conflicts:
app/coffee/PersistenceManager.coffee
2016-12-01 16:06:13 +00:00
James Allen
efab68e6b2
Add in guards on bad data from web API
2016-11-29 17:13:16 +00:00
James Allen
546d9e9cee
Remove left over test
2016-11-29 17:13:07 +00:00
James Allen
2852043a6d
Don't store doc version in Mongo directly, instead use docstore
2016-11-29 17:06:23 +00:00
James Allen
77b1d0ea21
Fix up package versions
2016-11-29 15:29:22 +00:00
James Allen
f7ba0946be
More acceptance test fixes
2016-11-29 15:09:11 +00:00
James Allen
2df5c08389
Update acceptance tests to use redis-sharelatex
2016-11-29 15:05:02 +00:00
James Allen
db8b4bf991
Update acceptance test script
2016-11-29 14:57:05 +00:00
James Allen
e739e86c48
Get basic ChangeTracker hooked up. WIP
2016-11-28 10:14:42 +00:00
James Allen
5ce15c4d60
Move check of zero length op array up a level
2016-09-12 10:37:41 +01:00
James Allen
993aab7a78
Don't try to redis rpush with no arguments
2016-09-12 10:37:32 +01:00
James Allen
6ca48523d9
mapSeries -> eachSeries
2016-09-09 15:28:27 +01:00
James Allen
2d82d56f93
Process updates one at a time and write into redis after each one
2016-09-09 11:01:14 +01:00
James Allen
c85fd7ef41
Merge branch 'master' into ja-consistency-refactor
2016-09-07 11:08:04 +01:00
Brian Gough
8d14f8f7f0
add route parameters
2016-09-05 10:32:11 +01:00
Brian Gough
9bc7594226
clean up redis query
2016-09-05 10:31:54 +01:00
James Allen
8779f3f686
Only write DocOps atomically with version and lines, after all docs are applied
2016-08-23 16:00:46 +01:00
James Allen
87f3e5e809
Remove old migration code
2016-08-23 11:03:37 +01:00
James Allen
cb62b005f3
Add in event loop monitoring
2016-08-23 09:53:17 +01:00
Shane Kilkelly
39cc9cda6d
Remove docker-related config. test:acceptance:docker
now depends on acceptance-test-runner-sharelatex
.
2016-07-18 11:09:04 +01:00
Shane Kilkelly
02b7b7baf2
Merge branch 'master' of github.com:sharelatex/document-updater-sharelatex
2016-07-18 10:36:12 +01:00
Shane Kilkelly
c446b20375
Add alternative test:acceptance:docker command, using separate docker repo
2016-07-18 10:36:03 +01:00
James Allen
a1bac9719a
Update secondary timeout for multi commands too
2016-07-12 11:45:10 +01:00
James Allen
d0c54f1be6
Increase secondary timeout to 600ms
2016-07-12 11:11:55 +01:00
Shane Kilkelly
4c0dc5a0ef
Increase timeout for test.
2016-07-08 16:05:36 +01:00
Shane Kilkelly
0a5f95f22d
Move docker-entrypoint.sh into the test/acceptance/scripts directory
2016-07-08 15:52:02 +01:00
Shane Kilkelly
32d06b805c
run only the acceptance tests inside container, rather than compile and test.
2016-07-08 15:15:41 +01:00
Shane Kilkelly
b16b34d7c6
only execute app inside container, instead of compile and execute.
2016-07-08 14:50:30 +01:00
Shane Kilkelly
6d9aecae4c
capture exit code of the test run.
2016-07-08 14:31:43 +01:00
Shane Kilkelly
ea41453442
fix docker build command.
2016-07-08 13:44:43 +01:00
Shane Kilkelly
28fda02d2d
Merge branch 'master' into sk-dockerize-tests
2016-07-08 13:37:04 +01:00
Shane Kilkelly
879482a955
grunt scripts to run the docker acceptance tests
2016-07-08 12:09:01 +01:00
James Allen
4f34cb7363
Only set keys in migration if they exist
2016-07-08 11:45:36 +01:00
James Allen
bd392f5682
Comment out cluster config (again...)
2016-07-08 10:54:56 +01:00
Shane Kilkelly
bca8f6c376
working docker image which can run the acceptance tests
2016-07-08 10:51:22 +01:00
James Allen
8b090c0a60
Don't call sadd with blank args
2016-07-07 16:41:38 +01:00
James Allen
9bd7c0017d
Allow migrate script to process multi docs at once
2016-07-07 16:29:01 +01:00
Shane Kilkelly
c38d903f92
Basic docker file.
2016-07-07 16:07:14 +01:00
James Allen
6bc78ccf77
Add in some null checks on comparing backend results
2016-07-07 11:24:33 +01:00
James Allen
1c62a1c5a1
Don't propagate error on secondary timeout
2016-07-07 09:46:15 +01:00
James Allen
edf1e1ab49
Initialize primaryResult to an array, not null
2016-07-06 15:02:05 +01:00
James Allen
59883023ca
Ignore different order of results from smembers
2016-07-06 14:24:27 +01:00
James Allen
89f90c1b04
Timeout secondary requests if they take longer than 200ms
2016-07-06 12:25:36 +01:00
James Allen
508a95c19b
Use the main redis instance for locks
2016-07-06 11:50:02 +01:00
James Allen
e912ccc562
Wait for both backends to return so that they are always in sync
2016-07-05 16:07:47 +01:00
James Allen
dfd45bd23c
Add timers to time how long each redis request takes
2016-07-04 11:14:23 +01:00
James Allen
149351aa49
Remove debugging log lines
2016-06-29 21:18:13 +01:00
James Allen
fde334acc4
Create script that will ensure data is migrate between redis backends
2016-06-29 12:57:56 +01:00
James Allen
dbe03e2757
Track metrics of when backends match or disagree
2016-06-28 16:49:15 +01:00
James Allen
0b9e85ea50
Update ioredis version
2016-06-28 15:47:06 +01:00
James Allen
e04c946ecd
Fix unit tests
2016-06-23 18:04:26 +01:00
James Allen
da89ff7172
Add in external health check rather than internal
2016-06-23 18:00:03 +01:00
James Allen
414ab5d6a9
Refactor TCP redis monitoring to be more explicit
2016-06-23 15:59:25 +01:00
James Allen
8ef03c3d2f
Add in application layer monitoring of the health of each cluster node
2016-06-23 15:38:51 +01:00
James Allen
27a74d6b71
Improve consistency of stress test script
2016-06-21 14:31:20 +01:00
James Allen
392beac57b
Improve error reporting and retry ops in stress test script
2016-06-20 15:01:39 +01:00
James Allen
7915c2ab6c
Tweak stress test to work on server
2016-06-20 13:56:46 +01:00
James Allen
39d920682a
Only pass through keys to redis that are explicitly set in the config
2016-06-17 14:11:22 +01:00
James Allen
40b7da8edb
Support endpoints and masterName in redis config
2016-06-17 14:05:54 +01:00
James Allen
e5cf856ddf
Add in stress test script
2016-06-17 12:17:43 +01:00
James Allen
bc00aab7b1
Explicitly separate calls to web and docupdater redis instances
2016-06-17 12:17:22 +01:00
James Allen
9ff3026807
Merge branch 'master' into ja_redis_cluster
2016-06-09 10:00:58 +01:00
James Allen
48a92b28e5
Don't run redis commands in parallel for easier consistency reasoning
2016-06-09 09:54:13 +01:00
James Allen
c823e06912
Don't run redis commands in parallel for easier consistency reasoning
2016-06-08 16:42:09 +01:00
James Allen
c6605ed5f0
Fix misapplied arguments to multi commands
2016-06-08 16:41:58 +01:00
James Allen
437e885812
Lock down to specific async version
2016-06-08 16:21:56 +01:00
James Allen
b4936f62af
Check that return values from different redis backends match
2016-06-08 12:18:37 +01:00
James Allen
ef43e2b325
Configure backend database as redis cluster
2016-06-07 18:38:32 +01:00
James Allen
1db6f8f159
Pull out rclient into RedisBackend that supports sending requests to multiple rclients
2016-06-07 17:58:18 +01:00
James Allen
e38e883081
Clean up and consolidate RedisManager tests for easy refactoring later
2016-06-01 12:22:47 +01:00
James Allen
ea8f4a6d7a
Remove unused getDocOpsLength method
2016-06-01 11:58:15 +01:00
James Allen
8004e022fe
Fix async version and fix affected unit tests
2016-06-01 11:49:24 +01:00
James Allen
05b09a447e
Ensure that all multi call keys will hash to the same node in cluster
2016-06-01 11:40:12 +01:00
James Allen
f707783aba
Remove old methods of triggering doc updates
...
Remove the old pub/sub listener which is no longer used.
Also remove the DocsWithPendingUpdates set, which used to track
docs waiting to be updated. This was necessary incase messages were
missed on the pub/sub channel, so we knew which docs still had pending
updates. However, now we use the BLPOP queue, these updates just sit in
the queue until a consumer comes back to continue consuming them.
2016-06-01 11:28:23 +01:00
James Allen
b2e58266ae
Remove unused total doc counting redis commands
2016-06-01 11:03:39 +01:00
James Allen
32ce44f9c6
Remove unused gzipping logic
2016-06-01 10:53:50 +01:00
James Allen
1d7cbd8a78
Fix unit tests
2016-05-31 13:32:15 +01:00
James Allen
11667e8250
Return semantic error if the requested ops are not available when getting a document
2016-05-31 13:24:19 +01:00
Shane Kilkelly
048fd19418
Add one to size of line.
...
To account for newline characters in the original document
2016-05-12 09:26:50 +01:00
Shane Kilkelly
82d5a7fafd
check total size of lines, rather than content-length
2016-05-11 15:55:21 +01:00
Shane Kilkelly
210a61112b
reject payloads larger than 2MB for setDoc
2016-04-29 15:08:21 +01:00
James Allen
4ab4e27724
Include COUNT in lock and make RND per-process incase randomBytes blocks
2016-04-13 16:27:53 +01:00
James Allen
d15a22be26
Remove misleading log line about lock value
2016-04-13 12:20:53 +01:00
James Allen
945c728db2
Use signed locks so only the locking party can remove their lock
2016-04-13 11:59:56 +01:00
James Allen
6c79ab4321
Don't let HTTP calls take longer than 5 seconds since we're inside a 30 second lock
2016-04-12 17:10:39 +01:00
James Allen
3c7c318ea0
Clean up and speed up unit tests by making sure requires are mocked
2016-01-20 17:36:06 +00:00
James Allen
af5d01e440
Flush track changes when unloading data from redis
2016-01-20 15:05:31 +00:00
James Allen
184c9031cd
Delete doc from redis after a full set if it wasn't in redis before
2016-01-20 14:31:25 +00:00
Brian Gough
e8f09f3357
added comment about flushing to track changes
2015-12-01 16:03:05 +00:00
Brian Gough
6e97521971
Revert "Merge pull request #4 from sharelatex/flush-ops-from-redis"
...
This reverts commit 84a9ad8b67b860a92271cf7bb669cf21cc0b5b86, reversing
changes made to a6d4649f4f2db06862e8cbc5e132a073ce8c20b2.
2015-12-01 15:58:40 +00:00