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,324 | Comments: 50,648

Privacy Policy Terms
filter by tags archive
66posts

Challenge

  1. (06 May 2022)

    Spot the optimization–solution

  2. (05 May 2022)

    Spot the optimization

  3. (06 Apr 2022)

    Why is this code broken?

  4. (16 Dec 2021)

    Find the slow down–answer

  5. (15 Dec 2021)

    Find the slow down

  6. (03 Nov 2021)

    The code review bug that gives me nightmares–The fix

  7. (02 Nov 2021)

    The code review bug that gives me nightmares–the issue

  8. (01 Nov 2021)

    The code review bug that gives me nightmares

  9. (16 Jun 2021)

    Detecting livelihood in a distributed cluster

  10. (21 Apr 2020)

    Generate matching shard id–answer

  11. (20 Apr 2020)

    Generate matching shard id

  12. (02 Jan 2020)

    Spot the bug in the stream

  13. (28 Sep 2018)

    The loop that leaks–Answer

  14. (27 Sep 2018)

    The loop that leaks

  15. (03 Apr 2018)

    The invisible concurrency bug–Answer

  16. (02 Apr 2018)

    The invisible concurrency bug

  17. (31 Jan 2018)

    Find the bug in the fix–answer

  18. (30 Jan 2018)

    Find the bug in the fix

  19. (19 Jan 2017)

    What does this code do?

  20. (26 Jul 2016)

    The race condition in the TCP stack, answer

  21. (25 Jul 2016)

    The race condition in the TCP stack

  22. (28 Apr 2015)

    What is the meaning of this change?

  23. (26 Sep 2013)

    Spot the bug

  24. (27 May 2013)

    The problem of locking down tasks…

  25. (17 Oct 2011)

    Minimum number of round trips

  26. (23 Aug 2011)

    Recent Comments with Future Posts

  27. (02 Aug 2011)

    Modifying execution approaches

  28. (29 Apr 2011)

    Stop the leaks

  29. (23 Dec 2010)

    This code should never hit production

  30. (17 Dec 2010)

    Your own ThreadLocal

  31. (03 Dec 2010)

    Querying relative information with RavenDB

  32. (29 Jun 2010)

    Find the bug

  33. (23 Jun 2010)

    Dynamically dynamic

  34. (28 Apr 2010)

    What killed the application?

  35. (19 Mar 2010)

    What does this code do?

  36. (04 Mar 2010)

    Robust enumeration over external code

  37. (16 Feb 2010)

    Premature optimization, and all of that…

  38. (12 Feb 2010)

    Efficient querying

  39. (10 Feb 2010)

    Find the resource leak

  40. (21 Oct 2009)

    Can you spot the bug?

  41. (18 Oct 2009)

    Why is this wrong?

  42. (17 Oct 2009)

    Write the check in comment

  43. (15 Sep 2009)

    NH Prof Exporting Reports

  44. (02 Sep 2009)

    The lazy loaded inheritance many to one association OR/M conundrum

  45. (01 Sep 2009)

    Why isn’t select broken?

  46. (06 Aug 2009)

    Find the bug fixes

  47. (26 May 2009)

    Find the bug

  48. (14 May 2009)

    multi threaded test failure

  49. (11 May 2009)

    The regex that doesn’t match

  50. (24 Mar 2009)

    probability based selection

  51. (13 Mar 2009)

    C# Rewriting

  52. (18 Feb 2009)

    write a self extracting program

  53. (04 Sep 2008)

    Don't stop with the first DSL abstraction

  54. (02 Aug 2008)

    What is the problem?

  55. (28 Jul 2008)

    What does this code do?

  56. (26 Jul 2008)

    Find the bug fix

  57. (05 Jul 2008)

    Find the deadlock

  58. (03 Jul 2008)

    Find the bug

  59. (02 Jul 2008)

    What is wrong with this code

  60. (05 Jun 2008)

    why did the tests fail?

  61. (27 May 2008)

    Striving for better syntax

  62. (13 Apr 2008)

    calling generics without the generic type

  63. (12 Apr 2008)

    The directory tree

  64. (24 Mar 2008)

    Find the version

  65. (21 Jan 2008)

    Strongly typing weakly typed code

  66. (28 Jun 2007)

    Windsor Null Object Dependency Facility

37posts

Production postmortem

  1. (29 Apr 2022)

    Deduplicating replication speed

  2. (25 Apr 2022)

    The network latency and the I/O spikes

  3. (22 Apr 2022)

    The encrypted database that was too big to replicate

  4. (20 Apr 2022)

    Misleading security and other production snafus

  5. (03 Jan 2022)

    An error on the first act will lead to data corruption on the second act…

  6. (13 Dec 2021)

    The memory leak that only happened on Linux

  7. (17 Sep 2021)

    The Guinness record for page faults & high CPU

  8. (07 Jan 2021)

    The file system limitation

  9. (23 Mar 2020)

    high CPU when there is little work to be done

  10. (21 Feb 2020)

    The self signed certificate that couldn’t

  11. (31 Jan 2020)

    The slow slowdown of large systems

  12. (07 Jun 2019)

    Printer out of paper and the RavenDB hang

  13. (18 Feb 2019)

    This data corruption bug requires 3 simultaneous race conditions

  14. (25 Dec 2018)

    Handled errors and the curse of recursive error handling

  15. (23 Nov 2018)

    The ARM is killing me

  16. (22 Feb 2018)

    The unavailable Linux server

  17. (06 Dec 2017)

    data corruption, a view from INSIDE the sausage

  18. (01 Dec 2017)

    The random high CPU

  19. (07 Aug 2017)

    30% boost with a single line change

  20. (04 Aug 2017)

    The case of 99.99% percentile

  21. (02 Aug 2017)

    The lightly loaded trashing server

  22. (23 Aug 2016)

    The insidious cost of managed memory

  23. (05 Feb 2016)

    A null reference in our abstraction

  24. (27 Jan 2016)

    The Razor Suicide

  25. (13 Nov 2015)

    The case of the “it is slow on that machine (only)”

  26. (21 Oct 2015)

    The case of the slow index rebuild

  27. (22 Sep 2015)

    The case of the Unicode Poo

  28. (03 Sep 2015)

    The industry at large

  29. (01 Sep 2015)

    The case of the lying configuration file

  30. (31 Aug 2015)

    The case of the memory eater and high load

  31. (14 Aug 2015)

    The case of the man in the middle

  32. (05 Aug 2015)

    Reading the errors

  33. (29 Jul 2015)

    The evil licensing code

  34. (23 Jul 2015)

    The case of the native memory leak

  35. (16 Jul 2015)

    The case of the intransigent new database

  36. (13 Jul 2015)

    The case of the hung over server

  37. (09 Jul 2015)

    The case of the infected cluster

3posts

Recording

  1. (11 Apr 2022)

    Clean Architecture with RavenDB

  2. (14 Mar 2022)

    Database Security in a Hostile World

  3. (02 Mar 2022)

    RavenDB–a really boring database

10posts

Answer

  1. (07 Apr 2022)

    Why is this code broken?

  2. (20 Jan 2017)

    What does this code do?

  3. (16 Aug 2011)

    Modifying execution approaches

  4. (30 Apr 2011)

    Stopping the leaks

  5. (24 Dec 2010)

    This code should never hit production

  6. (21 Dec 2010)

    Your own ThreadLocal

  7. (11 Feb 2010)

    Debugging a resource leak

  8. (03 Sep 2009)

    The lazy loaded inheritance many to one association OR/M conundrum

  9. (04 Sep 2008)

    Don't stop with the first DSL abstraction

  10. (12 Jun 2008)

    How many tests?

2posts

Request for comments

  1. (10 Mar 2022)

    Removing graph queries from RavenDB

  2. (10 Oct 2008)

    Changing the way dynamic mocks behave in Rhino Mocks

5posts

Webinar

  1. (07 Mar 2022)

    Database Security in a Hostile World

  2. (11 Jun 2021)

    Machine Learning and Time Series in RavenDB with Live Examples

  3. (12 May 2021)

    Real Time Architecture

  4. (15 Jan 2020)

    RavenDB’s unique features

  5. (22 Feb 2011)

    Building Document Based Systems

12posts

RavenDB

  1. (25 Feb 2022)

    Domain Modeling and Data Persistency

  2. (07 Feb 2022)

    Practical Considerations for ACID/MVCC Storage Engines

  3. (21 Nov 2013)

    The Road to Release

  4. (26 Mar 2012)

    Self optimizing Ids

  5. (27 Feb 2012)

    It was the weekend before the wedding…

  6. (17 Feb 2012)

    Index Boosting

  7. (12 Sep 2011)

    Multi Maps / Reduce indexes

  8. (24 Apr 2011)

    Let us write our own JSON Parser, NOT

  9. (17 Apr 2011)

    Safe by default design – it works!

  10. (29 Sep 2010)

    Splitting entities across several documents

  11. (22 Sep 2010)

    Replicating to a relational database

  12. (12 Aug 2010)

    Includes

10posts

Badly implementing encryption

  1. (24 Feb 2022)

    Part X-Additional data

  2. (23 Feb 2022)

    Part IX–SIV

  3. (22 Feb 2022)

    Part VIII–timings attacks and side channels

  4. (21 Feb 2022)

    Part VII–implementing authenticated encryption

  5. (18 Feb 2022)

    Part VI–malleable encryption

  6. (17 Feb 2022)

    Part V–nonce reuse

  7. (16 Feb 2022)

    Part IV–keyed hash function

  8. (15 Feb 2022)

    Part III–breaking your encryption apart

  9. (14 Feb 2022)

    Part II–breaking the code

  10. (11 Feb 2022)

    Part I

14posts

Implementing a file pager in Zig

  1. (24 Jan 2022)

    Pages, buffers and metadata, oh my!

  2. (21 Jan 2022)

    Write behind implementation

  3. (19 Jan 2022)

    Write behind policies

  4. (18 Jan 2022)

    Write durability and concurrency

  5. (17 Jan 2022)

    Writing data

  6. (12 Jan 2022)

    Reclaiming memory

  7. (11 Jan 2022)

    Reading from the disk

  8. (10 Jan 2022)

    Managing the list of files

  9. (05 Jan 2022)

    Reading & Writing from the disk

  10. (04 Jan 2022)

    Rethinking my approach

  11. (28 Dec 2021)

    Managing chunk metadata

  12. (27 Dec 2021)

    Overall design

  13. (24 Dec 2021)

    Using mmap

  14. (23 Dec 2021)

    What do we need?

30posts

re

  1. (14 Jan 2022)

    Are You Sure You Want to Use MMAP in Your Database Management System?

  2. (09 Dec 2021)

    Why IndexedDB is slow and what to use instead

  3. (23 Jun 2021)

    The performance regression odyssey

  4. (27 Oct 2020)

    Investigating query performance issue in RavenDB

  5. (27 Dec 2019)

    Writing a very fast cache service with millions of entries

  6. (26 Dec 2019)

    Why databases use ordered indexes but programming uses hash tables

  7. (12 Nov 2019)

    Document-Level Optimistic Concurrency in MongoDB

  8. (25 Oct 2019)

    RavenDB. Two years of pain and joy

  9. (19 Aug 2019)

    The Order of the JSON, AKA–irresponsible assumptions and blind spots

  10. (10 Oct 2017)

    Entity Framework Core performance tuning–Part III

  11. (09 Oct 2017)

    Different I/O Access Methods for Linux

  12. (06 Oct 2017)

    Entity Framework Core performance tuning–Part II

  13. (04 Oct 2017)

    Entity Framework Core performance tuning–part I

  14. (26 Apr 2017)

    Writing a Time Series Database from Scratch

  15. (28 Jul 2016)

    Why Uber Engineering Switched from Postgres to MySQL

  16. (15 Jun 2016)

    Why you can't be a good .NET developer

  17. (12 Nov 2013)

    Why You Should Never Use MongoDB

  18. (21 Aug 2013)

    How memory mapped files, filesystems and cloud storage works

  19. (15 Apr 2012)

    Kiip’s MongoDB’s experience

  20. (18 Oct 2010)

    Diverse.NET

  21. (10 Apr 2010)

    NoSQL, meh

  22. (30 Sep 2009)

    Are you smart enough to do without TDD

  23. (17 Aug 2008)

    MVC Storefront Part 19

  24. (24 Mar 2008)

    How to create fully encapsulated Domain Models

  25. (21 Feb 2008)

    Versioning Issues With Abstract Base Classes and Interfaces

  26. (18 Aug 2007)

    Saving to Blob

  27. (27 Jul 2007)

    SSIS - 15 Faults Rebuttal

  28. (29 May 2007)

    The OR/M Smackdown

  29. (06 Mar 2007)

    IoC and Average Programmers

  30. (19 Sep 2005)

    DLinq Mapping

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. Challenge (66):
    06 May 2022 - Spot the optimization–solution
  2. Production postmortem (37):
    29 Apr 2022 - Deduplicating replication speed
  3. Recording (3):
    11 Apr 2022 - Clean Architecture with RavenDB
  4. Answer (10):
    07 Apr 2022 - Why is this code broken?
  5. Request for comments (2):
    10 Mar 2022 - Removing graph queries from RavenDB
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats