Presentation is loading. Please wait.

Presentation is loading. Please wait.

Intercontinental Database Development Mike Furgal September 18 th, 2007.

Similar presentations


Presentation on theme: "Intercontinental Database Development Mike Furgal September 18 th, 2007."— Presentation transcript:

1 Intercontinental Database Development Mike Furgal September 18 th, 2007

2 © 2006 Progress Software Corporation2 Progress Software  Founded in 1981  Application Infrastructure Database Technologies –Relational (4GL and SQL access) –Object Oriented Middleware –Messaging products –ODBC/JDBC Drivers Event Processing

3 © 2006 Progress Software Corporation3 Progress Software  Headquartered in Bedford MA 1600 people world wide  Development offices Bedford, MA Nashua, NH Montreal, Canada Raleigh, North Carolina Hyderabad, India Noida, India Cambridge, England Houston, Texas San Diego, California  Sales offices worldwide

4 © 2006 Progress Software Corporation4 Progress Software  Who am I? Development Manager Manage development teams located in many of the offices worldwide Started with Progress Software in 1989

5 © 2006 Progress Software Corporation5 Agenda  Database Architecture How Data Is Stored and Retrieved  Global Development Why Go Global Challenges Rewards

6 © 2006 Progress Software Corporation6 Agenda  Database Architecture How Data Is Stored and Retrieved  Global Development Why Go Global Challenges Rewards

7 © 2006 Progress Software Corporation7 Database Architecture  What happens when you read a record from a database?  SELECT * FROM customer WHERE city = “Boston”;

8 © 2006 Progress Software Corporation8 Database Layout  Database divided into areas, extents, with fixed-size blocks or “pages”  Different kinds of pages store different kinds of data Records Index information Sequence values Unused space  Disk i/o in multiples of page size units  Each page has a unique identifier Its Storage Area Id Its “dbkey” or page number

9 © 2006 Progress Software Corporation9 Index B-Tree Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotIndex No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... root internal leaf Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter TopReserved Free Space o o o... Compressed Index Entries... BotInde x No. Num Entries Bytes Used... Compressed Index Entries... Dummy Entry... records

10 © 2006 Progress Software Corporation10 Index - an Ordered List Of Rowids City Rowid BOLONIA 3331 BOLTON5554 BOLTON9001 BOLTON9022 BONN 8001 BOSTON1111 BOSTON1118 BOSTON7001 BOSTON9002 BOSTON9003 BOSTON9006 BOSTON9007 BOSTON9008 BOSTON9009 BOSTON9999 CARDIFF 3333

11 © 2006 Progress Software Corporation11 Index - an Ordered List Of Rowids City Rowid BOLONIA 3331 BOLTON5554 BOLTON9001 BOLTON9022 BONN 8001 BOSTON1111 BOSTON1118 BOSTON7001 BOSTON9002 BOSTON9003 BOSTON9006 BOSTON9007 BOSTON9008 BOSTON9009 BOSTON9999 CARDIFF 3333

12 © 2006 Progress Software Corporation12 What Is A Rowid?  Unique 32-bit identifier for a record in a table Unique within an area  Encodes the “physiological” storage address Used to locate record fast  Constant for life of record Until you delete it  DBKEY is a composite of Block # in Green Row inside the block in Yellow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0

13 © 2006 Progress Software Corporation13 Record Block Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Version Number Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Contiguous Free Space Record 0 Record 2 Record 1

14 © 2006 Progress Software Corporation14 Database Buffer Pool Hash Table LRU Chain “oldest” “newest” Write Queue MMM MM

15 © 2006 Progress Software Corporation15 Get The Row Block’s DBKEYTypeChainBackup Ctr Next DBKEY in ChainBlock Update Counter Free Space Free Dirs. Rec 0 OffsetRec 1 Offset Rec 2 OffsetRec n Offset Num Dirs. Free Space Used Data Space Record 0 Record 2 Record 1 row buffer copy Share locked record block in buffer pool

16 © 2006 Progress Software Corporation16 Row is available  SELECT * FROM customer WHERE city = “Boston”;  Questions??

17 © 2006 Progress Software Corporation17 Agenda  Database Architectures How Data Is Stored and Retrieved  Global Development Why go global Challenges Rewards

18 © 2006 Progress Software Corporation18 Why Go Global  Economic Reasons  Recommended Reading ISBN 0-374-29288-4  Communication is cheap

19 © 2006 Progress Software Corporation19 Progress Software Global Development  Development offices Hyderabad, India Noida, India Cambridge, England Bedford, MA Nashua, NH Montreal, Canada Raleigh, North Carolina Houston, Texas San Diego, California

20 © 2006 Progress Software Corporation20 Challenges  Time Zone Differences  Physical Distance  Collaboration  Culture

21 © 2006 Progress Software Corporation21 Time Zones Challenges  Development offices Hyderabad, India Noida, India Cambridge, England Bedford, MA Nashua, NH Montreal, Canada Raleigh, North Carolina Houston, Texas San Diego, California UTC-05 UTC UTC+0530 UTC-06 UTC-08

22 © 2006 Progress Software Corporation22 Time Zones Solutions  Email Clear concise Define Deliverables –What is expected –When is it expected  Scheduled meetings Early morning with India and England Afternoons with Texas and California Not possible with India, Nashua, and California –8 AM in Nashua  5 AM in California  5:30 PM in India

23 © 2006 Progress Software Corporation23 Physical Distance Challenges  Software products are large CD Image sizes 600+ MB  Source Code Control in Bedford, MA Network Connection Latency  Building and Debugging Network Connection Latency

24 © 2006 Progress Software Corporation24 Physical Distance Solutions  VMWare http://www.vmware.com/http://www.vmware.com/ Allows multiple Window Operating System Images to be running on a single machine 8 CPU Linux Servers with 16 GB of memory –Serves 30 Windows Virtual Machines Remote Users “Remote Desktop” to their personal Virtual Machine Virtual Machine is co-located with development infrastructure Back to the days of centralized computing

25 © 2006 Progress Software Corporation25 Collaboration Challenges  No Hallway Conversations  No Whiteboard  Can’t walk into someone’s office to work out issues

26 © 2006 Progress Software Corporation26 Collaborations Solutions  Documentation Netmeeting Available on every Windows PC Allows sharing application or desktop  Instant Message is a key tool

27 © 2006 Progress Software Corporation27 Culture Differences  Work Day, Lunch, etc Going out to lunch everyday in England  Holidays Who celebrates the 4 th of July or Thanksgiving?  Managers, team leaders, individual contributors Who is the lead  Economy Job Hopping  Need to understand the cultural aspects Plan for the issue Work with the culture, not against it

28 © 2006 Progress Software Corporation28 Rewards  Economic rewards due to currency differences Can be drastic  Follow the sun development

29 © 2006 Progress Software Corporation29 A Model For Success  Keep local expertise where possible  Cross train remote staff Helps with turn-over  Document, Document, Document  Have a lot of Coffee on hand as you will be up early and up late for conference calls

30 © 2006 Progress Software Corporation30 Questions? Thank You


Download ppt "Intercontinental Database Development Mike Furgal September 18 th, 2007."

Similar presentations


Ads by Google