Eric Mc Sween
3831416c2f
Merge pull request #12206 from overleaf/em-camel-case-docupdater
...
Camel case variables in document-updater
GitOrigin-RevId: 76ad0921cc059878f21639547fad1bff1913bc8b
2023-03-22 09:04:37 +00:00
Eric Mc Sween
5083060fbb
Merge pull request #10677 from overleaf/em-history-id-string
...
Represent history ids as strings instead of integers
GitOrigin-RevId: 18977195b65492836e570c571ec7e8c7e088612b
2022-12-02 09:04:29 +00:00
Lucie Germain
e7203ed0f8
Merge pull request #10232 from overleaf/jpa-lg-silent-no-op-external-update
...
[document-updater] skip emitting no-op external updates
GitOrigin-RevId: 3fc29740fb8c2bc8b1ba21428a0e8d0d34b6eaf8
2022-11-04 09:03:54 +00:00
Eric Mc Sween
7d099acfdd
Merge pull request #9150 from overleaf/em-share-ranges-tracker
...
Move RangesTracker to shared lib
GitOrigin-RevId: 62da7208f0b453dd7272c06873c7e415ed887817
2022-10-05 13:26:01 +00:00
Eric Mc Sween
59cdcccc26
Merge pull request #9647 from overleaf/bg-dropbox-to-overleaf-existing-doc
...
handle updates to existing doc in dropbox to overleaf metadata
GitOrigin-RevId: e82955a4a76e62fb649263a94103fdb7f322de85
2022-09-22 08:04:11 +00:00
Brian Gough
348035f6ff
Merge pull request #9633 from overleaf/bg-external-update-metric
...
add a metric for external updates in docupdater
GitOrigin-RevId: db407f742bea692e3617eec08db4756e3b8adbd9
2022-09-16 08:05:44 +00:00
Eric Mc Sween
8b2f8ce243
Merge pull request #9383 from overleaf/em-file-tree-histories
...
Track source for all file tree operations
GitOrigin-RevId: ff95ea8e99bfa30203a2a42968519bbaba65e708
2022-08-26 08:03:30 +00:00
Brian Gough
0c63515de6
Merge pull request #8729 from overleaf/bg-return-file-too-large
...
[document-updater] return 413 error when doc is too large
GitOrigin-RevId: d66300c78bea4071f29044be160929dba782b728
2022-07-07 08:03:23 +00:00
Brian Gough
e7e4e49d90
Merge pull request #8546 from overleaf/bg-fix-docupdater-history-redis
...
[document-updater] docsWithHistoryOps should use the main rclient
GitOrigin-RevId: a86c081ea0b0f02a9d4c36df0ca76dc9aa3bac57
2022-06-24 08:03:32 +00:00
Jakob Ackermann
cd11db456d
Merge pull request #7835 from overleaf/jpa-redis-locker-package
...
[misc] extract document-updaters LockManager into redis-wrapper package
GitOrigin-RevId: 5775ab9df7afb614dfc5f502df526c8735f84a91
2022-05-19 08:02:57 +00:00
Brian Gough
bd541b4c2d
Merge pull request #7347 from overleaf/bg-record-snapshot-metrics
...
record metrics for docupdater range operations
GitOrigin-RevId: 41c500630dd81670d2798d388f2961a19df76b63
2022-04-07 09:57:01 +00:00
Eric Mc Sween
4bbf017c94
Merge pull request #6237 from overleaf/em-revert-jumprope
...
Revert use of the jumprope library in document-updater
GitOrigin-RevId: bf83f04cf5a53bf710af74a366f4dd86c06a1fd5
2022-01-06 09:03:11 +00:00
Eric Mc Sween
c8f61e908c
Merge pull request #6018 from overleaf/msm-rope-apply
...
Speed up OT Apply in docupdater using Ropes
GitOrigin-RevId: 9789c3910d40a4161f1f0d9c16cef8d8ca74788c
2021-12-16 09:02:56 +00:00
Eric Mc Sween
7a0b40a4bf
Merge pull request #5941 from overleaf/em-cleanup-redis-manager
...
Decaf cleanup docupdater RedisManager and DocumentManager
GitOrigin-RevId: 6a9634d1882a3a7328cac8cd88537dd9d204b281
2021-12-01 09:03:12 +00:00
Brian Gough
4f32ddc4cb
Merge pull request #5892 from overleaf/tm-large-docs-in-resync
...
Do size check on doc before queuing resyncDocContent
GitOrigin-RevId: 315b849375fd17a2936adacaad4a93ccf283d853
2021-11-26 09:02:57 +00:00
Brian Gough
9d4ed693f5
Merge pull request #5826 from overleaf/bg-use-resync-path
...
[document-updater] use paths from project structure update in resync
GitOrigin-RevId: 6ed2a48da76553e2fe5d0d3ec8da535515a35110
2021-11-23 09:03:14 +00:00
Brian Gough
587cd33d82
Merge pull request #5860 from overleaf/bg-fix-docupdater-delete-doc
...
fix docupdater delete operation
GitOrigin-RevId: daab03b7659688d53c54ac80756394796d3c6348
2021-11-23 09:02:35 +00:00
Jakob Ackermann
7f9fd00bda
Merge pull request #5367 from overleaf/jpa-node-handle-callback-err
...
[misc] fix eslint violations for node/handle-callback-err
GitOrigin-RevId: 83a4900e8861010df1917bff49382bd9c93375bd
2021-10-28 08:03:26 +00:00
Jakob Ackermann
a6f05109a3
Merge pull request #5352 from overleaf/jpa-no-var
...
[misc] fix eslint violations for `no-var`
GitOrigin-RevId: c52e82f3a8a993b8662cc5aa56e7b95ca3c55832
2021-10-27 08:03:00 +00:00
Brian Gough
2cd7b615bf
Merge pull request #5159 from overleaf/bg-docupdater-log-relevelling
...
docupdater log re-levelling
GitOrigin-RevId: c27478d48f1cb1eae022086fe7af9fe55dfacfa0
2021-10-01 08:03:04 +00:00
Brian Gough
865a973426
Merge pull request #5132 from overleaf/bg-fix-size-check
...
[docupdater] use more accurate doc size check
GitOrigin-RevId: f66d68a7f7fdc127cc31539abdcab65549823d02
2021-09-21 08:02:55 +00:00
Eric Mc Sween
9f4541c266
Merge pull request #4761 from overleaf/em-peek-doc
...
Do not unarchive docs when resyncing project history
GitOrigin-RevId: c7df75789c01e6c85b464a9b94b14654d8568407
2021-08-20 08:03:50 +00:00
Brian Gough
0fd24b5133
peek at docs without fetching from mongo
2021-07-30 16:13:48 +01:00
Jakob Ackermann
c532376e21
[misc] run format_fix and lint:fix
2021-07-13 12:04:42 +01:00
Jakob Ackermann
519dd274bf
[misc] switch from settings-sharelatex to @overleaf/settings
2021-07-12 17:47:15 +01:00
Jakob Ackermann
6e551f9b34
[perf] use MGET/MSET/DEL for manipulating multiple keys in one operation
...
In some cases we can get rid of MULTI/EXEC operations too.
- putDocInMemory: from 10 down to 2 operations
- removeDocFromMemory: from 14+4 down to 4+4 operations
- updateDoc: from 13 down to 8 operations
2021-04-13 11:47:10 +01:00
Jakob Ackermann
178440395f
[perf] switch write sequence for doc contents and doc tracking
...
Doc contents are added only after the tracking has been setup.
All read paths on the tracking have been checked to gracefully handle
the case of existing doc_id but missing doc contents.
- getDoc: -1 operation
REF: 0a2b47c660c60b95e360d8f3b3e30b862ceb6d79
2021-04-13 11:46:44 +01:00
Jakob Ackermann
50b24043b7
[perf] use MGET for fetching multiple keys in one operation
...
- getDoc: from 13 down to 2 operations
2021-04-09 08:42:35 +01:00
Eric Mc Sween
4d70bd664f
Reintroduce Node 12 and metrics upgrades
...
These changes were previously merged, not deployed, and reverted. This
reverts the revert.
This reverts commit a6b8c6c658b33b6eee78b8b99e43308f32211ae2, reversing
changes made to 93c98921372eed4244d22fce800716cb27eca299.
2021-04-01 15:51:00 -04:00
Eric Mc Sween
4dd1b26b2e
Revert "Merge pull request #161 from overleaf/em-upgrade-node-12"
...
This reverts commit d44102751b9436ad89c5b3b05e7abdff51fcc78a, reversing
changes made to 6c2f5b8d053b75c677da2b7ddd04f998d2be6fff.
2021-03-31 12:07:11 -04:00
Eric Mc Sween
dc5bfea181
Global test setup
...
Configure chai and SandboxedModule globally with options used in many
tests.
That required upgrading mocha and SandboxedModule.
2021-03-16 16:48:45 -04:00
Thomas
23738540ed
Fix API request errors which could contain API hostname or address ( #160 )
...
Wrap errors produced by failing requests to web API, and remove the url/hostname from thrown error messages. (But keep the URL path for info.)
2021-02-24 15:09:19 +01:00
Henry Oswald
11c8cfc939
shard the pending-updates-list queue
2021-02-02 16:38:25 +00:00
Jakob Ackermann
08ed5f6c9b
[misc] bump @overleaf/redis-wrapper to version 2.0.0
2020-11-11 16:20:32 +00:00
Eric Mc Sween
1d1f204021
Remove backwards-compat project update API
...
The project update endpoint accepted updates both in two array params:
docUpdates and fileUpdates, and in a single array: updates. This commit
removes the docUpdates/fileUpdates params now that web uses the updates
param.
2020-05-20 16:26:22 -04:00
Eric Mc Sween
9799b94752
Accept ordered doc and file updates
...
Add an `updates` parameter to the project update endpoint. It can be
used instead of `docUpdates` and `fileUpdates` to provide a single list
of updates in the order they should be processed.
2020-05-20 07:57:32 -04:00
Eric Mc Sween
65fe74fd2d
Upgrade Sinon
2020-05-15 15:34:14 -04:00
Eric Mc Sween
759d385be8
Decaf cleanup: unused variables
2020-05-15 14:43:05 -04:00
Eric Mc Sween
86747ba64f
Decaf cleanup: stub setup in tests
2020-05-15 14:43:03 -04:00
Eric Mc Sween
9e4280916a
Decaf cleanup: unnecessary returns
2020-05-15 14:41:04 -04:00
Eric Mc Sween
7a5a782dc7
Decaf cleanup: camel case variables
2020-05-15 09:59:26 -04:00
Eric Mc Sween
16c0ed23db
Fix tests after decaf cleanup
...
* Camel casing in logs
* The Express request object always has query and body properties
2020-05-11 11:37:59 -04:00
Eric Mc Sween
0b1c7e90af
Decaf cleanup: remove unused variables
2020-05-11 11:26:28 -04:00
Eric Mc Sween
3acb970442
Decaf cleanup: simplify stubbed class
2020-05-11 11:24:07 -04:00
Eric Mc Sween
526ef25fcf
Decaf cleanup: unnecessary returns
2020-05-11 11:20:55 -04:00
Tim Alby
cf87daa754
fix Metrics module stub
2020-05-06 12:17:03 +02:00
Tim Alby
8176cb3e8d
remove requires for coffee-script package in tests
2020-05-06 12:16:59 +02:00
Tim Alby
9a2f8ecbd4
prettier: convert test/unit decaffeinated files to Prettier format
2020-05-06 12:11:36 +02:00
Tim Alby
bb20394243
decaffeinate: rename test/unit/coffee to test/unit/js
2020-05-06 12:11:30 +02:00
decaffeinate
21850f1e6f
decaffeinate: Run post-processing cleanups on DiffCodecTests.coffee and 23 other files
2020-05-06 12:11:22 +02:00
decaffeinate
c781526af0
decaffeinate: Convert DiffCodecTests.coffee and 23 other files to JS
2020-05-06 12:10:51 +02:00
decaffeinate
6c4d7fb838
decaffeinate: Rename DiffCodecTests.coffee and 23 other files from .coffee to .js
2020-05-06 12:10:11 +02:00
Miguel Serrano
f935c392bc
Merge branch 'master' into sk-upgrade-dependencies
2020-04-27 13:38:21 +02:00
Brian Gough
af93193d6e
remove new_project_history and use project_history instead
2020-04-21 14:43:48 +01:00
Brian Gough
ac68f59487
Merge branch 'master' into bg-use-separate-redis-for-project-history
2020-04-16 15:48:21 +01:00
Brian Gough
21824d49da
Merge branch 'bg-add-queue-metrics' of github.com:overleaf/document-updater into bg-add-queue-metrics
2020-04-01 16:04:52 +01:00
Brian Gough
3a8c362fba
add doclines set/del metric
2020-04-01 15:59:25 +01:00
Jakob Ackermann
17c2add0cf
[misc] track redis pub/sub payload sizes on publish
2020-03-30 11:31:43 +02:00
Brian Gough
fcb72b9bf7
update tests
2020-03-25 14:27:41 +00:00
Shane Kilkelly
ada4fba3dc
Fix express deprecations
2020-03-19 15:39:57 +00:00
Eric Mc Sween
d9caced0d6
Change skip_flush option to ignore_flush_errors in delete doc
...
Instead of skipping the flush, we'll still try to flush and proceed with
the doc deletion, even when the flush fails.
2020-03-10 09:40:49 -04:00
Eric Mc Sween
9b70eb75b3
Rename flush param to skip_flush in delete doc
...
Also move it to the query string instead of the body.
2020-03-09 16:27:32 -04:00
Eric Mc Sween
c09bc0e868
Add a "flush: false" option to the doc delete endpoint
...
This will delete the document from Redis without flushing to web,
docstore or history. To be used when something is broken.
2020-03-07 08:59:15 -05:00
Brian Gough
0419039d4d
Merge branch 'master' into bg-use-separate-redis-for-project-history
2020-02-21 14:13:33 +00:00
Jakob Ackermann
82ab2f7d14
Merge pull request #65 from das7pad/hotfix-redis-config
...
[redis] use the correct instance for the real time updates
2020-02-12 13:21:04 +01:00
Jakob Ackermann
e73978410c
Merge pull request #67 from das7pad/hotfix-static-queue-check
...
[misc] tests: fix a static test
2020-02-12 13:20:55 +01:00
Brian Gough
26d8d07e7a
remove unused redis settings from rate limit unit test
2020-02-11 14:32:49 +00:00
Jakob Ackermann
4070b0ef6f
[misc] tests: fix a static test
...
`ProjectHistoryRedisManager.queueOps` is masked and can not push
changes into redis during the unittest.
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-02-07 12:36:46 +01:00
Jakob Ackermann
10d177f41b
[misc] test/unit: stub the correct redis settings
2020-02-07 12:24:57 +01:00
Brian Gough
7036803acf
add missing argument to metrics.inc
...
also track retries rather than attempts (which is always 1 for a successful request)
2020-01-14 15:00:21 +00:00
Brian Gough
3caa0e7c05
add failure/retry metrics for web-api requests
2020-01-14 13:53:50 +00:00
Brian Gough
d0c5eb5698
support migration of project history keys to separate redis instance
2019-12-13 16:38:41 +00:00
Brian Gough
ad19fee667
add setting so that double flush is the default
...
can be disabled to stop flushing to track-changes
2019-11-25 13:36:25 +00:00
Brian Gough
4f6583bbf2
fix getDocVersion and add tests
2019-11-25 13:28:36 +00:00
Brian Gough
8b73bb9f13
Merge branch 'master' into bg-filter-track-changes-updates
2019-11-22 10:41:33 +00:00
Brian Gough
b7055eecee
add metrics for history flushes
2019-11-22 09:14:32 +00:00
Brian Gough
dcd7649bad
filter track-changes updates for projects using project-history
2019-11-19 10:02:56 +00:00
Brian Gough
f6b2ac7360
queue deletes for deferred processing
2019-09-25 16:42:49 +01:00
Brian Gough
912a3a7753
remove redis server-side hashing for performance
...
we still compute the document hash in node, and check it on retrieval
but we don't check the hash at the point of writing it in redis which
was previously done with a redis Lua script.
2019-09-09 15:27:58 +01:00
Brian Gough
e75f2cc325
add unit tests for skipping history flush
2019-08-15 11:01:45 +01:00
Brian Gough
97487a077e
fix cluster/sentinel connection with real-time
2019-07-10 09:42:05 +01:00
Henry Oswald
3b3b2da0f5
add pubsub redis connection and remove real time redis connection
2019-07-04 13:34:31 +01:00
Brian Gough
16fb297043
Revert "skip hash check when non-BMP characters replaced"
2019-06-27 11:39:45 +01:00
Brian Gough
f37860599d
skip hash check when non-BMP characters replaced
2019-06-25 16:36:10 +01:00
Brian Gough
984b2d38e6
add unit tests
2019-06-11 16:33:14 +01:00
Brian Gough
e95059f98e
handle non-urgent flushes in background
2019-06-03 10:01:10 +01:00
Brian Gough
0bbfa7de27
Merge branch 'master' into bg-downgrade-delete-component-error
2019-05-08 09:07:02 +01:00
Brian Gough
27a8248196
convert "Delete component" errors into warnings
2019-05-07 16:55:17 +01:00
Henry Oswald
e57741cb80
stub out project flusher for unit tests
2019-05-07 15:46:30 +01:00
Tim Alby
c1c23e4bee
record last author id on document flush
...
This is a multi-steps process:
* get a update's `user_id` from the metadata
* store the `user_id` (`lastUpdatedBy`) and current date (`lastUpdatedAt`) for
the document in Redis on every updates
* fetch `lastUpdatedAt` and `lastUpdatedBy` from Redis on document flush
* send the data to web to be persisted in Mongo
2019-05-02 11:10:02 +01:00
James Allen
52f3596e53
Review feedback
2019-04-16 11:05:17 +01:00
James Allen
3d76f4b9bf
Record a snapshot to mongo when a doc's comments/changes get collapsed
2019-04-11 13:27:46 +01:00
Brian Gough
fd1425d83f
include a unique id in every message published to redis
2019-03-21 12:10:15 +00:00
Brian Gough
8c5d74faef
use explicit json content-type to avoid security issues with text/html
2019-02-12 16:45:11 +00:00
Henry Oswald
ecaef6485b
revert the removal of realtime keyspace
2019-02-07 15:27:51 +00:00
Henry Oswald
4e1a2c787c
Revert "turn down logging, use logger.info for less important data"
...
This reverts commit c5f91428e3c7702fbbd3ffd1ef7a772d513f33f2.
2019-02-06 15:29:22 +00:00
Christopher Hoskin
1217d8a80a
Merge branch 'master' into csh-ho-docker-issue-1338-bulk-upgrade
2019-01-04 09:18:40 +00:00
Henry Oswald
2505be283a
turn down logging, use logger.info for less important data
2018-12-13 12:46:10 +00:00
Henry Oswald
25e1ad7491
remove redis.realtime
...
real time pushes data into the document updater redis instance
2018-12-05 16:17:41 +00:00
Brian Gough
aae1352519
ensure that project history is flushed when the project is deleted
2018-10-30 12:03:44 +00:00