Location>code7788 >text

Moebius for SQL Server

Popularity:762 ℃/2024-11-20 12:42:42

Moebiuspresent (sb for a job etc)

Moebius Database Multi-live Cluster is a one-stop multi-live cluster developed by Grey Trend for SQL Server databases that can simultaneously meet the requirements of availability, data security, disaster recovery, read/write separation, and load balancing.The name of the cluster is taken from theMoebius ring, signifying infinite expansion.

      Moebiusadoption“share nothing”architecture, each node of theSQL ServerThe service is installed independently, using database files within each server's own storage media. Not based on shared storage devices, nor on features such as disk mirroring, through theSQL ServerThe log synchronization technique achieves data consistency across nodes.Logs are generated when the master node writes data, theMoebiusCaptures and transfers logs to other nodes with theREDOtechnology to convert logs into data. Thus each node'sSQL ServerThe services are all started and the data isworkmanshipThe.MoebiusThere are two types of synchronization, real-time and quasi-real-time, and different nodes can use different synchronization methods.

       Moebius pass (a bill or inspection etc)network heartbeatup toArbitration mechanismFailure monitoring is implemented, when a node failure is detected and arbitrated, this node is stripped out of the cluster, if the failed node is the master node, automatic failover is performed and a healthy node is re-selected as the master node. The node will automatically synchronize the difference data from the master node after recovery from failure, and join to the cluster after synchronization is completed.

       MoebiusThe scheduling engine supports connection-level andSQLStatement-level two scheduling methods, through the configuration of the rules, in the premise of no change or less change in the application, transparently achieve read-write separation, load balancing.

 

Moebius Cluster'sbuild


Moebius Cluster with Shared Diskless Architecture
A Moebius cluster consists of a set of database servers, with the same database installed on each server. The cluster supports a no-shared disk architecture, where each machine can be unconnected to a shared device, and data can be stored on each machine's own storage media.

Shared diskless architecture makes storage no longer a single point, system availability is increased, and also makes full use of the CPU, I/O and other hardware of each machine in the cluster to achieve high performance of the cluster.
Instead of expensive shared disk enclosures, you can easily build a low-cost cluster using just 2 servers.

 

Classification of Moebius Cluster Architecture


Depending on whether the data is partitioned or not, Moebius cluster architectures are categorized into standard and advanced architectures:
Standardized Architecture: Having exactly the same data in each node, each node owns the full set of data.
Advanced Architecture: The data is different in each node and each node has only a part of the full set of data.
Moebius For SQL Server Standard Architecture
A Moebius cluster is a group of independent servers that work together to form a unified whole. Multiple nodes in the cluster are interconnected, so the redundant hardware architecture not only avoids single point of failure but also provides outstanding failure recovery capability. In the event of a system failure, Moebius clusters guarantee the highest level of availability to the user, safeguarding critical business data from loss.

Moebius Cluster Standard Architecture
A clustered database can be thought of as a single database that is accessed by multiple application instances. In a Moebius cluster, each SQL Server instance runs on its own server. As applications grow, nodes can be easily added without downtime when additional resources need to be added.
How Standard Architecture Middleware Works
The middleware resides in the database of each machine, monitors the changes of the data in the database, and synchronizes the changed data to other databases. Data synchronization is completed before the client will get a response, the synchronization process is completed concurrently, so synchronization to multiple databases and synchronization to a database time is basically equal; in addition, the synchronization process is completed in a transactional environment, to ensure data consistency of multiple data.

Because the middleware is hosted in the database, the middleware not only knows the changes in the data, but also knows the SQL statements that cause the changes in the data, and intelligently adopts different data synchronization strategies according to the type of SQL statements to ensure that the data synchronization cost is minimized:
1. If the number of data entries is small and the data content is not large, the data will be synchronized directly.
2. the number of data items is very small, but it contains large data types, such as text, binary data, etc., then the data is compressed first before the
synchronization, thereby reducing network bandwidth usage and time spent on transmission.
3. If there are a lot of data items, the middleware will get the SQL statements that caused the data changes, and then parse the SQL statements to analyze them.
execution plan and execution cost, and choose whether to synchronize the data or the SQL statement to another database. After making adjustments to the table structure
Or when changing data in bulk, this synchronization strategy is very useful.
Moebius For SQL Server Advanced Architecture
In advanced architectures, data partitioning techniques are used to spread data across multiple databases based on certain rules.
Why is the data partitioned?
1. When the amount of data is very large, even if the server is not under any pressure, certain complex query operations will be very slow, and the impact of
Impact on the end-user experience.
2. Load and export, backup and restore, structure adjustment, index adjustment, etc. of the database under the large amount of data will make the database stop serving
services or run under high load for long periods of time, affecting the availability and manageability of the database.
3. In the face of such an application environment, merely relying on upgrading the hardware configuration of the server does not work, and a better way is through data distribution.
zones, dividing the data into smaller parts to improve the availability and manageability of the database.
4. Partitioning puts each part of the data into a different machine, and each query can be co-loaded by CPUs and I/Os on multiple machines through the
The nodes process data in parallel to improve performance.

 

system structure
Moebius For SQL Server Advanced ArchitectureIt is structured in two parts: the access layer database and the data layer database.
Access Layer:The access layer database has only the structure of the original database without the data to process the submissions.SQL statement and schedules its execution. Access Layers
The database can be load balanced by multiple machines.
Data Layer:The data tier database is the original database, but there can be multiple redundancies to load balance queries to improve the overall system
performance, Moebius For SQL Server guarantees consistency across multiple databases; the data-tier databases are not exposed to users and business programs, which are confronted with the access-tier databases.

A grid cluster is constructed through the access layer and data layer to achieve high availability and load balancing of the cluster, and the databases in the access layer and data layer are scalable. (The data of each node in each column is the same, and each row constitutes the full set of data; the data data layer in the figure is designed as a 5×2 matrix, which should be divided according to the characteristics of the business in the actual application).
How is it partitioned?
Moebius For SQL Server supports two types of partitioning: hash partitioning and linear partitioning.
hash partition: A partitioning method that evenly distributes a table by the value of a field into a number of specified partitions.
Pros:The data distributed within each partition is more evenly distributed, the pressure carried is more evenly distributed, and the machine can be fully utilized.
Drawbacks:It is not easily expandable, and if expanding new partitions will involve redistribution of data, so it should be planned in advance during design.
Moebius For SQL Server supports putting multiple partitions of data on one machine and then splitting them into new machines one by one according to the pressure, which ensures the planning of the partition without wasting the machine and realizes the linear expansion.
linear partitioning: i.e. range partitioning, partitioning the table by the range of values of a field, e.g. by time, each month's data in a partition.
vantage: Scaling performance is better because the data grows with some regularity.
Drawbacks:The pressure on the data within each partition is not very even, a phenomenon that exists in most businesses, where the older the data is accessed less frequently, which leads to different pressures on each machine, therefore making the machine underutilized.
Moebius For SQL Server supports putting multiple partitions of data on a single machine, so you can increase machine utilization by alternating between old and new partitions.
Partitioning is easy to configure in the administration tool, first set up the partitions, then select partitions for each table and set up the partitioning fields.
This way, when parsing and processing SQL statements, the middleware will allocate data to or read data from the machine where the corresponding partition is located according to the configuration. Unlike some other clusters, Moebius For SQL Server partitions are abstracted and completely transparent.

How Advanced Architecture Middleware Works
1. After parsing the query SQL statement, the middleware first analyzes the table to be looked up by the statement, and calculates whether to fetch data from a partition or multiple partitions according to the partition configuration of the table to be looked up and the WHERE condition of the SQL statement, and then returns the data to the application after merging them at the access layer. The key point here is that the middleware can dynamically reduce or enlarge the partition range by analyzing the SQL statement: SELECT * FROM WHERE UserID = 1, because UserID is a partition field, the middleware will only look up from one partition; SELECT * FROM WHERE UserID IN(3, 4) will look up from two partitions; SELECT * FROM WHERE UserID IN(3, 4) will look up from two partitions; SELECT * FROM WHERE UserID IN(3, 4) will look up from two partitions. partition; SELECT * FROM WHERE Username = 'wangzhongtao', which does not use a partitioned field as a query condition, the middleware will look up from each partitioned column database. Querying multiple partitioned columns of data is done in parallel to minimize the overall response time.

2. After the middleware parses the updated SQL statement, it first analyzes the table to be updated and calculates the data to be updated in one or more partitions according to the partition configuration of the table to be updated and the SQL syntax of the update statement. For example, if INSERT (UserID, Username) VALUES(1, 'wangzhongtao'), the middleware parses to UserID = 1, and then inserts the data into the first partition according to the partitioning configuration of the table. The middleware parses to an update SQL statement and then updates the database in the same column at the same time. First: the update operation is parallel, the response time of the whole operation is basically the same as the response time of updating a database; Second: the whole operation is done in a transaction environment, which ensures that the data in multiple databases is consistent and realizes true redundancy.
3. The middleware parses a DDL statement that updates the database structure and synchronizes the statement to other access layer databases and all data layer databases. In this way, the user is like using a database to maintain tables, indexes, stored procedures and so on, which greatly reduces the user's management costs, and also reduces the chance of errors. This is the highlight of Moebius For SQL Server.

 

common problems

virtualizationIs there still a need for Moebius with the \Hyperconverged platform?

While virtualization or hyper-convergence can guarantee availability and data security.But essentially what is provided is a single database server. If there is a single database server in theThe need for disaster recovery or read/write separation and load balancing at the SQL Server level is what is necessary.

 

Is Moebius compatible with virtualization\hyperconverged platforms?

Compatible.Moebius nodes can be physical machines, virtual machines, or a combination of both.

 

didIs there a need for storage dual-activation after Moebius?

If the storage device is only provided for the database server, then there is no need for dual-activation, because theMoebius data is all about multiple copies, both for data security and to verify data consistency at all times. It is possible to have each Moebius node connected to a separate storage device, which saves the cost of the dual-live module and improves the utilization of disk space.

 

Beijing Grace Trend Technology Co., Ltd. is a high-tech enterprise focusing on data services, founded in 2008, with the founding team and core technical staff from Microsoft and Yahoo! We are a senior partner of Microsoft Data Platform and a strategic partner of Weining Health Data Platform. Through the double-wheel drive business model of product + service, we have served 4000+ customers in 14 years, covering various fields such as Internet, municipal, transportation, telecommunication, healthcare, education, electric power, and manufacturing.