Download presentation
Presentation is loading. Please wait.
Published byKorey Foston Modified over 10 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.