Commit graph

205 commits

Author SHA1 Message Date
Brian Gough
8226bf3be4 increase lock time to 5 minutes 2015-10-08 16:11:39 +01:00
Brian Gough
add6a68fe1 add missing callback in compressAndSaveRawUpdates 2015-10-08 10:53:25 +01:00
James Allen
1a4b8f4269 API/service layout deprecation warning 2015-10-07 13:44:40 +01:00
James Allen
2a03591030 Stub out noisy/slow logger-sharelatex and mongojs modules in tests 2015-09-25 13:46:20 +01:00
James Allen
23dfe68cb8 Don't error when rewinding and insert op which is beyond the length of the document.
ShareJS will accept an op where p > content.length when applied,
and it applies as though p == content.length. However, the op is
passed to us with the original p > content.length. Detect if that
is the case with this op, and shift p back appropriately to match
ShareJS if so.
2015-09-25 13:44:44 +01:00
Brian Gough
92e0b0f04c add logging to each stage of archiving 2015-09-24 09:10:06 +01:00
Brian Gough
e683b0275a bug fix for clear archive in progress flag 2015-09-24 09:09:49 +01:00
Brian Gough
692e8c657c Revert to the default lock timeout now we have write barriers
Revert "increase lock timeouts for archiving"

This reverts commit 9eee1b383772adf058130d6e5eab409f57ce03cd.
2015-09-24 08:53:09 +01:00
Brian Gough
2ab1778dd9 move default value of lastVersion into function body 2015-09-23 16:31:33 +01:00
Brian Gough
dc0044020f only archive entries older than the current update
to avoid a stale version of the current update ever being pulled back
from S3
2015-09-23 14:33:40 +01:00
Brian Gough
696a866b67 pause the stream of ops, not the download
the download is buffered in the lineStream so a lot comes out even
after pausing the S3 download.
2015-09-23 13:38:57 +01:00
Brian Gough
847a553344 prevent double archiving by checking if any inS3 field is already present 2015-09-23 13:29:32 +01:00
Brian Gough
e49f260507 allow rollback/locking by setting inS3:false when starting the archive process 2015-09-23 13:28:07 +01:00
Brian Gough
551e8334cf compressedUpdates are now never inserted with inS3
it is now always added later, and a new update is forced for any
addition to an archived update
2015-09-23 13:25:10 +01:00
Brian Gough
d6b827426c support forcing new compressed update in popLastCompressedUpdate
callback with a null update, passing the version as an additional
argument
2015-09-23 13:22:38 +01:00
Brian Gough
a10dc4f898 Merge pull request #6 from heukirne/s3-archive
Add S3 archive track changes feature
2015-09-21 11:25:06 +01:00
Brian Gough
0e627c92d8 avoid clobbering global _ in loop 2015-09-18 16:26:05 +01:00
Henrique Dias
aa66c5ee8c improve size function 2015-09-17 10:41:53 -03:00
Henrique Dias
3f712c452a add size bulk limit 2015-09-17 09:23:13 -03:00
Brian Gough
7af5050370 add lock to unarchive doc 2015-09-16 16:18:36 +01:00
Brian Gough
18f06a3daf increase lock timeouts for archiving 2015-09-16 16:09:38 +01:00
Brian Gough
b4ffa7d57e share the document lock between archiving and packing 2015-09-16 16:03:55 +01:00
Brian Gough
9d39012b49 add error handler to each stage of download pipeline 2015-09-16 16:00:37 +01:00
Brian Gough
d9085a5e5e add error handler to each stage of upload pipeline 2015-09-16 16:00:25 +01:00
Brian Gough
1c1b1d9595 log the case where there are no entries in the document history 2015-09-16 15:34:30 +01:00
Brian Gough
82d0f4fce8 make unarchive more responsive by downloading documents in parallel
unarchive is triggered interactively so we should try to make it
reasonably fast
2015-09-16 15:33:59 +01:00
Brian Gough
dfa0036507 pause stream while writing to mongo 2015-09-16 15:32:36 +01:00
Brian Gough
70200a9cf1 only log document ids, not document content
avoid filling the log with large documents
2015-09-16 15:31:43 +01:00
Brian Gough
d3dff28bea Merge remote-tracking branch 'origin/master' into heukirne-s3-archive 2015-09-15 15:19:43 +01:00
Brian Gough
092f98d3ad suppress error in normal shutdown case 2015-09-12 11:07:54 +01:00
Shane Kilkelly
eab8b4b6c8 Null safe access of id property, needed as user can be null. 2015-09-11 14:07:06 +01:00
Shane Kilkelly
0ad374556d Add a comment for clarity. 2015-09-10 16:43:40 +01:00
Shane Kilkelly
8387383cb4 In _summarizeUpdates, allow null users through.
A null value represents a deleted or otherwise missing user record.
2015-09-10 14:32:47 +01:00
Shane Kilkelly
810bddb2cb Log a message when the web api produces a 404 response. 2015-09-10 14:32:35 +01:00
Shane Kilkelly
522786d45e Produce a null value, rather than crashing when the user info service returns 404. 2015-09-09 15:48:22 +01:00
Henry Oswald
18d817ee0a added some missing error handling 2015-09-08 16:33:45 +01:00
Henry Oswald
17b0d99a65 rework the archiveDocChangesWithLock function
make it a bit more readable for me, struggle to trust indentation
based calls in coffeescript
2015-09-08 16:26:01 +01:00
Henry Oswald
0b3ebcff06 remove if statments checking if s3 is a backend
if its not enable then it can crash. In prod it should always be there
or not used at all
2015-09-08 16:23:15 +01:00
Henrique Dias
c5a8a249c6 add unarchive acceptance tests 2015-09-03 08:36:32 -03:00
Henrique Dias
da9e7dc7e1 init archive acceptance tests 2015-09-02 18:47:34 -03:00
Henrique Dias
d2b1243701 split MongoAWS files 2015-09-02 15:45:29 -03:00
Henrique Dias
1abcea1a66 add some unit test 2015-08-31 18:13:18 -03:00
Henrique Dias
efff026a79 handle easier propagation 2015-08-25 16:52:28 -03:00
Henrique Dias
f910e63e90 fix null case 2015-08-24 12:22:17 -03:00
Henrique Dias
fcbe4aa925 fix inS3 propagation 2015-08-24 12:19:19 -03:00
Henrique Dias
1ccba422c8 remove unused function 2015-08-24 10:55:27 -03:00
Henrique Dias
98ce03b2f2 replace docs collection to DocstoreHandler 2015-08-24 10:38:31 -03:00
Henrique Dias
04ec45529f restore updates from S3 when exists
fix: avoid rearchiving
2015-08-18 17:11:19 -03:00
Henrique Dias
20c3e15f93 fix bulk insert limit 2015-08-14 19:58:38 -03:00
Henrique Dias
26c8048729 change mongo stream method (still have a bug in bulk insert limit) 2015-08-14 19:19:54 -03:00
Henrique Dias
fd4afb3574 Archive changes, care about: versioin, expiresAt and Lock 2015-08-14 15:07:16 -03:00
Henrique Dias
6bc9c9010a handle auto unarchive track changes 2015-08-09 19:52:32 -03:00
Henrique Dias
3bc5380468 handle inS3 flag 2015-08-09 17:50:15 -03:00
Henrique Dias
daa42bcea0 change s3Stream lib 2015-08-09 15:47:47 -03:00
Henrique Dias
bca48ac117 add unarchive doc track from s3 2015-08-06 17:09:36 -03:00
Henrique Dias
438c4f4d0c using mongoexport for s3 archive 2015-08-06 15:46:44 -03:00
Henrique Dias
028fe2fa03 archive docChanges list to s3 2015-08-06 11:11:43 -03:00
Henrique Dias
ae047ecf76 init s3 feature 2015-08-06 10:00:09 -03:00
Brian Gough
775f5ebbe1 add configurable limit, delay and timeout to /pack via query string 2015-06-05 13:38:47 +01:00
Brian Gough
23d2518ebb added a /pack endpoint to fork a pack worker 2015-06-04 16:36:56 +01:00
Brian Gough
289616d3db added a /doc/:doc_id/pack endpoint 2015-06-04 16:23:49 +01:00
Brian Gough
3f2e4b0c11 move pack script functionality into PackManager 2015-06-04 16:21:40 +01:00
Brian Gough
27a3511b37 update docHistoryStats after packing ops 2015-06-03 10:36:07 +01:00
Brian Gough
19d812734e make PackManager parameters configurable 2015-06-03 10:35:36 +01:00
Brian Gough
66bca8d05c include the current date in the updates to docHistoryStats 2015-05-26 11:00:55 +01:00
Brian Gough
1811ac2145 added support for cleaning old expired ops in packs 2015-05-22 15:40:02 +01:00
Brian Gough
5c4afd5303 add docHistoryStats collection to keep track of updates to docs 2015-05-22 15:40:01 +01:00
Brian Gough
78f0bdbae3 fix name of temporary parameter to match other methods 2015-05-22 15:40:01 +01:00
Brian Gough
adc2866a7d add check to exclude temporary ops from packs 2015-05-22 15:40:01 +01:00
Brian Gough
ffeb1cccb6 move pack migration code into PackManager 2015-05-22 15:40:01 +01:00
Brian Gough
4c0eea9916 return an error if trying to pop the last update from a pack 2015-02-17 14:53:50 +00:00
Brian Gough
24701219ff clean up comments and remove console.logs 2015-02-17 13:47:55 +00:00
Brian Gough
76cbf32e6a cleanup
remove unnecessary comments, whitespace and unused modules
2015-02-17 13:41:31 +00:00
Brian Gough
448a7b7f36 rename MongoPackManager to PackManager 2015-02-17 11:14:13 +00:00
Brian Gough
92e67511d5 sort by doc_id to ensure consistent order for all changes with the same timestamp 2015-02-16 16:44:06 +00:00
Brian Gough
fa1e890282 move update deduplication to filterAndLimit method 2015-02-16 15:37:47 +00:00
Brian Gough
0516e9429d ensure document results are in version order 2015-02-16 13:43:27 +00:00
Brian Gough
8615b7a086 fix project results order, sort by time 2015-02-16 13:43:11 +00:00
Brian Gough
4f36ccd519 moved pack code into MongoPackManager 2015-02-13 16:18:15 +00:00
Brian Gough
682e8e8ab6 add a sparse mongo index for finding packs 2015-02-10 16:54:58 +00:00
Brian Gough
1d7f0919a4 fix mongo logic for project search with packs 2015-02-10 16:54:45 +00:00
Brian Gough
7fdce8fc48 split pack handling code into separate parts for docs and projects
need to debug projects
2015-02-09 16:53:44 +00:00
Brian Gough
d8dc56b031 don't try to getLastCompressedUpdates from packs 2015-02-09 16:53:05 +00:00
Brian Gough
f50f091fc6 added comments 2015-02-06 16:59:09 +00:00
Brian Gough
e47476369a clean up docHistory pack decoding 2015-02-06 15:04:46 +00:00
Brian Gough
8e810bab14 report error for inconsistent history results 2015-02-05 16:37:06 +00:00
Brian Gough
715b0df4a1 prototype for expanding packs 2015-02-05 16:36:41 +00:00
Henry Oswald
a0bb289fd3 works with sentinal v1 2014-09-26 17:21:33 +01:00
James Allen
eb7bcc6922 Remove old history deletion method 2014-05-29 15:37:16 +01:00
James Allen
cc962e1c44 Add indexes in background 2014-05-16 17:00:30 +01:00
James Allen
6a371c267f Fix indexes 2014-05-16 16:41:40 +01:00
James Allen
29ad81c134 Use expiresAt rather than tempCreatedAt 2014-05-16 16:41:14 +01:00
James Allen
8b0b79bc32 Use TTL index to auto-delete updates after a week when versioning is not enabled 2014-05-16 15:59:12 +01:00
James Allen
24343a38cd Add error handling of mismatched versions back in 2014-05-01 10:26:01 +01:00
James Allen
eebfa6499e Be more forgiving with version mismatches 2014-04-15 08:02:49 +01:00
James Allen
953081c39d Delete updates that are older than a week, unless versioning or preserveHistory is enabled 2014-03-28 16:01:34 +00:00
James Allen
9f1efe6dca Add in getProjectDetails to WebApiManager 2014-03-28 13:05:16 +00:00
James Allen
22e3aac5b0 Don't trip up over empty ops 2014-03-25 11:40:48 +00:00
James Allen
bd4bb3d3cf Add in project flushing end point 2014-03-21 15:57:17 +00:00
James Allen
8cae726838 Backport project_id onto doc updates that don't have one yet 2014-03-21 14:40:51 +00:00