Ayende @ Rahien

Ayende @ Rahien

Oren Eini aka Ayende Rahien CEO of Hibernating Rhinos LTD, which develops RavenDB, a NoSQL Open Source Document Database.

Get in touch with me:

oren@ravendb.net

+972 52-548-6969

Posts: 7,461 | Comments: 50,984

Copyright ©️ Ayende Rahien 2004 — 2023

Privacy Policy Terms
filter by tags archive
stack view grid view
  • architecture (576) rss
  • bugs (439) rss
  • challanges (123) rss
  • community (362) rss
  • databases (460) rss
  • design (873) rss
  • development (596) rss
  • hibernating-practices (63) rss
  • miscellaneous (590) rss
  • performance (370) rss
  • programming (1045) rss
  • raven (1369) rss
  • ravendb.net (447) rss
  • reviews (182) rss
  • uberprof (41) rss
  • 2023
    • September (6)
    • August (12)
    • July (5)
    • June (15)
    • May (3)
    • April (11)
    • March (5)
    • February (5)
    • January (8)
  • 2022
    • December (5)
    • November (7)
    • October (7)
    • September (9)
    • August (10)
    • July (15)
    • June (12)
    • May (9)
    • April (14)
    • March (15)
    • February (13)
    • January (16)
  • 2021
    • December (23)
    • November (20)
    • October (16)
    • September (6)
    • August (16)
    • July (11)
    • June (16)
    • May (4)
    • April (10)
    • March (11)
    • February (15)
    • January (14)
  • 2020
    • December (10)
    • November (13)
    • October (15)
    • September (6)
    • August (9)
    • July (9)
    • June (17)
    • May (15)
    • April (14)
    • March (21)
    • February (16)
    • January (13)
  • 2019
    • December (17)
    • November (14)
    • October (16)
    • September (10)
    • August (8)
    • July (16)
    • June (11)
    • May (13)
    • April (18)
    • March (12)
    • February (19)
    • January (23)
  • 2018
    • December (15)
    • November (14)
    • October (19)
    • September (18)
    • August (23)
    • July (20)
    • June (20)
    • May (23)
    • April (15)
    • March (23)
    • February (19)
    • January (23)
  • 2017
    • December (21)
    • November (24)
    • October (22)
    • September (21)
    • August (23)
    • July (21)
    • June (24)
    • May (21)
    • April (21)
    • March (23)
    • February (20)
    • January (23)
  • 2016
    • December (17)
    • November (18)
    • October (22)
    • September (18)
    • August (23)
    • July (22)
    • June (17)
    • May (24)
    • April (16)
    • March (16)
    • February (21)
    • January (21)
  • 2015
    • December (5)
    • November (10)
    • October (9)
    • September (17)
    • August (20)
    • July (17)
    • June (4)
    • May (12)
    • April (9)
    • March (8)
    • February (25)
    • January (17)
  • 2014
    • December (22)
    • November (19)
    • October (21)
    • September (37)
    • August (24)
    • July (23)
    • June (13)
    • May (19)
    • April (24)
    • March (23)
    • February (21)
    • January (24)
  • 2013
    • December (23)
    • November (29)
    • October (27)
    • September (26)
    • August (24)
    • July (24)
    • June (23)
    • May (25)
    • April (26)
    • March (24)
    • February (24)
    • January (21)
  • 2012
    • December (19)
    • November (22)
    • October (27)
    • September (24)
    • August (30)
    • July (23)
    • June (25)
    • May (23)
    • April (25)
    • March (25)
    • February (28)
    • January (24)
  • 2011
    • December (17)
    • November (14)
    • October (24)
    • September (28)
    • August (27)
    • July (30)
    • June (19)
    • May (16)
    • April (30)
    • March (23)
    • February (11)
    • January (26)
  • 2010
    • December (29)
    • November (28)
    • October (35)
    • September (33)
    • August (44)
    • July (17)
    • June (20)
    • May (53)
    • April (29)
    • March (35)
    • February (33)
    • January (36)
  • 2009
    • December (37)
    • November (35)
    • October (53)
    • September (60)
    • August (66)
    • July (29)
    • June (24)
    • May (52)
    • April (63)
    • March (35)
    • February (53)
    • January (50)
  • 2008
    • December (58)
    • November (65)
    • October (46)
    • September (48)
    • August (96)
    • July (87)
    • June (45)
    • May (51)
    • April (52)
    • March (70)
    • February (43)
    • January (49)
  • 2007
    • December (100)
    • November (52)
    • October (109)
    • September (68)
    • August (80)
    • July (56)
    • June (150)
    • May (115)
    • April (73)
    • March (124)
    • February (102)
    • January (68)
  • 2006
    • December (95)
    • November (53)
    • October (120)
    • September (57)
    • August (88)
    • July (54)
    • June (103)
    • May (89)
    • April (84)
    • March (143)
    • February (78)
    • January (64)
  • 2005
    • December (70)
    • November (97)
    • October (91)
    • September (61)
    • August (74)
    • July (92)
    • June (100)
    • May (53)
    • April (42)
    • March (41)
    • February (84)
    • January (31)
  • 2004
    • December (49)
    • November (26)
    • October (26)
    • September (6)
    • April (10)
Couchbase vs RavenDB Performance at Rakuten Kobo Whitepaper
  previous post next post  
Apr 30 2012

Multi Threading Insanity

time to read 1 min | 27 words

Insanity: doing the same thing over and over again and expecting different results.
Albert Einstein

You obviously never done any multi threading work, dude!

Tweet Share Share 10 comments
Tags:
  • Humor

  previous post next post  

Comments

Frank Quednau
30 Apr 2012
09:28 AM
Frank Quednau

LLO!

Gene Hughson
30 Apr 2012
13:15 PM
Gene Hughson

And here I thought insanity was the outcome of trying to figure out why you get different results when doing the same thing over and over again.

Wyatt Barnett
30 Apr 2012
13:20 PM
Wyatt Barnett

Well, one could argue that the fun in multi-threading is proving you are doing the same thing over and over again to lead to the same results. So it feels insane but it is perfectly rational and really just insanely complex.

Chris
30 Apr 2012
14:25 PM
Chris

It is easy to forget that time is variable too. Its just one that we can't control (at least not in the absolute sense), so it is usually considered to be a dependent variable.

In many cases, you may be doing exactly the same thing, but another unidentified or difficult/impossible to control variable may be changing (such as the OS performing context switches). Getting deterministic results isn't always easy.

Matt Johnson
30 Apr 2012
15:08 PM
Matt Johnson

Sorry to be a stickler, but Einstein probably never said this. See

http://wiki.answers.com/Q/Who_first_said_the_definition_of_insanity_is_to_do_the_same_thing_over_and_over_and_expect_different_results

and

http://message.snopes.com/showthread.php?t=33566

As several posters commented, this comment goes against the idea of "if first you don't succeed, try, try again", which Einstein probably would have agreed with.

If that were indeed the true definition of insanity, then all fisherman would have to be wackos. Well, perhaps some are...

:)

Matt Johnson
30 Apr 2012
15:10 PM
Matt Johnson

Not sure why that first link I posted got mangled... Here's another try. http://tinyurl.com/lx698m

Joel P
30 Apr 2012
15:15 PM
Joel P

From https://twitter.com/#!/nedbat/statuses/194452404794691584:

Some people, when confronted with a problem, think, "I know, I'll use threads," and then two they hav erpoblesms.

Steve
30 Apr 2012
15:38 PM
Steve

A mentor of mine always liked pointing out "Computers are deterministic" whenever we complained we couldn't reproduce a bug.

Adron Hall
30 Apr 2012
22:40 PM
Adron Hall

Well, this still holds true.

Doing threads, is indeed, fitting of the description of insanity. If you aren't when you start, you may be by the time you're done. :)

Jeme
01 May 2012
09:27 AM
Jeme

@Steve : It's true, but we are never fully aware of what we asked it to do. ;)

Comment preview

Comments have been closed on this topic.

Markdown formatting

ESC to close

Markdown turns plain text formatting into fancy HTML formatting.

Phrase Emphasis

*italic*   **bold**
_italic_   __bold__

Links

Inline:

An [example](http://url.com/ "Title")

Reference-style labels (titles are optional):

An [example][id]. Then, anywhere
else in the doc, define the link:
  [id]: http://example.com/  "Title"

Images

Inline (titles are optional):

![alt text](/path/img.jpg "Title")

Reference-style:

![alt text][id]
[id]: /url/to/img.jpg "Title"

Headers

Setext-style:

Header 1
========
Header 2
--------

atx-style (closing #'s are optional):

# Header 1 #
## Header 2 ##
###### Header 6

Lists

Ordered, without paragraphs:

1.  Foo
2.  Bar

Unordered, with paragraphs:

*   A list item.
    With multiple paragraphs.
*   Bar

You can nest them:

*   Abacus
    * answer
*   Bubbles
    1.  bunk
    2.  bupkis
        * BELITTLER
    3. burper
*   Cunning

Blockquotes

> Email-style angle brackets
> are used for blockquotes.
> > And, they can be nested.
> #### Headers in blockquotes
> 
> * You can quote a list.
> * Etc.

Horizontal Rules

Three or more dashes or asterisks:

---
* * *
- - - - 

Manual Line Breaks

End a line with two or more spaces:

Roses are red,   
Violets are blue.

Fenced Code Blocks

Code blocks delimited by 3 or more backticks or tildas:

```
This is a preformatted
code block
```

Header IDs

Set the id of headings with {#<id>} at end of heading line:

## My Heading {#myheading}

Tables

Fruit    |Color
---------|----------
Apples   |Red
Pears	 |Green
Bananas  |Yellow

Definition Lists

Term 1
: Definition 1
Term 2
: Definition 2

Footnotes

Body text with a footnote [^1]
[^1]: Footnote text here

Abbreviations

MDD <- will have title
*[MDD]: MarkdownDeep

 

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. Challenge (72):
    19 Sep 2023 - Spot the bug
  2. Filtering negative numbers, fast (4):
    15 Sep 2023 - Beating memcpy()
  3. Recording (9):
    28 Aug 2023 - RavenDB and High Performance with Oren Eini
  4. Production postmortem (50):
    24 Jul 2023 - The dog ate my request
  5. Podcast (4):
    21 Jul 2023 - Hansleminutes - All the Performance with RavenDB's Oren Eini
View all series

RECENT COMMENTS

  • Markus, It's perfectly fine for the Spans to point to the caller's stack. It would be a problem is they referred to data in...
    By James Curran on Challenge: Spot the bug
  • Markus, No, that is fine. I'm returning the portion that I wrote, and the caller can deal with that. We aren't _copying_ ...
    By Oren Eini on Challenge: Spot the bug
  • Well, the spans should be 'ref Span<long>', because you'd want the sorted spans back when you call the method. It will wor...
    By Markus on Challenge: Spot the bug
  • Catalin, Yup!
    By Oren Eini on Challenge: Spot the bug
  • My guess this sort should be like this: ``` keys[..index].Sort(vals[..index]); return index; ```
    By Catalin Pop on Challenge: Spot the bug

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats
}