Pocket.Info - Mobile 2.0
Mobile Web 2.0 Database, News, and Developer Community

Browse by Tags

  • Mobile Scalability + Staggering Performance

    As you know from my recent posts, I've been hanging out at 1,200 concurrent Subscribers trying to boost performance. When I first hit the 1,200 Subscriber mark, I was able to change and replicate ~13 million rows per hour. I was happy with the scalability, but the performance was no better than what I achieved with 600 concurrent Subscribers. Rather than push the scalability envelope out to 1,800 or 2,400 Subscribers, I decided to tweak, poke and prod my portable data center until I could get better performance at the 1,200 level. I succeeded with the architecture you see below: Sometimes more is more. Sometimes less is more. Knowing that the ISAPI DLL running on IIS is the biggest bottleneck in the system, I decided to scale out to 6 IIS servers in addition to my separate SQL Publisher and SQL Distributor servers. The 2 SQL Servers have 8 cores and 16 GB of RAM while the 6 IIS servers contain 2 cores and 2 GB of RAM. Each IIS server would accomodate 200 concurrent clients each. In the last week of December 2007, I throttled back the MAX_THREADS_PER_POOL registry setting on the IIS servers from the default of 20 to just 3 and ran my test harness. This resulted in the changing and replicating of ~15 millions rows per hour; a boost of 2 million rows per hour over my previous test. Using fewer threads on each IIS box meant lower memory and CPU utilization across the board. Instead of overwhelming SQL Server will lots of threads trying to perform work all at the same time, SQL Server got to chill out and thus processed each sync much faster. This was great news so I pushed the fewer threads experiment even further. I executed my test harness with 2 threads and then just 1 thread per IIS server. Using just 1 thread resulted in the changing and replicating of ~18 million rows per hour; a 3 million row per hour boost over using 3 threads per IIS server. At ~21 million row changes per hour, 2 threads per IIS server is the sweet spot! Rows changed: 5,826 per second | 349,600 per minute | 20,976,000 per hour | 503,424,000 per day Bytes per row: 116 Data replicated: 2.3 GB per hour | 55 GB per day The longest and average sync times dropped significantly over the first results I got with 1,200 concurrent Subscribers: Longest sync time: 14 minutes Shortest sync time: .6 seconds Average sync time: 3 minutes, 38 seconds The IIS didn't break a sweat: IIS1: CPU: 11% | Mem: 172 MB | Network Utilization: 89% Disk I/O: OS: .3%, ISAPI: 3.8% IIS2: CPU: 8% | Mem: 167 MB ...
  • My New Book is Now Available!

    "Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1" is now available in print! Those of you in the continental U.S. can just buy it directly from the Hood Canal Press site at http://www.hoodcanalpress.com/catalog.htm and get free ground shipping. It's on Amazon in the U.S. so you can order it at http://www.amazon.com/Windows-Mobile-Synchronization-Server-Compact/dp/0979891205/ref=sr_1_13?ie=UTF8&s=books&qid=1199744085&sr=1-13 as well . At Amazon UK you can find it here http://www.amazon.co.uk/Windows-Mobile-Synchronization-Server-Compact/dp/0979891205/ref=sr_1_7?ie=UTF8&s=books&qid=1199744162&sr=1-7 . Go buy it and start building large-scale line of business and consumer applications for Windows Mobile! -Rob
  • Windows Mobile Partner Summit Day 1

    The Windows Mobile Partner Summit is going great and the event looks to be twice as big as last year. It's always nice to reconnect with our partner community. Steve Hegenderfer was kind enough to allow me to bring my rack of servers to his event. This time, I have a much lighter, 24U half rack which is much easier to move around. At the Dev Connections conference, I used a new stress test designed to push the number of row changes per sync. At that event, I used 300 concurrent Subscribers to perform 23,330 syncs per hour and make changes to 7,000,000 rows per hour. Each complete row change consisted of 116 bytes of data which meant I changed and replicated 812 MB of data per hour. This time around I decided to double the number of concurrent Subscribers to 600. Keep in mind that each Subscriber is equivalant to a Windows Mobile device. I used 6 servers running 100 Subscribers each to create client load, 3 load-balanced IIS servers, and a separate SQL Server Distributor and Publisher. With 600 concurrent Subscribers contending for resources, I managed to perform 22,401 syncs per hour which is slightly fewer syncs than I saw when running only 300 Subscribers back in Vegas. The important story here is that I almost doubled the number of rows I changed and replicated per hour: Rows changed: 13,440,600 per hour | 322,574,400 per day Data replicated: 1.45 GB per hour | 34.8 GB per day Just like in Vegas, the IIS and SQL Servers where just chilling out throughout this test: IIS1: CPU: 7% | Mem: 188 MB | Network Utilization: .69% IIS2: CPU: 8% | Mem: 187 MB | Network Utilization: .88% IIS3: CPU: 5% | Mem: 185 MB | Network Utilization: .95% SQL Distributor: CPU: 5% | Mem: 994 MB | Network Utilization: .77% SQL Publisher: CPU: 36% | Mem: 4.11 GB | Network Utilization: 1% This is truly incredible and further proves that SQL Server 2005 + SQL Server Compact 3.1 + Merge Replication is the most powerful data sync technology on the market today. - Rob
  • New Mobile Merge Replication Benchmarks

    I just finished up a week of teaching attendees at the Dev Connections conference how to setup and use mobile merge replication to sync data between their Windows Mobile devices and SQL Server 2005. As usual, I brought along my favorite teaching tool, my portable data center, to take attendees on deep dives of the 4 different tiers of my replication architecture. This time around, I changed the way my stress test harness works. In the past, my goal has always been to see how many Subscribers I could connect to the system at the same time. With the new test, I'm stressing the system to a much greater degree with my software to push the envelope in regards to how many table row changes I can make per hour. With an eye towards the stress testing system that has helped give iAnywhere's ASA database and MobiLink replication server a dominant market position, I built a similar test where the amount of data in each row changed is exactly 116 bytes each time. I think the iAnywhere stress test used 92 byte rows. I used 3 servers to create client load, 3 load-balanced IIS servers, and a separate SQL Server Distributor and Publisher. The results I got from my test harness performing 23,330 syncs per hour are nothing short of spectacular: Rows changed: 7,000,000 per hour | 168,000,000 per day Data replicated: 812 MB per hour | 19.4 GB per day Now check out how the IIS and SQL Servers where just chilling out throughout this test: IIS1: CPU: 5% | Mem: 216 MB | Network Utilization: .44% IIS2: CPU: 7% | Mem: 147 MB | Network Utilization: .13% IIS3: CPU: 8% | Mem: 170 MB | Network Utilization: .42% SQL Distributor: CPU: 5% | Mem: 2.15 GB | Network Utilization: .58% SQL Publisher: CPU: 17% | Mem: 4.25 GB | Network Utilization: 1% Not bad! Thanks to Loke Uei, we were also able to give away 300 copies of my new book that walks you through the construction of this scalable mobile merge replication system. Lots of Windows Mobile developers and IT Pros are now empowered to "mobilize" their organization's data out to mobile field personnel. Just as important, they can take the proof back to their respective organizations that this technology is build to perform and scale! I'm just getting started with this new test harness. Come to the Windows Mobile Partner Summit in December to see me push this system even further and break new replication records! - Rob
  • Mobile Connections

    Mobile Connections is a great opportunity for developers and IT Professionals to connect with Microsoft and experts in the Mobile industry. Attendees can expect to learn about the tools and techniques to building rich and effective applications on Windows Mobile. Attendees this year will be able to attend an exclusive invite-only feedback session where they can sit down together with members of the Microsoft product groups to provide honest and direct feedback for a chance to make a difference with Windows Mobile or its platform and tools. On top of the Harley Davidson contest, there will also be a ton of exciting activities that will happen during Mobile Connections from device giveaways to being able to play with cool new devices. So don't miss out on the action. Sign up now at : http://www.devconnections.com/shows/FALL2007MOB/default.asp?s=103 and use this special coupon code (MSBLOG) to get an immediate $100 discount.
  • Chapters 1 - 4 are Feature Complete!

    Okay, maybe I've been polishing chapters 1-4 for too long. The problem is that I keep thinking of more stuff to add that's critical to making this the definitive guide to mobile merge replication. Updates to the chapters include sections covering topics like ongoing maintenance and monitoring. There's only one chapter left to write which will be on programming the device to sync with SQL Server 2005. Additionally, this download includes a SQL Server backup file of the database used in the examples that you can restore to your server. The book is called "Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1" and it's being published by Hood Canal Press . Click on Chapters 1, 2, 3, or 4 below to download the PDF documents to getting started with Merge Replication. I appreciate all the feedback. Almost done! - Rob
  • Chapter 3: Configuring the Publisher

    The biggest and most comprehensive chapter of the new book is ready to preview! Chapter 3 is ready to go for some relaxing Labor Day weekend reading. It's the deepest coverage that I've seen on all the nuances of the SQL Server Publisher for mobile replication if I may say so myself. The book is called "Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1" and it's being published by Hood Canal Press . Click on Chapter3.pdf below to download Chapter 3 on installing and configuring the SQL Server Publisher.
Copyright 2008 - Pocket.Info