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 | 29 Jul 2016 09:00
Oren Eini writes "....One of the nicest tools that you have as a developer is the ability to debug. WinDBG isn’t what I call the best debugger in the world, but it is certainly among the most powerful. This post is meant just to walk you through setting up WinDBG with a..."
Read more » Debugging CoreCLR applications in WinDBG
Ayende @ Rahien | 28 Jul 2016 06:00
Oren Eini writes "....The Uber Engineering group have posted a really great blog post about their move from Postgres to MySQL. I mean that quite literally, it is a pleasure to read, especially since they went into such details as the on-disk format and the implications..."
Read more » re: Why Uber Engineering Switched from Postgres to MySQL
Ayende @ Rahien | 27 Jul 2016 09:00
Oren Eini writes "....In the process of working on RavenDB 4.0, we are going over our code and looking for flaws. Both in the actual implementation and in the design of the API. The idea is to clear away the things that we know are bad in practice. And that leads us to..."
Read more » API Design: robust error handling and recovery
Ayende @ Rahien | 26 Jul 2016 09:00
Oren Eini writes "....In my previous post, I discussed a problem in missing data over TCP connection that happened in a racy manner, only every few hundred runs. As it turns out, there is a simple way to make the code run into the problem every single time. The full code..."
Read more » Challenge: The race condition in the TCP stack, answer
Ayende @ Rahien | 25 Jul 2016 09:00
Oren Eini writes "....Occasionally, one of our tests hangs. Everything seems to be honky dory, but it just freezes and does not complete. This is a new piece of code, and thus is it suspicious unless proven otherwise, but an exhaustive review of it looked fine. It took..."
Read more » Challenge: The race condition in the TCP stack
Ayende @ Rahien | 22 Jul 2016 09:00
Oren Eini writes "....In my previous posts, I talked about tri state waiting, which included the following line: And then I did a deep dive into how timers on the CLR are implemented. Taken together, this presents me somewhat of a problem. What is the cost of calling a..."
Read more » Reducing allocations and resource usages when using Task.Delay
Ayende @ Rahien | 21 Jul 2016 09:00
Oren Eini writes "....One of the coolest things about the CoreCLR being open sourced is that I can trawl through the source code and read random parts of the framework. One of the reasons to do this, is to be able to understand the implementation concerns, not just the..."
Read more » How timers works in the CLR
Ayende @ Rahien | 20 Jul 2016 06:00
Oren Eini writes "....RavenDB has quite a bit of tests. Over five thousands of them, on the last count. They test common things (like saving a document works) and esoteric things (like spatial query behavior near the equator). They are important, but they also take quite..."
Read more » The cadence of tests speed
Ayende @ Rahien | 19 Jul 2016 09:00
Oren Eini writes "....We recently had the need to develop a feature that requires a client to hold a connection to the server and listen to a certain event. Imagine that we are talking about a new document arriving to the database. This led to a very simple design: Open..."
Read more » Tri state waiting with async tcp streams
Ayende @ Rahien | 18 Jul 2016 09:00
Oren Eini writes "....I’m currently in the process of getting some benchmark numbers for a process we have, and I was watching some metrics along the way. I have mentioned that disk’s speed can be effected by quite a lot of things. So here are two metrics,..."
Read more » The Guts n’ Glory of Database Internals: What the disk can do for you