Oren Eini is a senior developer / architect, focusing on architecture, data access and best practices. Most often, he is working on building complex business systems using .Net 2.0, NHibernate and Castle's Frameworks, providing training and guidance for the use of Object Relational Mapping, Inversion of Control, Domain Driven Design and other exciting topics. Oren is an active member in several leading Open Source projects, including (but not limited :-) ) NHibernate, Castle and Rhino Mocks.
Ayende @ Rahien | 28 Aug 2015 09:00
Oren Eini writes "....For a feature in RavenDB, I need to figure out the maximum number of outputs per document an index has. Now, indexing runs in multiple threads at the same time, so we ended up with the following code: var actualIndexOutput =..."
Read more » Concurrent max value
Ayende @ Rahien | 27 Aug 2015 09:00
Oren Eini writes "....I was telling my wife about my day at work, and the conversation went something like that: Me: So we spent all day trying to optimize this really expensive query. Wife: What made it so expensive? Me: We weren’t sure, but it run for 300 – 400 ms!..."
Read more » Technical observations from my wife
Ayende @ Rahien | 26 Aug 2015 09:00
Oren Eini writes "....We got a customer request about performance issues they were seeing on startup on a particular set of machines. Those machine run in a cloud environment, and they have… peculiar, one might say deviant, I/O characteristics. In particular, the I/O..."
Read more » Optimizing I/O throughput
Ayende @ Rahien | 25 Aug 2015 09:00
Oren Eini writes "....There is a pretty interesting discussion in the Raft mailing list, about clarifying some aspects of the Raft protocol. This led to some in depth discussion on the difference between algorithms in their raw state and the actual practice that you need..."
Read more » Unsafe operations are required in the real world
Ayende @ Rahien | 24 Aug 2015 09:00
Oren Eini writes "....Recently I pulled some code from a colleague, and tried to test it. It worked, which was fine, so I let it run the tests, and went out to lunch. When I came back, I was surprised to discover that the build has failed, not because of some test..."
Read more » The “you broke the build!” game
Ayende @ Rahien | 21 Aug 2015 09:00
Oren Eini writes "....We care very deeply about the operations side of RavenDB. Support calls are almost never about “where are you? I want to send you some wine & roses”, and they tend to come at unpleasant timing. One of the things that we had learnt was that when..."
Read more » Dedicated operations road bypasses
Ayende @ Rahien | 20 Aug 2015 08:54
Oren Eini writes "....Testing our software is something that we take very serious. And in some cases, we want to go beyond testing stuff that we know. We want to test random stuff. For example, if we add 10,000 documents, then remove every 17th, what happens? Is there..."
Read more » Repeatable random tests
Ayende @ Rahien | 19 Aug 2015 09:00
Oren Eini writes "....I’ll be presenting at the GOTO Copenhagen conference in Oct 7 – 8 this year. The full session summary is: Presentation: Highly Available & Scalable Solutions with RavenDB Track: Solutions Track 1 / Time: Monday 13:20 - 14:10 / Location:..."
Read more » Presenting, Highly Available & Scalable Solutions at GOTO Copenhagen
Ayende @ Rahien | 18 Aug 2015 09:00
Oren Eini writes "....I like reading code, and recently I was mostly busy with moving our offices, worrying about insurance, lease contracts and all sort of other stuff that are required, but not much fun. So I decided to spend a few hours just going through random code..."
Read more » Code reading: Wukong full-text search engine
Ayende @ Rahien | 17 Aug 2015 09:00
Oren Eini writes "....I’m using R# for over a decade now, and it has gotten to the point where I’m actually able to utilize R# bugs to get things working better for me. In this case, the scenario is using the Find Usages as a refactoring aid. I have a tricky refactoring..."
Read more » Turning bugs into features