DavidObando

user stats

Member SinceFebruary 20, 2012
Last VisitAugust 20, 2014

Contact

developer for

Entity Framework

DavidObando

personal statement

Software developer for Microsoft. Collaborating with the Entity Framework team, especially on the performance and stress fronts.
Twitter: @DavidObando

activity stream

August 15, 2014 - Entity Framework: Modified work item: [Perf] Regression introduced by changeset 604533a309d7

August 14, 2014 - Entity Framework: Created work item: [Perf] Regression introduced by changeset 604533a309d7

August 6, 2014 - Entity Framework: Modified work item: Concurrency issue in key properties code

August 6, 2014 - Entity Framework: Commented work item: Concurrency issue in key properties code

August 6, 2014 - Entity Framework: Modified work item: Concurrency issue in key properties code

August 6, 2014 - Entity Framework: Committed b0c2305ad3b4c2fc3517c78d1f6918df0adb6352, Threads are easy" said no one, ever - Fix for #2429 Test KeyProperties_is_thread_safe failed while running a build in a development machine. Assert.True(keys != null) failed because the getter to KeyProperties would allow for a change of value in the _keyProperties member between the check for nullity and the return instruction. This is solved by copying the value of _keyProperties to a local variable before checking for nullity and using it as the return value. Additionally, there was a second concurrency problem which would manifest as a failure in the Assert.False(ReferenceEquals(keys, keysAfterReset)). It was caused by the event subscription model used. The KeyProperties getter, when _keyProperties is null, first creates the instance and then registers an event handler onto KeyMembers.SourceAccessed. When KeyMembers.Source is touched, it calls the handler which in turn tries to clear the value of _keyProperties to null and then unregisters the event handler of KeyMembers.SourceAccessed. The issue was solved by inverting the order of the instructions in the KeyProperties getter to first set the event handler and then initialize the value of _keyProperties. Note that in my development machine the test always passed when executed, and so far it hasn't failed in the CI environment either. That said, before this change the test would fail consistently when executed under a debugger, which presumably changes the concurrency characteristics of the environment.

August 4, 2014 - Entity Framework: Modified work item: [Performance] Lower the cost of building code first models

August 4, 2014 - Entity Framework: Commented work item: [Performance] Lower the cost of building code first models

August 4, 2014 - Entity Framework: Closed work item: [Performance] Investigate EF model discovery performance on SQL Server 2014

August 4, 2014 - Entity Framework: Closed work item: [Performance] Lower the cost of building code first models