Return-Path: Delivered-To: apmail-incubator-cassandra-user-archive@minotaur.apache.org Received: (qmail 14686 invoked from network); 27 Oct 2009 22:47:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 27 Oct 2009 22:47:44 -0000 Received: (qmail 45149 invoked by uid 500); 27 Oct 2009 20:01:03 -0000 Delivered-To: apmail-incubator-cassandra-user-archive@incubator.apache.org Received: (qmail 45112 invoked by uid 500); 27 Oct 2009 20:01:03 -0000 Mailing-List: contact cassandra-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-user@incubator.apache.org Delivered-To: mailing list cassandra-user@incubator.apache.org Received: (qmail 45103 invoked by uid 99); 27 Oct 2009 20:01:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Oct 2009 20:01:03 +0000 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [72.47.224.12] (HELO n12.c03.server-system.net) (72.47.224.12) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Oct 2009 20:00:54 +0000 Received: from pool-71-104-222-104.lsanca.dsl-w.verizon.net ([71.104.222.104]:50091 helo=iizuu.com) by n12.c03.server-system.net with esmtpa (Exim 4.63) (envelope-from ) id 1N2sDW-0005JW-Ix for cassandra-user@incubator.apache.org; Tue, 27 Oct 2009 13:00:32 -0700 Content-class: urn:content-classes:message Subject: RE: Performance of get MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01CA5740.1F0AF388" Date: Tue, 27 Oct 2009 13:00:24 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <7FC4BE368A334142B104A2B72F4435AA0452F6@iizuusbs.iizuu.local> X-MS-Has-Attach: X-MS-TNEF-Correlator: <7FC4BE368A334142B104A2B72F4435AA0452F6@iizuusbs.iizuu.local> Thread-Topic: Performance of get Thread-Index: AcpXNEzq3TkSMy2ZRVSwYQBjbEkt3gACiFuu References: <7FC4BE368A334142B104A2B72F4435AA0452F3@iizuusbs.iizuu.local> From: "Christopher McKenzie" To: X-Authenticated-User: 56929 iizuu@dflenterprises.com X-Spam-Level: X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Status: "score=-1.4 tests=ALL_TRUSTED version=3.1.7 cmae=v=1.0 c=1 a=dBnbCCo6mj5+6W1V+KzgIA==:17 a=9j4T1TGxlfts3LvNskEA:9 a=f3_hGyRuvZa-s6ONPgUA:7 a=ptQ8V6Zhh6ivH-_gcI45R8DaUcMA:4 a=MSl-tDqOz04A:10 a=xQRuQJH7oC8A:10 a=LGJVGjSHX47g-SdMi1cA:9 a=yc9X88RmMHsVokv2VeoInGLRl1EA:4 xcat=Undefined/Undefined" This is a multi-part message in MIME format. ------_=_NextPart_001_01CA5740.1F0AF388 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable First, my email client died, so I don't know if my original response = went out. I apologize if there is a duplicate here: Thanks for the info on get_slice -- it's serving me well now. However, = your response definitely rubbed me the wrong way. Exceptions are a special feature of languages often with their own = keywords, primitives, and usually chapters in books. I don't profess to = be an expert in the various exception models for all the versions of = various implementations of C++, Java, Python, PHP, Ruby, Erlang, Perl, = Haskell, C#, Cocoa, Smalltalk, and OCaml that thrift supports. But I = would claim that, with such a large heterogeneous and dynamic support = base, one should use something as varied and unpredictable as the = exception handling models with great care and I don't "personally feel" = that the understandably expected error case of Get should be escalated = to be handled by this mechanism. I'm curious as to what others think about this - I realize that handling = this case is more philosophy driven then anything. Thanks... -----Original Message----- From: Jonathan Ellis [mailto:jbellis@gmail.com] Sent: Tue 10/27/2009 11:35 AM To: cassandra-user@incubator.apache.org Subject: Re: Performance of get =20 On Tue, Oct 27, 2009 at 12:20 PM, Christopher McKenzie wrote: > Checking for existence, a normal control flow operation, requires = using a > try/catch method, which are not intended for normal control flow. That was conventional wisdom in the '80s. Less so today. (Along with gems like "there should only be one return point from any function." Remember that one?) > My experience with PHP has shown that interrupts come at a cost of = about 200 > times that of a type check. > Could Get possibly return a reserved value instead? Sorry, it's not worth breaking everyone's existing code to accommodate the PHP vm sucking. Have you actually tested to make sure it's not fast "enough?" I'm really skeptical that even with a terrible exception design, this will be the bottleneck compared with network + cassandra latency + the rest of your code. If it really is your bottleneck, you have a couple options: - use get_slice, which will return an empty list instead of throwing NFE [the thrift interface declares that it throws, but this is wrong, I will fix it] - use python; we just did some testing with a miss-dominated workload and the client was not a bottleneck even at 20000+ req/s -Jonathan ------_=_NextPart_001_01CA5740.1F0AF388 Content-Type: application/ms-tnef; name="winmail.dat" Content-Transfer-Encoding: base64 eJ8+Ih8UAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy b3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEEgAEAFwAAAFJFOiBQZXJmb3JtYW5jZSBv ZiBnZXQAuAcBBYADAA4AAADZBwoAGwANAAAAGAACACwBASCAAwAOAAAA2QcKABsADQAAABgAAgAs AQEJgAEAIQAAAEJCQzMyODM2QTlENDczNEZBNzVFMTc1QkYxOEU2Q0ZBAGgHAQOQBgCsDgAAOQAA AAMAJgAAAAAAAwA2AAAAAABAADkAiPMKH0BXygEeAD0AAQAAAAUAAABSRTogAAAAAAIBRwABAAAA LgAAAGM9VVM7YT0gO3A9SUlaVVU7bD1JSVpVVVNCUy0wOTEwMjcyMDAwMjRaLTE0MwAAAB4ASQAB AAAAFwAAAFJlOiBQZXJmb3JtYW5jZSBvZiBnZXQAAEAATgCA+EQxNFfKAR4AWgABAAAADwAAAEpv bmF0aGFuIEVsbGlzAAACAVsAAQAAAD4AAAAAAAAAgSsfpL6jEBmdbgDdAQ9UAgAAAABKb25hdGhh biBFbGxpcwBTTVRQAGpiZWxsaXNAZ21haWwuY29tAAAAAgFcAAEAAAAXAAAAU01UUDpKQkVMTElT QEdNQUlMLkNPTQAAHgBdAAEAAAAPAAAASm9uYXRoYW4gRWxsaXMAAAIBXgABAAAAPgAAAAAAAACB Kx+kvqMQGZ1uAN0BD1QCAAAAAEpvbmF0aGFuIEVsbGlzAFNNVFAAamJlbGxpc0BnbWFpbC5jb20A AAACAV8AAQAAABcAAABTTVRQOkpCRUxMSVNAR01BSUwuQ09NAAAeAGYAAQAAAAUAAABTTVRQAAAA AB4AZwABAAAAEgAAAGpiZWxsaXNAZ21haWwuY29tAAAAHgBoAAEAAAAFAAAAU01UUAAAAAAeAGkA AQAAABIAAABqYmVsbGlzQGdtYWlsLmNvbQAAAB4AcAABAAAAEwAAAFBlcmZvcm1hbmNlIG9mIGdl dAAAAgFxAAEAAAAbAAAAAcpXNEzq3TkSMy2ZRVSwYQBjbEkt3gACiFuuAB4AdAABAAAAJAAAAGNh c3NhbmRyYS11c2VyQGluY3ViYXRvci5hcGFjaGUub3JnAB4AGgwBAAAAFQAAAENocmlzdG9waGVy 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 L5Eps5eiVswf0P8ngFqzKxEjQSmzpNgpk0xx/5tBjKIjoS9xLcQkdVpxSNL/Jrd51qPCkac2gTsg j1CCoX+M4ZM1L4JB4R+QKBEkhE78RkVj8CXyQeWLc54QJyG/BYFFQY6GquGykzIhYloGu6OSLDIs VzWwNCqweCdxK2WVrsVwPQM7ITEgav8zUB5CK5BJEpwzKBKhVTKA/QQQLX8xIGFSMqaSF7CTgP8k hDMSJfId9X3yepIjcKTZP6EDQbFnAWcQpuB3US9zF1/7YxYkin3DwAAAHgA1EAEAAAA+AAAAPDdG QzRCRTM2OEEzMzQxNDJCMTA0QTJCNzJGNDQzNUFBMDQ1MkY2QGlpenV1c2JzLmlpenV1LmxvY2Fs PgAAAB4AORABAAAAfAAAADw3RkM0QkUzNjhBMzM0MTQyQjEwNEEyQjcyRjQ0MzVBQTA0NTJGM0Bp aXp1dXNicy5paXp1dS5sb2NhbD4gPGUwNjU2Mzg4MDkxMDI3MTEzNXc1YzkwMzQyM2kxMDNjZDUx NTgwODcwYjZmQG1haWwuZ21haWwuY29tPgAeAEcQAQAAAA8AAABtZXNzYWdlL3JmYzgyMgAACwDy EAEAAAAfAPMQAQAAADoAAABSAEUAJQAzAEEAIABQAGUAcgBmAG8AcgBtAGEAbgBjAGUAIABvAGYA IABnAGUAdAAuAEUATQBMAAAAAAALAPYQAAAAAEAABzCaZlZuPlfKAUAACDA/GhIfQFfKAQMA3j+v bwAAAwDxPwkEAAAeAPg/AQAAABUAAABDaHJpc3RvcGhlciBNY0tlbnppZQAAAAACAfk/AQAAAF4A AAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAAAAAAL089SUlaVVUvT1U9RklSU1QgQURNSU5JU1RS QVRJVkUgR1JPVVAvQ049UkVDSVBJRU5UUy9DTj1DTUNLRU5aSUUAAAAeAPo/AQAAABUAAABTeXN0 ZW0gQWRtaW5pc3RyYXRvcgAAAAACAfs/AQAAAB4AAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAA AAAALgAAAAMA/T/kBAAAAwAZQAAAAAADABpAAAAAAAMAHUAAAAAAAwAeQAAAAAAeADBAAQAAAAoA AABDTUNLRU5aSUUAAAAeADFAAQAAAAoAAABDTUNLRU5aSUUAAAAeADJAAQAAABIAAABqYmVsbGlz QGdtYWlsLmNvbQAAAB4AM0ABAAAAEgAAAGpiZWxsaXNAZ21haWwuY29tAAAAHgA4QAEAAAAKAAAA Q01DS0VOWklFAAAAHgA5QAEAAAACAAAALgAAAAMAdkD/////CwApAAAAAAALACMAAAAAAAMABhDr E/pJAwAHEL8HAAADABAQAAAAAAMAERAAAAAAHgAIEAEAAABlAAAARklSU1QsTVlFTUFJTENMSUVO VERJRUQsU09JRE9OVEtOT1dJRk1ZT1JJR0lOQUxSRVNQT05TRVdFTlRPVVRJQVBPTE9HSVpFSUZU SEVSRUlTQURVUExJQ0FURUhFUkU6VEhBTgAAAAACAX8AAQAAAD4AAAA8N0ZDNEJFMzY4QTMzNDE0 MkIxMDRBMkI3MkY0NDM1QUEwNDUyRjZAaWl6dXVzYnMuaWl6dXUubG9jYWw+AAAAoT4= ------_=_NextPart_001_01CA5740.1F0AF388--