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 | 24 Mar 2017 10:00
Oren Eini writes "....I’ve been writing a lot about performance and optimizations, and mostly I’m giving out percentages, because it is useful to compare to before the optimizations. But when you start looking at the raw numbers, you see a whole different picture. On the..."
Read more » What did all this optimization give us?
Ayende @ Rahien | 23 Mar 2017 10:00
Oren Eini writes "....One of the things that we did recently was go over our internal data structures in RavenDB and see if we can optimize them. Some of those changes are pretty strange if you aren’t following what is actually going on. Here is an example: Before..."
Read more » GoTo based optimizations
Ayende @ Rahien | 22 Mar 2017 10:00
Oren Eini writes "....One of the most common issues that come up with performance tuning is that dictionaries are expensive. It isn’t so much that a single dictionary lookup is expensive, it is the sheer number of them. Dictionaries are used everywhere, and they are..."
Read more » Fast Dictionary and struct generic arguments
Ayende @ Rahien | 21 Mar 2017 10:00
Oren Eini writes "....One of the most common operations in RavenDB is to load a document, make a simple change and save it back. Usually, we tell users to just rely on the change tracking on the session and just save the document, but while it is the easiest way, it..."
Read more » 1st class patching in RavenDB 4.0
Ayende @ Rahien | 20 Mar 2017 10:00
Oren Eini writes "....RavenDB it meant to be a service that just runs and runs, for very long periods of time and under pretty much all scenarios. That means that as part of our testing, we are putting a lot of emphasis on its behavior. Amount of CPU used, memory..."
Read more » The memory leak in the network partition
Ayende @ Rahien | 17 Mar 2017 10:00
Oren Eini writes "....Every time that I think about this feature, I am reminded of this song. This is a feature that is only ever going to be used in everything fails. In fact, it isn’t a feature, it is an early warning system, whose sole purpose is to tell you..."
Read more » Data checksums in Voron
Ayende @ Rahien | 16 Mar 2017 10:00
Oren Eini writes "....This piece of code is part of a test that runs a scenario, and checks that the appropriate errors are logged. Very occasionally, this test would fail, and it would be nearly impossible to figure out why. I’ve extracted the offending code from the..."
Read more » The occasionally failing test
Ayende @ Rahien | 15 Mar 2017 10:00
Oren Eini writes "....Ever put on a pair of shoes that were just a bit too small for you? You think that it would be fine, but then time goes by, and it pinches. And then it hurts, and then you just can’t walk any longer. That is how it feels to work with any reasonable..."
Read more » Big data work on 32 bits
Ayende @ Rahien | 14 Mar 2017 10:00
Oren Eini writes "....I/O is a strange beast, it is slow, ponderous and prone to all sort of madness. In particular, there is no correlation between when you make an operation and when it will actually reach its destination.
Case in point, this StackOverflow question,..."
Read more » When fsync fails
Ayende @ Rahien | 13 Mar 2017 10:00
Oren Eini writes "....The performance team has noticed that a particular scenario (importing large number of documents) is spending a lot of time sorting data. The finger was pointed directly at this guy: Those are 11.3% of the total operation time, in an area that is..."
Read more » The previously sorted algorithm