Comments (7)
Set a master server, simulate the registration center, and track the status of all sub-server players on a regular basis. During the cross-server period, only after the sub-server publishing data is set, can the data be actively queried
from husksync.
Set a master server, simulate the registration center, and track the status of all sub-server players on a regular basis. During the cross-server period, only after the sub-server publishing data is set, can the data be actively queried
Sorry, could you clarify what you mean by this? :) A master server? A registration center? I'm not totally sure what you mean
from husksync.
My English is not good,
I mean, this may require a centralized management
All sub-servers passively query player data, and players should attach a timer (timeOut) when joining the server. Only when timeout, can they query mysql,
Otherwise, wait for the Redis data setting completion notification.
///
Need to deal with the data acquisition method when the player first connects to the server
from husksync.
For data stability, it may be necessary to sacrifice the game experience...........
from husksync.
I sort of see what you're saying, but it's not the approach I'm looking into at this time. HuskSync version 1 operated under a central cache-on-the-proxy approach and was flawed for various reasons.
The approach described in the original post is something I'd like to work on in the future to alleviate issues with fluctuating delay, but in the case of the vast majority of servers where that's not a concern, the current approach is sufficient.
from husksync.
He will suspend players who are crossing servers and wait for data
https://github.com/liaojinmin/GeekScheduler/blob/master/src/main/kotlin/me/geek/scheduler/service/RegistrationCenter.kt
from husksync.
The lockstep-syncing branch refactors the syncing process into a modular system, and introduces a lockstep syncing approach inspired by the specification originally proposed in the OP :)
This also introduces a mandate for implementing a server config per-server; which also paves the way for probably saving the server where data was saved into the snapshot in the future (very handy for admins, of course!).
I'd also like to probably introduce API in this branch to let devs implement their own syncing method if they so wish.
Comments welcome in #husksync-dev
on Discord.
from husksync.
Related Issues (20)
- [request]"/inventory" Inventory is updated in real-time when items are taken out or put in HOT 2
- Failed to initialize Redis server connection HOT 1
- Filled map are not transferred when using a schulker box HOT 3
- Command registration can throw IllegalArgumentException on Paper 1.20.4 HOT 1
- Attribute key changes causing duplication stacking on 1.21 HOT 3
- Modifier is already applied on this attribute! HOT 1
- Can't sync between 1.21 and 1.20 or bellow. HOT 1
- PacketEvents packet handler not restricting outbound server packets
- Build fails when not using git HOT 1
- Attributes not synced properly on 1.21, can cause exceptions HOT 4
- If potion effect syncing is off while attribute syncing is on, discrepancies occur HOT 1
- Toast NotificationDisplaySlot logs warns in chat on send HOT 1
- Error reflectively creating keyed attribute modifier HOT 1
- Attributes from the armor remain, but the armor itself is not present. HOT 2
- ConcurrentModificationException updating player potion effects on Fabric
- [feature request] sync direction whitelist HOT 1
- Test upgrading of NBT data properties of items within shulker boxes in an item stack from 1.20.1 > 1.21 HOT 1
- Item & block statistics aren't syncing properly
- Certain potion effects fail to sync due to ID mismatch
- Shulker boxes stack sizes reset to 1 upgrading from 1.20.1 in certain circumstances HOT 1
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 husksync.