Cliff Click - August 6th, 2007
Looks like I need to take some more of my own medicine! Here's code I worked on over a year ago, and it took a year for the data race to finally come home to roost. The following API is fundamentally flawed; no implementation of it can dodge the data race. Here's the deal: I've got a field which from time-to-time is reset to NULL, generally as part of some overall timeout-based cache-flushing policy. It's also in a time-critical function so I'm using lock-free accessing code with lots of comments on proper usage,
Cliff Click - June 19th, 2007
I visited FCRC 2007 and all you got was this lousy blog.... The 'F' in 'FCRC' stands for 'Federated' as 'loads and loads' of Computing Research Conferences. 2000 Computer Scientists under one roof! The very idea is... Nerdy. You're allowed to surf between them (the conferences not the scientists), so it's a chance for me to visit some conferences I'd otherwise never visit. The actual trip was very un-inspiring (San Diego is so.... mild), so good for mental focus I suppose.
Cliff Click - June 3rd, 2007
This blog is about some of my thinking that went into the "non-state-machine" parts of the Non-Blocking Hash Table. As with all engineering, "it depends". What makes sense in one context can lose out in another situation. Your Mileage May Value, Caveat Emptor, etc. Bruce Holt writes:But two things give me the sh*ts! Non-prime table size, and linear probing.
Cliff Click - May 16th, 2007
Doug Lea wrote:Hi Cliff, Could you remind us why Java doesn't allow tail-recursion optimization? Thanks! -Doug
Cliff Click - May 15th, 2007
I'm still de-compressing from JavaOne but have almost caught up. I had a long talk with the CEO of SureLogic; I like their technology a lot, and they have the Bill Pugh stamp of approval. We (Azul & SureLogic) are exploring some kind of connection; they find concurrency bugs, we have customers with concurrency bugs. I also yakked with Fortify, another Java static analysis tool company. Hakistan makes the best chocolate! :-)
Cliff Click - May 8th, 2007
I've been having an interesting conversation about the NonBlocking or Lock-Free Hash Table, running down the tail end of this post; hopefully Kevin won't mind if I repost some of his comments here. Typepad does not allow comments to have HTML and our replies & counter-replies are getting hard to read! So Kevin writes: I would note there's no way for you to "read the current K/V state". You have to agree with that. There's no such thing or way.
Cliff Click - May 1st, 2007
I've been doing Azul's Java6 port intermixed with working on JavaOne slides and OOPSLA PC reviews.
Cliff Click - April 23rd, 2007
I am please to announce, after loooong delay, the source code to my NonBlocking Hash Table is available as open-source on SourceForge: http://sourceforge.net/projects/high-scale-lib
Cliff Click - April 15th, 2007
Suppose I want to write a microbench to test something. Here's a for-instance: // Time sqrt
long start = System.currentTimeMillis();
for( int i=0; i<1000000; i++ )
Math.sqrt(i);
long stop = System.currentTimeMillis();
System.out.println("sqrts/sec="
+1000000.0/((double)((stop-start)/1000))); I run this and get:
Cliff Click - April 9th, 2007
I've been busy hacking JavaOne slides (lots of good feedback!), and the source (Bill Pugh wants more fences - well, really more ordering guarantees) and getting a SourceForge account setup and getting Azul to agree to a license and my home machine fried it's harddrive (dead, dead, dead and dead and lots of wonderful chunky sounds when it powers up) and fire-fighting bugs and the usual daily overhead issues, etc, but the worst of those hurdles are behind me. I hope to have the source up soon!