After each mission, a row will be added to the ledger for a single Mini, indicating the amount of experience gained by that Mini. So, if this is a soccer scoreline, any time a team scores, you must do a read to see what the last total was, add the new goal, and then write it back into the scoreline.Ī concrete example for Arclight is the experience ledger for each Mini. Any time you want to change that value, you must read it, make the change, then write what the new value is. Think of in place data as having a single thing you can store. How do you know how much you owe? You must look at the entire ledger and add/subtract each value. Each time you use it, there’s a negatively valued transaction each time you pay it, there’s a positively valued transaction. Each transaction is written as a single entry of positive or negative value. A good example of a ledger is something like your credit card. In a ledger, you write each line as a change, and when you read it, you read all the entries and then do some calculations on it. To get around that, we designed our player data to be stored as a ledger. Updating in place data is often a read-and-then-write operation, so that would be slow also. Ĭassandra is well known to be very fast at writing data but slow at reading it. ![]() What’s a Schema ? A database schema defines how data is organized within a relational database, such as what you find in tables. We can easily write and validate our schema and queries. We have built tooling that enables engineers to define our database tables and the table schema as each feature needs it, giving us some flexibility for structure and organization as desired. For the data itself, Cassandra deals well with wide data sets without forcing a hard schema. Cassandra is an open-source, popular, highly scalable, distributed database and gives us the right balance of data consistency and availability. Let’s kick things off by getting to know a bit about our storage solution we use to keep track of the frequent changes to our player data for a lot of concurrent users-Cassandra. Warning! Technical details ahead it could get a little heavy, but stick with us. I'd like to peel back the blue curtain and share a bit more about how we store experience and then use it to calculate levels for each Mini. ![]() The server team is responsible for all the things you'd expect from a server team, including networking, cloud computing, and storage, but we also build game features such as campaign progression and quests. ![]() I'm Andy Lim, Lead Engineer on server features for Warcraft Arclight Rumble.
0 Comments
Leave a Reply. |