Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to the new version of MnemonicDB #2064

Merged
merged 6 commits into from
Sep 23, 2024
Merged

Update to the new version of MnemonicDB #2064

merged 6 commits into from
Sep 23, 2024

Conversation

halgari
Copy link
Collaborator

@halgari halgari commented Sep 21, 2024

Pretty much a nothing PR. The recent internal changes to MnemonicDB split the AttributeRegistry into two distinct parts:

  • AttributeCache - a cache of all the properties of attributes found within a specific datom store. This class is 100% driven by the datoms in the store itself. Is a given attribute indexed? Well that data is in the datom store, and this cache provides rapid access to the data. The backend store (RocksDB, in-memory DB) create this cache and various parts of the system refresh the cache when a new schema is inserted
  • AttributeResolver - this is the DependencyInjection portion of the AttributeRegistry. About the only thing it does is allow for finding a IAttribute class based on an AttributeId. This class is created and maintained by the IConnection

This change makes most of MnemonicDB free from any sort of global context or DI. Datoms are inserted into transactions and the backend store serves up Datom, all the mapping to and from C# objects happens outside of the MnemonicDB internals

All that to say, about 40 places in the code needed a class name change, and few places needed some small changes.

Comment on lines 5 to 21
public abstract class ThreeWayMerger<TA, TB, TC, TOut>
where TA : notnull
where TB : notnull
where TC : notnull
{
public abstract int CompareAB(TA a, TB b);
public abstract int CompareAC(TA a, TC c);
public abstract int CompareBC(TB b, TC c);

public abstract TOut Combine(Optional<TA> a, Optional<TB> b, Optional<TC> c);

public void Merge(IEnumerable<TA> aColl, IEnumerable<TB> bColl, IEnumerable<TC> cColl)
{

}

}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems out of place.

@halgari halgari merged commit cb4faae into main Sep 23, 2024
12 checks passed
Al12rs added a commit that referenced this pull request Sep 24, 2024
insomnious added a commit that referenced this pull request Sep 24, 2024
Revert "Update to the new version of MnemonicDB (#2064)" to fix App locking up issue
halgari added a commit that referenced this pull request Oct 1, 2024
* Update to the new MnemonicDB API, still needs a fix in the MnemonicDB repo before this works

* Fix tuple remapping

* Try and fix the package reference errors (someday I should read up on how this works)

* Not sure why this existed

* Fix sorting error on RedModInstallerTests by sorting the data we hand to Verify

* cleanup the project file a bit

* Update to the newest version of MnemonicDB so that we can fix the deadlock issue introduced in the previous version

---------

Co-authored-by: halgari <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants