data chatwith kyle hailey andtim gorman
DESCRIPTION
Data chat with Kyle Hailey on how data virtualization with Delphix can aid Oracle DBAs in their day-to-day tasks. We talk about the basic issues facing Oracle DBAs and how specific use-cases can be improved dramatically.TRANSCRIPT
![Page 1: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/1.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved
Data chat
with Kyle Hailey and
Tim Gorman
![Page 2: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/2.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved
Virtualized storage is fast
becoming the new norm.
Nobody can justify provisioning
non-production environments
the way they did up to now.
![Page 3: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/3.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 3
• PROD is what we care most about…
The problem
PROD
![Page 4: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/4.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 4
• PROD is what we care most about…
– But behind every PROD…
• There is QATEST…
The problem
PROD QATEST
![Page 5: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/5.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 5
• PROD is what we care most about…
– But behind every PROD…
• There is QATEST, DEV…
The problem
PROD QATEST DEV
![Page 6: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/6.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 6
• PROD is what we care most about…
– But behind every PROD…
• There is QATEST, DEV…
• …and other project-specific environments to support
The problem
PROD QATEST DEV
![Page 7: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/7.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 7
• Also, as PROD grows…
The problem
PROD PROD
![Page 8: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/8.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 8
DEVQATEST
• Also, as PROD grows…
– Then so do the supporting non-PROD environments…
The problem
PROD
![Page 9: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/9.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 9
The problem
CEO
COO
CFO CMO CSO CIO
• And so inevitably the situation shifts from this…
![Page 10: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/10.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 10
The problem
CEO
COO
CFO CMO CSO CIO
StorageAdministrator
• To this…
![Page 11: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/11.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 11
• Some try to mitigate the problem by copying subsets of PROD…
Attempting to solve the problem…
PRODQATEST DEV UAT
![Page 12: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/12.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 12
• Some try to mitigate the problem by copying subsets of PROD…
• …but it is difficult and time-consuming to create referentially-correct
subsets of databases. Most give up…
Attempting to solve the problem…
PRODQATEST DEV UAT
![Page 13: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/13.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 13
• What inevitably happens is that cloning is performed less
frequently…
• …meaning that schemas and data are older, dirtier due to previous
testing, and too small to accurately represent reality
Attempting to solve the problem…
PRODQATEST DEV UAT
![Page 14: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/14.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 14
Attempting to solve the problem…
PROD
DEV for Tom
DEV for Dick
DEV for Sally
DEV for Harry
DEV for Becky
And while in a perfect world what we’d like to see is something like
this…
![Page 15: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/15.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 15
Attempting to solve the problem…
PROD
DEV
Tom Dick Sally Harry Beck
y
…in the real world we see this…
![Page 16: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/16.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 16
• It’s not easy for developers or testers to share environments
simultaneously
Attempting to solve the problem…
![Page 17: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/17.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 17
• It’s not easy for developers or testers to share environments
simultaneously
– Changes made by each user conflict with one another
Attempting to solve the problem…
![Page 18: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/18.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 18
• It’s not easy for developers or testers to share environments
simultaneously
– Changes made by each user conflict with one another
• So it becomes necessary to serialize access to the limited number of
environments
Attempting to solve the problem…
![Page 19: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/19.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 19
• It’s not easy for developers or testers to share environments
simultaneously
– Changes made by each user conflict with one another
• So it becomes necessary to serialize access to the limited number of
environments
– Each user queues at the resource, so their project takes more time
elapsed
Attempting to solve the problem…
![Page 20: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/20.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 20
• It’s not easy for developers or testers to share environments
simultaneously
– Changes made by each user conflict with one another
• So it becomes necessary to serialize access to the limited number of
environments
– Each user queues at the resource, so their project takes more time
elapsed
– Each user destructively changes the resource
Attempting to solve the problem…
![Page 21: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/21.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 21
• It’s not easy for developers or testers to share environments
simultaneously
– Changes made by each user conflict with one another
• So it becomes necessary to serialize access to the limited number of
environments
– Each user queues at the resource, so their project takes more time
elapsed
– Each user destructively changes the resource
• And now we need a way to reset or clean up the environment
between each use
Attempting to solve the problem…
![Page 22: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/22.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 22
• It’s not easy for developers or testers to share environments
simultaneously
– Changes made by each user conflict with one another
• So it becomes necessary to serialize access to the limited number of
environments
– Each user queues at the resource, so their project takes more time
elapsed
– Each user destructively changes the resource
• And now we need a way to reset or clean up the environment
between each use
– Reset or clean up takes time, which causes further delays between uses
Attempting to solve the problem…
![Page 23: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/23.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 23
All kidding aside…You are here
![Page 24: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/24.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 24
• The biggest problem with cloning environments and databases is all
the duplication
A solution…
![Page 25: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/25.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 25
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
A solution…
![Page 26: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/26.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 26
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
• What if we store only one copy of each version of a block?
A solution…
![Page 27: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/27.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 27
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
• What if we store only one copy of each version of a block?
– Copy-on-write (COW)
• Never modify a block, but insert a new version instead
A solution…
![Page 28: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/28.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 28
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
• What if we store only one copy of each version of a block?
– Copy-on-write (COW)
• Never modify a block, but insert a new version instead
• Then let the storage figure out what we’re supposed to be seeing?
A solution…
![Page 29: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/29.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 29
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
• What if we store only one copy of each version of a block?
– Copy-on-write (COW)
• Never modify a block, but insert a new version instead
• Then let the storage figure out what we’re supposed to be seeing?
– The storage maintains the relationships and versions on retrieval
A solution…
![Page 30: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/30.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 30
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
• What if we store only one copy of each version of a block?
– Copy-on-write (COW)
• Never modify a block, but insert a new version instead
• Then let the storage figure out what we’re supposed to be seeing?
– The storage maintains the relationships and versions on retrieval
• And then make it portable so that ANY platform (Unix/Linux,
Windows) can use it?
A solution…
![Page 31: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/31.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 31
• The biggest problem with cloning environments and databases is all
the duplication
– Most (if not all) of the blocks comprising the database or file-system
exactly the same
• What if we store only one copy of each version of a block?
– Copy-on-write (COW)
• Never modify a block, but insert a new version instead
• Then let the storage figure out what we’re supposed to be seeing?
– The storage maintains the relationships and versions on retrieval
• And then make it portable so that ANY platform (Unix/Linux,
Windows) can use it?
– NFS (network file system)
A solution…
![Page 32: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/32.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 32
• Cloning the old way…
A solution…
PROD DEV
![Page 33: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/33.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 33
What happens when ask for a copy ?
Developer or AnalystBoss, Storage Admin, DBA
![Page 34: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/34.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 34
• Cloning the smart way…
A solution…
PROD DEV
![Page 35: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/35.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 35
• Cloning the smart way…
– As changes are made to the clone, only those changed blocks are
stored…
A solution…
PROD DEV
![Page 36: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/36.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 36
• Cloning the smart way…
– As changes are made to the clone, only those changed blocks are
stored…
• Takes less storage, faster to copy
• The cost of the clone has gone way down in terms of storage and
time
A solution…
PROD DEV
![Page 37: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/37.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 37
• Cloning the smart way…
– As changes are made to the clone, only those changed blocks are
stored…
• Takes less storage, faster to copy
• The cost of the clone has gone way down in terms of storage and
time
A solution…
PROD
CapEx
DEV
![Page 38: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/38.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved Private and confidential© 2014 Delphix. All Rights Reserved 38
• Cloning the smart way…
– As changes are made to the clone, only those changed blocks are
stored…
• Takes less storage, faster to copy
• The cost of the clone has gone way down in terms of storage and
time
A solution…
PROD
CapEx OpEx
DEV
![Page 39: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/39.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 39
Key Terms
Terms for Production Environment
Terms for the DelphixAppliance
Terms for Pre-Production Environment
Source host Delphix Server Target host
Source database dSource VDB
![Page 40: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/40.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 40
Key Terms: Source Host
Production Development
The source host is the host on which the instance for the source database runs. Typically this is the production host.
![Page 41: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/41.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 41
Key Terms: Source Database
1 TB Storage
Production Development
The source database is copied into the Delphix Server via standard Oracle RMAN APIs.
Delphix Server then stays in sync via incrementalRMAN backups and by collecting redo.
![Page 42: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/42.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 42
Key Terms: Delphix Server
1 TB Storage
Production Development
The Delphix Server acts as a backup destination for the source databases, and as network attached storage for VDBs. It also hosts the Delphix management GUI.
![Page 43: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/43.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 43
Key Terms: dSource
1 TB Storage
Production Development
The dSource is the Delphix Server’s compressed representation of the source database. It is the basis for the storage that is allocated to a VDB.
~256 GB Storagefor dSource
![Page 44: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/44.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 44
Key Terms: Target Host
1 TB Storage
Production Development
The target host is the host on which the instance for the VDB runs. Typically this is wherever the pre-prod database runs today.
~256 GB Storagefor dSource
![Page 45: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/45.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 45
Key Terms: VDB
1 TB Storage
Production Development
The VDB is a fully functional database running on a target host.The storage for a VDB is managed by Delphix, and provided to the target host via NFS. Changes are stored in the Delphix Server.
~256 GB Storagefor dSource
No additional storagefor VDB outside of Delphix
Only changesstored for VDB
![Page 46: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/46.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved 46
Delphix Overview
1 TB Storage ~256 GB Storagefor dSource
Production Development
No additional storagefor VDB outside of Delphix
Only changesstored for VDB
![Page 47: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/47.jpg)
Delphix Server 4.1
• Platforms Vmware
Amazon EC2
• DatabasesOracle
SQL Server
Postgres
Sybase
• App Data
• Data Masking
• Replication
![Page 48: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/48.jpg)
How can Delphix help DBAs?
• Scratch environments Testing one-off patches, patchset updates (PSU’s), and critical-patch upgrades (CPU’s)
• SQL tuningWhen tuning a specific SQL statement, how can you effectively test the impact of…
- adding or dropping an index?
- gathering CBO statistics a bit differently?
…without getting an act of Congress/Parliament?
![Page 49: Data chatwith Kyle Hailey andTim Gorman](https://reader034.vdocuments.net/reader034/viewer/2022051617/5596ebee1a28abf51d8b47f9/html5/thumbnails/49.jpg)
Private and confidential© 2014 Delphix. All Rights Reserved
Virtualized storage is fast becoming the new norm.
Nobody can justify provisioning non-production environments the way they did up to now.