Please see [1] for some depressing test results. I ran some jmeter tests
that POST a lot of nodes with a single string property about 60K in
size. All the nodes go into a single path with random names
(/~admin/test/kern-2196/nodeXYZ).
As long as you start with an empty server and only POST about 1000 nodes
everything seems fine; throughput is about 18/s. Past 1000 nodes,
performance starts dropping dramatically, until on a server with about
2500 nodes on it the throughput was down to 1.5/s. Restarting the server
did not help.
Obviously we need to look at this and decide what to do.
--
Chris Tweney, Senior Software Developer
Educational Technology Services
University of California, Berkeley
ch...@media.berkeley.edu
Node size doesn't seem to make a difference. I ran some tests with
600-byte and 6000-byte nodes, and the response time curves were similar.
[2]
https://jira.sakaiproject.org/secure/attachment/28044/60000-byte-graph.png
-chris
I wanted to bump this thread up again because I wouldn't want it to
get lost. It sounds
like this could be an issue, and it would be great if we could get
some other back-end
eyes on this and some assessment as to what this means for a v1 release and
pilot deployments.
Thanks,
Nicolaas
> --
> You received this message because you are subscribed to the Google Groups
> "Sakai Nakamura" group.
> To post to this group, send email to sakai-...@googlegroups.com.
> To unsubscribe from this group, send email to
> sakai-kernel...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sakai-kernel?hl=en.
>
>
~Clay
Thanks,
Nicolaas
If that's still the case, it might be good to add a JIRA task to break
Activity logging out into a separate storage area, since its tuning and
maintenance requirements tend to conflict with the requirements typical
for other sorts of data.
Best,
Ray
Nico, I'll do a test to see what happens to reads once the insertion
slowdown point is reached. Expect results later today.
[1] https://github.com/ieb/sparsemapcontent/issues/85
-chris
On 9/2/11 7:52 AM, Nicolaas Matthijs wrote:
Bottom line: Get performance takes about 1000 requests to ramp up, then
levels off at a constant plateau. It was about the same before the big
insert run as after it.
During the big insertion run, the bottleneck is definitely in sparse,
[3], specifically in WideColumnIndexer.internalHasNext, which takes
57.5% of the cpu time in the run.
-chris
Ian found some issues with indexing in both Derby and MySQL that are
fixed (partly fixed in MySQL's case; a full fix would require porting
MySQL to the wide column used by Derby). These fixes flattened the
insertion-time graph, but did not make it perfectly flat (constant time
insertion).
I investigated [2] and found that Sling *even when not using the JCR*
uses StorageClient.listChildren() in a way that will make insertion time
increase linearly with the number of children under a node. JCR is known
not to support big flat content trees [3] but it seems that Sling
contains some of the same bad assumptions and is thus similarly afflicted.
Ironically, JCR's poor performance with big flat content trees was a
principal reason for the switch to sparse.
I am considering whether to report this to the Sling project as a Sling
bug.
[1] https://github.com/ieb/sparsemapcontent/issues/85
[3] https://issues.apache.org/jira/browse/JCR-642
-chris