SAP does not meet the solution proposed in the article "methods beyond distributed transactions", but as a large system, it has considered scalability and is similar to the idea in the "methods beyond distributed transactions ".
1. Do not use JOIN in any circumstances
How can entities be partitioned in any database and joined across databases? No way!
This alone is sufficient for the vast majority of design and architect
A) Transaction-type operations (OLTP) are solved using the object model. analysis and report query operations (OLAP) use another solution, such as a BI system or a specific report module. There are also a large number of analysis reports in SAP, which are provided by system standards and developed by users. This part does not have to comply with the scalability principle. When partitioning, the analysis model and configuration need to be reset.
B). Changing the concept of business design (or correctly understanding what is business design, which should be a common misunderstanding or weakened or ignored)
The unlimited scaling solution can be considered only when this is achieved, and the solution to many other problems will become much simpler.
2. Object Granularity
Each SAP Client can use a separate database instance, but it is unclear whether multiple clients are allowed in one database instance.
Generally, the Client concept is released to the sub-group. Obviously, this granularity is too large. This may be a key factor restricting SAP performance in many cases, this results in high hardware and implementation costs to solve performance problems.
The granularity of objects is too small and unnecessary. It is also a waste of designing distributed data as objects.
The discretization of entities, the complexity of business logic, and the performance of entities always affect and constrain each other. How can we balance the trade-off between them?
3. Object key value
SAP uses Client Code as the object key value. Client Code is an independent field. The entity object (entity object, relative to value object) in the same Client basically has the Client Code field.
SAP is only an internal system of the group, and the Client is mapped to a sub-group. The concept of the Client is similar to that of servers in different regions of Warcraft. However, data between SAP clients can be transmitted and shared.
The user must provide the Client Code, account, and password when logging on to the system. Therefore, this Client Code runs through all operations after the user logs on to the system. Considering systems like amazon, this solution is not feasible. Do users have to select a region when logging on to the system?
The transaction serialization scope must be limited to the Client range, and the Client will use message communication to complete data transmission.
4. Messages
The SAP Message format is IDoc, Which is descriptive in terms of document structure.
I am not familiar with idempotent processing mechanisms such as message and transaction management, message retry, and re-subscription.
In addition to Client communication, IDoc is also used for communication between external systems and SAP.