blob: 86561a804466114504c57a6e77ce7e73fe8245e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
## Early Prototyping
### 2018-04-23
- fatcat as marshmallow+sqlalchemy+flask, with API client
- no refs, contibs, files, release contribs, containers, etc
- no extra_json
- sqlite
- laptop
- editgroup every 250 edits
/data/crossref/crossref-works.2018-01-21.badsample_5k.json
real 3m42.912s
user 0m20.448s
sys 0m2.852s
~22 lines per second
12.5 hours per million
~52 days for crossref (100 million)
target:
crossref (100 million) loaded in 48 hours
579 lines per second
this test in under 10 seconds
... but could be in parallel
same except postgres, via:
docker run -p 5432:5432 postgres:latest
./run.py --init-db --database-uri postgres://postgres@localhost:5432
./run.py --database-uri postgres://postgres@localhost:5432
API processing using 60-100% of a core. postgres 12% of a core;
docker-proxy similar (!). overall 70 of system CPU idle.
real 2m27.771s
user 0m22.860s
sys 0m2.852s
no profiling yet; need to look at database ops. probably don't even have any
indices!
## Rust Updates (2018-05-23)
Re-running with tweaked python code, 5k sample file, postgres 9.6 running locally (not in docker):
real 2m27.598s
user 0m24.892s
sys 0m2.836s
Using postgres and fatcat rust:
real 0m44.443s
user 0m25.288s
sys 0m0.880s
api_client about half a core; fatcatd 3x processes, about 10% each; postgres
very small.
a bit faster, basically maxing out CPU:
time cat /data/crossref/crossref-works.2018-01-21.badsample_5k.json | parallel -j4 --pipe ./fatcat_client.py --host-url http://localhost:9411 ic -
real 0m28.998s
user 1m5.304s
sys 0m3.420s
200 lines per second; within a factor of 3; can perhaps hit target with
non-python client?
python processes (clients) seem to be CPU limit in this case; all 4 cores
effectively maxed out.
|