Recently, it was reported that Korea Telecom has started to use memory databases in the new 3 gb bss system, and is still an object-based memory database, this message is very confusing for me who have been developing telecommunications systems. I wanted to reconstruct some old systems with orm a long time ago, however, due to various reasons and various ORM limitations, I failed to take this step. The practical implementation of the object-based memory database gave me a glimmer of hope.
In fact, it cannot be said that there are no examples of Using ORM in the telecommunications system. In fact, many systems are already using hibernate, but unfortunately, it has been done in China for a long time. NET developers are all in the toddler state, Java has a hibernate, so there is nhib.pdf. It is good to learn about it, but even the best framework has met China's national conditions (Microsoft and China have a great fate ). Most of the time. net people are a little confused about Java. They always feel that they are advanced, but every time they see a large Java System (especially in the telecom field, there are always complicated expressions. It may be called self-explanatory because I am also a student of. NET and in the telecom industry environment, so I feel very strong, but I don't need to be arrogant. China Telecom also has a place in. net.
Here we go back to the problem itself. Why not use an Orm? Efficiency is my main consideration here. The basic principles of the current ORM framework are almost all achieved through omnipotent reflection. But as we all know, reflection means a-fold reduction in performance (on the Internet about reflection efficiency) Article I will not talk about this too much. I also come to this conclusion when I talked about this issue with Xu xiaozhuo some time ago.) Another point is to multiply the call stack length, which is not a small overhead. In short, the telecom system that emphasizes real-time performance is not the same as that of the vnet billing system. The second point is where many people want to refute my point of view. Many ORM frameworks, such as nhib.pdf and ibaties. net, all have cache mechanisms and some have lazyloading. Why is efficiency? I have not read the source code of these two frameworks, and I am not proficient in usage. So I am wrong and hope I can make a lot of corrections. Based on my limited smart discoveries, lazyloading's efficiency problem is still serious, because even if loading is delayed, it will always be loaded. When the length of a member list of A Class reaches several hundred thousand or millions of members, you will find that it seems that there is no difference between loading at the beginning and loading at the call time, And I am smart enough to find that calling is not capable of paging sub-lists. The older generation of the proletarian revolution Program The clerk taught us that reading a large list must be paged. Here we have to go against this principle, but even if there is a cache, it is not a panacea. For example, the User table data volume of a large database is as large as million, including various users. million data occupies more than 1 GB of space. At this time, I can only be dumpfounded (ibaties. Net caches queries, causing more serious space waste). Generally, the web server only has 2 GB of memory.
Although this is an age in which hardware depreciation is faster than wage depreciation, the cost of using cache for Web servers is too large. Therefore, four pcservers are required for the smallest deployment of large systems. Upgrading the memory of four servers at the same time is unacceptable to users.
At this time, I am the savior, and the memory database is playing well, but it is still just in my imagination, and the final effect may not be actually used yet.
In my imagination, physical disks are used as the final carrier for storing data. However, all business data is cached by the memory database, which can quickly respond to user input, in addition, the refresh mechanism is used to permanently write data to the disk according to the policy. Here, for example, user data, metadata ordering, and subscription relationship for the current month, all details for the current month are loaded into the memory, all services are carried out in the memory, and are permanently stored in the physical disk at the end of the billing period. If the device fails, it can be restored through the log and the last submitted results in the physical disk. In this way, the memory database is deployed on two interface machines and configured as a cluster. At this time, you only need to upgrade the memory of the two servers to meet the target.
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.
A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service