Comments (3)
Well the thing is. The entire premise for Dilithium is, that it bypasses all the overhead of the application layers and is able to perform large batch operations directly on the underlying SQL datastore. In other words; the entire premise of Dilithium IS that the underlying datastore is SQL and nothing but SQL.
Sitecore 10.1 changes this up, with the introduction of the "hybrid model" and the "Single Item Data Provider" approach.
The issue isn't just with Dilithium (or any of the Sitecore serialization tooling for that matter) - all of them share the problem of "what should actually happen, if the user (developer) chooses to put a 'Sitecore protobuf owned' item under serialization control?"
Dilithium just exposes this particular problem with an exception; where the standard Rainbow serialization engine would be largely oblivious to what is going on (since the Sitecore API abstracts the new provider) but still - to some extent - acting in error by silently assuming control of a Sitecore protobuf item.
At its very core it might actually be the better option to completely rewire how Unicorn/Rainbow works internally - basing them instead on the new Single Item DataProvider instead of the "Branch/Tree based traditional provider". This would completely change what we can do with configuration and other related tooling (for the better) but would also break compatibility to pre 10.1 installations.
And I just don't know.
But I'll take a look at the Dilithium engine and see if any meaningful workarounds present themselves.
from unicorn.
Yea, guess it's not really too surprising.
I think the cleanest way to work this problem would be, to make Unicorn able to run two providers. One when serializing and another when deserializing. Essentially making Dilithium a thing only when deserializing, and hitting the native API otherwise.
Not sure if this is too much of a compromise or a surprise for people who prefer Dilithium?
Another way to work this problem would be, to only enable Dilithium upstream.
from unicorn.
I was somewhat surprised actually, ended up attaching the debugger as it didn't click for me what the issue was until I saw dilithium was the culprit.
I'm just thinking if you use dilithium for deserializing these resource items, they're going to get added to the DB. I suppose it depends on what exactly is being serialized as to what the impact of that is. But say someone was to serialize all of EXM items, then those items change in a future version and the UpgradeApp.exe doesn't pick them up to be cleared out, then there will be EXM issues.
How about make it dilithium for deserializing only, but if an item as resource is detected, it throws a warning about it? Would that extra check be a significant performance hit?
from unicorn.
Related Issues (20)
- security Vulnerabilities in Unicorn.SharedSecret.config file HOT 1
- Sitecore 10.1 uses Sitecore.Kernel 16.0.0.0 version which does not have attribute 'UsedImplicitlyAttribute' and unicorn uses this attribute HOT 3
- Syncing Unchecked Shared field checkbox is not performing the movement of data from SharedFields to VersionFields tables HOT 10
- Unicorn.aspx indicates Transparent Sync is enabled on configs but TS is not working and does not display in Content Editor warning HOT 4
- Unicorn.DataProvider.10.1.config role:require setting prevents the config from being loaded on XM0 HOT 2
- Error message during Unicorn Sync "The statement terminated. The maximum recursion 100 has been exhausted before statement completion." HOT 2
- Performing a sync on a configuration with Transparant Sync breaks stuff?? HOT 3
- Unicorn added <site> breaks Sitecore on ContentDelivery roles in 10.1.2 HOT 5
- DuplicateItemName exception HOT 2
- UnauthorizedAccessException with SyncSilent HOT 2
- When we are deploying the changes on the Sitecore DEV site by using Azure Paas we are getting this error HOT 1
- Unicorn RainbowCodeGeneration is not supporting Sitecore 10.2 for serializing model HOT 3
- Verb - Reserialize ERROR: The remote host closed the connection. The error code is 0x800704CD.
- Not possible to config patch the fieldFilter exclude list HOT 4
- Moved item can end up deleted on sync HOT 1
- Sync Challenge Issue
- Serialization issue in cloned items HOT 1
- *feature* Is Unicorn supporting Sitecore 10.3? HOT 3
- Moving items results in deleted items
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unicorn.