Hi,
Could you re-run the tests for create in the reverse order, largest
collection first.

The reason for this is in the detail of the tests adding resources to
collection E (10M child nodes) is flat until half way through and then
starts to rise which makes me thing there might be something else
going on on the machine of the create mechanism. I would like to rule
out that Cassandra is caching writes and the speed of update bears no
correlation to collection size, but is a function of sustained load. I
would also like to rule out any possibility that another OS level
process started to hog resources in the latter part of your tests.

The results do look comparatively flat all the way up 100M items in a
collection.

Once we have done this we can move on to providing access control, on items.

Best Regards
Ian



On 11 September 2013 03:37, Dishara Wijewardana <ddwijeward...@gmail.com> wrote:
> Hi Ian,
> Sorry the delay, I found my self some battery problems with my laptop. I
> believe this is what you asked for. Here I added new 100 collections i.e
> 1a,3a,5a etc in each old collections and did CUD. Please advice what I
> should do next.
>
> CREATE
> [RESULT] Average Latency Under Node A(1K)   = 11 (ms)
> [RESULT] Average Latency Under Node B(10K)  = 9 (ms)
> [RESULT] Average Latency Under Node C(100K) = 13 (ms)
> [RESULT] Average Latency Under Node D(1M)   = 23 (ms)
> [RESULT] Average Latency Under Node E(10M)  = 110 (ms)
> [RESULT] Average Latency Under Node F(100M) = 306 (ms)
> [FIRST RUN] #TOTAL CALLS = 600 Total Average Latency = 79 (ms)
>
> UPDATE
> [RESULT] Average Latency Under Node A(1K)   = 9 (ms)
> [RESULT] Average Latency Under Node B(10K)  = 8 (ms)
> [RESULT] Average Latency Under Node C(100K) = 9 (ms)
> [RESULT] Average Latency Under Node D(1M)   = 17 (ms)
> [RESULT] Average Latency Under Node E(10M)  = 20 (ms)
> [RESULT] Average Latency Under Node F(100M) = 26 (ms)
> [FIRST RUN] #TOTAL CALLS = 600 Total Average Latency = 15 (ms)
>
> DELETE
> [RESULT] Average Latency Under Node A(1K)   = 12 (ms)
> [RESULT] Average Latency Under Node B(10K)  = 12 (ms)
> [RESULT] Average Latency Under Node C(100K) = 11 (ms)
> [RESULT] Average Latency Under Node C(100K) = 14 (ms)
> [RESULT] Average Latency Under Node C(100K) = 19 (ms)
> [RESULT] Average Latency Under Node C(100K) = 16 (ms)
> [FIRST RUN] #TOTAL CALLS = 600 Total Average Latency = 14 (ms)
>
>
>
> On Tue, Sep 10, 2013 at 5:25 PM, Ian Boston <i...@tfd.co.uk> wrote:
>
>> Are they pre-populated with different numbers of items, or are they
>> empty when the test starts ?
>>
>> If they are empty and created by the test, can you run the test on the
>> collections used in the read tests so we get an idea how long it takes
>> to add 100 items to each of those collections.
>>
>> Thanks
>> Ian
>>
>> On 10 September 2013 12:25, Dishara Wijewardana <ddwijeward...@gmail.com>
>> wrote:
>> > Hi Ian,
>> > Those are newly added collections.
>> >
>> >
>> > On Tue, Sep 10, 2013 at 12:00 PM, Ian Boston <i...@tfd.co.uk> wrote:
>> >
>> >> Hi Dishara,
>> >> Great, thanks.
>> >> What do the LA, MA, and SA stand for ?
>> >> Best regards
>> >> Ian
>> >>
>> >> On Tuesday, September 10, 2013, Dishara Wijewardana wrote:
>> >>
>> >> > Hi Ian
>> >> > Also commited the 3 new test classes for CUD to google code repo.
>> >> >
>> >> >
>> >> > On Tue, Sep 10, 2013 at 10:30 AM, Dishara Wijewardana <
>> >> > ddwijeward...@gmail.com <javascript:;>> wrote:
>> >> >
>> >> > > Hi Ian,
>> >> > > Finally was able to fix ;-). Had to debug along with the path and
>> fix
>> >> > some
>> >> > > other issues also in Cassandra Provider impl. I have updated the
>> JIRA
>> >> > with
>> >> > > the new reports of CUD.
>> >> > > (I ran them one after the other respectively)
>> >> > >
>> >> > > In brief as follows.
>> >> > > CREATE
>> >> > > Average Latency Under Node LA  = 165 (ms)
>> >> > > Average Latency Under Node MA  = 203 (ms)
>> >> > > Average Latency Under Node SA  = 256 (ms)
>> >> > > #TOTAL CALLS = 300 Total Average Latency = 208 (ms)
>> >> > >
>> >> > > UPDATE
>> >> > > Average Latency Under Node LA   = 36 (ms)
>> >> > > Average Latency Under Node MA   = 29 (ms)
>> >> > > Average Latency Under Node SA   = 25 (ms)
>> >> > > #TOTAL CALLS = 300 Total Average Latency = 30 (ms)
>> >> > >
>> >> > > DELETE
>> >> > > Average Latency Under Node LA   = 20 (ms)
>> >> > > Average Latency Under Node MA   = 19 (ms)
>> >> > > Average Latency Under Node SA   = 19 (ms)
>> >> > > #TOTAL CALLS = 300 Total Average Latency = 19 (ms)
>> >> > >
>> >> > >
>> >> > >
>> >> > >
>> >> > >
>> >> > >
>> >> > >
>> >> > > On Mon, Sep 9, 2013 at 5:47 PM, Ian Boston <i...@tfd.co.uk> wrote:
>> >> > >
>> >> > >> Hi
>> >> > >> The CassandraImpl needs to return something suitable to represent
>> >> > >>
>> >> > >>  /content/cassandra/p
>> >> > >>
>> >> > >> For the moment, if the column family p does exist, return a new
>> type
>> >> > >> of read only resource, eg CassandraColumnFamilyResource.
>> >> > >>
>> >> > >> Ian
>> >> > >>
>> >> > >>
>> >> > >> On 9 September 2013 13:02, Dishara Wijewardana <
>> >> ddwijeward...@gmail.com
>> >> > >
>> >> > >> wrote:
>> >> > >> > On Mon, Sep 9, 2013 at 2:09 PM, Ian Boston <i...@tfd.co.uk>
>> wrote:
>> >> > >> >
>> >> > >> >> Hi,
>> >> > >> >> The call to processCreate a few lines earlier should have
>> created
>> >> the
>> >> > >> >> resource so that the subsequent call to getResource returned the
>> >> new
>> >> > >> >> resource into newResource.
>> >> > >> >>
>> >> > >> >> If you look through the calls the create operation is called in
>> >> > >> >>
>> >> > >> >>
>> >> > >> >>
>> >> > >>
>> >> >
>> >>
>> org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.deepGetOrCreateNode(ResourceResolver,
>> >> > >> >> String, Map<String, RequestProperty>, List<Modification>,
>> >> > >> >> VersioningConfiguration)
>> >> > >> >>
>> >> > >> >> Line 533
>> >> > >> >>
>> >> > >> >>                     resource = resolver.create(resource, name,
>> >> > props);
>> >> > >> >>
>> >> > >> >> Stick a breakpoint at that line and see, if its called, and if
>> the
>> >> > >> >> resource resolver calls your code.
>> >> > >> >>
>> >> > >> >>
>> >> > >> >>
>> >> > >> > Hi Ian,
>> >> > >> > Yes it calls the create method. As I see the issue is the commit
>> not
>> >> > >> > getting called and hence resolver cannot get the created
>> resource.
>> >> > >> > So I thought of commit on the fly @create method to verify that.
>> But
>> >> > we
>> >> > >> > have a problem here.
>> >> > >> >
>> >> > >> > When I try to create /content/cassandra/p/c node, as you exactly
>> >> > >> mentioned
>> >> > >> > before, it tries to create  /content/cassandra/p node.  In
>> Cassandra
>> >> > >> Impl,
>> >> > >> > there cannot be a node like  /content/cassandra/p and hence
>> returns
>> >> > >> NULL as
>> >> > >> > earlier and still create fails. Because "p" is the column family
>> >> (the
>> >> > >> model
>> >> > >> > which we agreed and implemented). So what is the best approach to
>> >> > >> overcome
>> >> > >> > this.
>> >> > >> >
>> >> > >> >
>> >> > >> >
>> >> > >> >> BTW: Its Ok that there is a newResource.adaptTo(Node.class) as
>> the
>> >> > >> >> result is checked for Null a moment later. You do not need to
>> >> support
>> >> > >> >> adaptTo(Node.class), which is a special case for Jcr.
>> >> > >> >>
>> >> > >> >> Best Regards
>> >> > >> >> Ian
>> >> > >> >>
>> >> > >> >> On 9 September 2013 06:05, Dishara Wijewardana <
>> >> > >> ddwijeward...@gmail.com>
>> >> > >> >> wrote:
>> >> > >> >> > Hi Ian,
>> >> > >> >> > I debug the servlet from line to line and locate the NPE that
>> >> > causes
>> >> > >> this
>> >> > >--
>> >> > Thanks
>> >> > /Dishara
>> >> >
>> >>
>> >
>> >
>> >
>> > --
>> > Thanks
>> > /Dishara
>>
>
>
>
> --
> Thanks
> /Dishara

Reply via email to