|
Increasing the Maximum Cell Data Limit |
|
Note: this feature request should not be confused with requesting that the cell data limit in a particular world be raised. For example, in AlphaWorld the cell data limit is set to normal. Some people would like to see the limit in AlphaWorld raised to large or huge. This page discusses the need for increasing cell data limits beyond the value imposed by huge. The reasons for imposing a limit on the total amount of data per cell fall into two categories, performance and protocol. Performance The more data that is stored per cell, the more data a visitor has to download in order to view everything in a particular area. Also, the more objects stored per cell, the more objects the 3D engine has to draw, and the lower the frame rate. Worlds built out to their maximum cell data limits in a large percentage of cells usually not only take forever to download, but also render so slowly that most users leave and never come back. When users build, particularly in public building worlds such as AlphaWorld, they often like to build the biggest, most elaborate buildings they can, without thinking as much about the performace implications this will have for other visitors. The cell data limit exists in public building worlds to keep the total amount of building in any one particular area under control, so that visitors with slower internet connections and older computers can still visit and enjoy the area. While often annoying for individual builders, this helps to ensure that these worlds can be explored by everyone, and maintains a balance between creativity and performance. Each object stored in a cell takes approximately 32 bytes of data, not counting the description and action fields. Objects with long descriptions and actions can take over 500 bytes. When a world's cell data limit is set to "huge" (from Options/World/Features...) it can store up to 4000 bytes of data per cell. If objects have no actions or descriptions, this means you can have over 120 objects per cell. Since actions and descriptions also count against the limit, using these fields does significantly reduce the number of objects that can fit in a cell. Protocol The biggest obstacle right now to increasing the maximum cell data limit is the current design of the property protocol between the browser and world server. It's a fairly clear argument that world owners should really be able to set the cell data limit to anything they want, even way beyond huge, if that's what they want to do. It's their world, after all. The reason that the protocol poses a problem is that in the current design it needs to be able to send back the entire contents of a cell in one packet. The assumption that a single property update message can contain an entire cell allows several simplifications and optimizations to be made in the design. Internet data packets can be larger than 4000 bytes, but the problem with sending large data packets is that larger packets have a greater chance of being dropped by routers while moving across the Internet, especially if the end user is on a slow connection (such as a modem.) When packets are frequently dropped, it can start taking an extremely long time for a user to download all the data, since the same packet has to get sent again and again until it is finally received (i.e. not dropped.) So, in summary, increasing the maximum cell data limit requires changing the protocol so that partial cell contents can be split across multiple data packets. This can be done, it just requires some careful redesign of the browser, the world server, and the network protocol between them. |